2015-01-27 3 views
0

Я хочу загрузить большой CSV-файл в мой кластер cassandra (в данный момент один узел).cassandra sstableloader загружает данные из csv с различными ключами раздела

Основываясь на: http://www.datastax.com/dev/blog/using-the-cassandra-bulk-loader-updated
Мои данные преобразуются в CQLSSTableWriter SSTables файлов, то я использую SSTableLoader для загрузки, что SSTables к столу Кассандры уже содержащий некоторые данные.

Этот файл CSV содержит различные ключи разделов.
Теперь давайте предположим, что используется кластер с несколькими узлами cassandra.

Мои вопросы:
1) Является ли процедура загрузки, что я использую правильно в случае многоузловой кластера?
2) Будут ли эти файлы SSTable разделяться SSTableLoader и отправлять узлам, ответственным за определенные ключи раздела?

Спасибо

+0

Насколько велик ваш CSV-файл? –

+0

Предположим, что мой CSV имеет 100 * 10^6 строк - я имею в виду, что это довольно большой файл, и использование команды CQLSH COPY не рекомендуется (как описано здесь: http://www.datastax.com/documentation/cql/ 3.1/cql/cql_reference/copy_r.html) «COPY FROM предназначен для импорта небольших наборов данных (несколько миллионов строк или меньше) в Cassandra. Для импорта более крупных наборов данных используйте загрузчик Cassandra.» –

+0

Я использую Cassandra v2.0.11 –

ответ

1

1) Загрузка в одноузловой кластер или кластер из 100 узлов одинакова. Единственное различие заключается в том, что данные будут распределены по кольцу, если у вас многоузловой кластер. Узел, в котором вы запускаете sstableloader, становится координатором (как уже указывал @rtumaykin), и отправляет записи в соответствующие узлы.

2) Нет. Как и в моем ответе выше, «расщепление» выполняется координатором. Подумайте об утилите sstableloader как о простом экземпляре клиента, отправляющего записи в кластер.

3) В ответ на ваш вопрос, утилита sstableloader не отправляет файлы на узлы, а отправляет записи строк, содержащихся в этих SSTables. sstableloader считывает данные и отправляет запросы на запись в кластер.

1
  1. Да
  2. Это будет на самом деле сделано узлом координатора, а не по SSTableLoader.
+0

Будет ли узел координатора разделять соответствующие файлы * .db (например, * -Data.db, * -Filter.db, * -Statistics.db и другие файлы, созданные CQLSSTableWriter), а затем найти данные в этом файлы для каждого ключа раздела и, наконец, отправить эти данные для конкретного ключа раздела в соответствующий узел? Как это работает? –

Смежные вопросы