Скопируйте таблицу Кассандры из csv-файла
я настраиваю демо-ландшафт для Cassandra, Apache Spark и Flume на моем Mac (Mac OS X Yosemite с Oracle jdk1.7.0_55). Ландшафт должен работать как доказательство концепции новой аналитической платформы, и поэтому мне нужны некоторые тестовые данные в моей базе данных cassandra. Я использую Кассандру 2.0.8.
Я создал некоторые демонстрационные данные в excel и экспортировал их в CSV-файл. Структура такова:
ProcessUUID;ProcessID;ProcessNumber;ProcessName;ProcessStartTime;ProcessStartTimeUUID;ProcessEndTime;ProcessEndTimeUUID;ProcessStatus;Orderer;VorgangsNummer;VehicleID;FIN;Reference;ReferenceType
0F0D1498-D149-4FCC-87C9-F12783FDF769;AbmeldungKl‰rfall;1;Abmeldung Kl‰rfall;2011-02-03 04:05+0000;;2011-02-17 04:05+0000;;Finished;SIXT;4278;A-XA 1;WAU2345CX67890876;KLA-BR4278;internal
Я создал ключа и семейный колонки в cqlsh использование:
CREATE KEYSPACE dadcargate
WITH REPLICATAION = { 'class' : 'SimpleStrategy', 'replication_factor' : '1' };
use dadcargate;
CREATE COLUMNFAMILY Process (
ProcessUUID uuid, ProcessID varchar, ProcessNumber bigint, ProcessName varchar,
ProcessStartTime timestamp, ProcessStartTimeUUID timeuuid, ProcessEndTime timestamp,
ProcessEndTimeUUID timeuuid, ProcessStatus varchar, Orderer varchar,
VorgangsNummer varchar, VehicleID varchar, FIN varchar, Reference varchar,
ReferenceType varchar,
PRIMARY KEY (ProcessUUID))
WITH COMMENT='A process is like a bracket around multiple process steps';
имя семейства столбцов и все столбцы в нем создаются со всеми строчными буквами - когда-нибудь придется исследовать это, но это не так актуально на данный момент.
теперь я беру свой CSV-файл, который имеет около 1600 записей и хочет импортировать его в мою таблицу с именем process
такой:
cqlsh:dadcargate> COPY process (processuuid, processid, processnumber, processname,
processstarttime, processendtime, processstatus, orderer, vorgangsnummer, vehicleid,
fin, reference, referencetype)
FROM 'Process_BulkData.csv' WITH DELIMITER = ';' AND HEADER = TRUE;
он дает следующую ошибку:
Record #0 (line 1) has the wrong number of fields (15 instead of 13).
0 rows imported in 0.050 seconds.
что по существу верно, так как у меня нет полей timeUUID в мое резюме-экспорт.
если я попробую команду COPY без явных имен столбцов, подобных этому (учитывая тот факт, что я действительно пропускаю два поля):
cqlsh:dadcargate> COPY process from 'Process_BulkData.csv'
WITH DELIMITER = ';' AND HEADER = TRUE;
Я заканчиваю с другой ошибкой:
Bad Request: Input length = 1
Aborting import at record #0 (line 1). Previously-inserted values still present.
0 rows imported in 0.009 seconds.
тю. Странно, но ладно. Возможно, команде COPY не нравится тот факт, что отсутствуют два поля. Я все еще думаю, что это странно, поскольку отсутствующие поля, конечно, есть (с структурной точки зрения), но только пустые.
I еще один снимок: я удалил отсутствующие столбцы в excel, снова экспортировал файл как cvs и попытался импортировать без строки заголовка в моем csv, но явные имена столбцов, например:
cqlsh:dadcargate> COPY process (processuuid, processid, processnumber, processname,
processstarttime, processendtime, processstatus, orderer, vorgangsnummer, vehicleid,
fin, reference, referencetype)
FROM 'Process_BulkData-2.csv' WITH DELIMITER = ';' AND HEADER = TRUE;
Я получаю эту ошибку:
Bad Request: Input length = 1
Aborting import at record #0 (line 1). Previously-inserted values still present.
0 rows imported in 0.034 seconds.
может ли кто-нибудь сказать мне, что я делаю неправильно здесь? Согласно документация copy-command, как я настраиваю свои команды, должен работать по крайней мере для двух из них. По крайней мере, я так думаю.
но нет, я явно не хватает чего-то важного.
2 ответов
загрузка csv-файла в таблицу cassandra
step1) установите загрузчик cassandra, используя этот url
sudo wget https://github.com/brianmhess/cassandra-loader/releases/download/v0.0.23/cassandra-loader
step2) sudo chmod +x Кассандра-загрузчик
a) имя файла csv " pt_bms_tkt_success_record_details_new_2016_12_082017-01-0312-30-01 - ... csv"
b) имя пространства ключей - "bms_test"
c) имя таблицы "pt_bms_tkt_success_record_details_new"
д)столбцы "trx_id......trx_day"
step3) расположение csv-файла и Кассандра-загрузчик " cassandra3.7 / bin/"
шаг$) [STP@ril-srv-sp3 bin]$ ./ cassandra-loader-f pt_bms_tkt_success_record_details_new_2016_12_082017-01-0312-30-01 - ... csv-хост 192.168.1.29-схема