cassandra копирует данные из одного семейства столбцов в другое семейство столбцов

Я новичок в кассандре. Мне нужно скопировать данные из одного семейства столбцов в другое семейство столбцов в том же пространстве ключей в кассандре. Скажем, например, у нас есть семейство столбцов A1 в пространстве ключей K1, поэтому теперь мне нужно создать семейство столбцов A2 в том же пространстве ключей K1. Здесь мне нужно скопировать данные из columnFamily от A1 до A2. A1 и A2 имеют одинаковую схему. Я читал онлайн-документы, где мы можем использовать sstable loader для копирования данных из одного кластера cassandra в другой. Но здесь мне нужно скопировать данные из одного семейства столбцов в другое семейство столбцов в том же пространстве ключей.

Любые идеи по вышеизложенному. Или это достижимо, я не уверен в этом.


person user1278493    schedule 09.07.2013    source источник


Ответы (3)


В зависимости от версии cassandra вы можете использовать команду copy cql. Чтобы использовать это, вам понадобится клиент cql, подобный тому, который распространяется с cassandra.

Сначала вам нужно скопировать семейство столбцов A1 в файл CSV, используя:

COPY K1.A1 (column1, column2,...) TO 'temp.csv';

И после этого скопируйте файл в новое семейство столбцов

COPY K1.A2 (column1, column2,...) FROM 'temp.csv';

Очевидно, вам нужно изменить имена столбцов на свои имена.

Больше информации:

http://www.datastax.com/documentation/cassandra/1.2/index.html#cassandra/cql_reference/copy_r.html

person ftrujillo    schedule 09.07.2013
comment
Пожалуйста, если решение работает для вас, отметьте ответ как правильный, чтобы другой человек, у которого есть такие же сомнения, мог проверить, что это метод, который следует использовать. - person ftrujillo; 10.07.2013
comment
Я пытаюсь сделать то же самое, но это дает мне ошибку, например Invalid STRING constant, Ранее вставленные значения все еще присутствуют .. Итак, необходимо ли обрезать данные после выполнения COPY K1.A1 (column1, column2, ...) TO 'temp.csv'; шаг.. - person Helping Hand..; 12.06.2014

Обратите внимание на ограничение макс. 2 миллиона строк при использовании команды КОПИРОВАТЬ. См. https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshCopy.html

Примечание. Используйте COPY FROM только для импорта наборов данных, содержащих менее 2 миллионов строк. Для импорта больших наборов данных используйте массовый загрузчик Cassandra.

person rastov    schedule 25.01.2017

cqlsh -k mykeyspace -e 'КОПИРОВАТЬ из таблицы (имена столбцов) В СТАНДАРТНЫЙ ВЫХОД' | голова -n -1 | cqlsh -k mykeyspace -e 'КОПИРОВАТЬ в таблицу (имена столбцов) ИЗ СТАНДАРТНОГО ДАННОГО'

person Vilmos Kiss    schedule 16.08.2014