Как загрузить данные в Apache Cassandra с помощью массового загрузчика Datastax (Ubuntu)?

#ubuntu #cassandra #datastax #bulkloader

#ubuntu #кассандра #datastax #bulkloader #dsbulk

Вопрос:

Когда я хочу загрузить данные в свой «Тестовый кластер» в Apache Cassandra, я открываю терминал, а затем:

 export PATH=/home/mypc/dsbulk-1.7.0/bin:$PATH

source ~/.bashrc

dsbulk load -url /home/mypc/Desktop/test/file.csv -k keyspace_test -t table_test
  

Но…

 At least 1 record does not match the provided schema.mapping or schema.query. Please check that the connector configuration and the schema configuration are correct.
Operation LOAD_20201105-103000-577734 aborted: Too many errors, the maximum allowed is 100.

total | failed | rows/s | p50ms | p99ms | p999ms | batches
  104 |    104 |      0 |  0,00 |  0,00 |   0,00 |    0,00

Rejected records can be found in the following file(s): mapping.bad
Errors are detailed in the following file(s): mapping-errors.log
Last processed positions can be found in positions.txt
  

Что это значит? Почему я не могу загрузить?

Спасибо!

Ответ №1:

Ошибка заключается в том, что вы не предоставляете сопоставление между данными CSV и таблицей. Это можно сделать 2 способами:

  1. Если CSV-файл имеет заголовок с именами столбцов, совпадающими с именами столбцов в Cassandra, затем используйте -header true
  2. Предоставьте отображение явно, используя -m опцию (см. Документы) — вам нужно сопоставить столбцы CSV в столбцы Cassandra.

В блоге есть очень хорошая серия сообщений о различных аспектах использования DSBulk:

первые два из них подробно описывают загрузку данных

Ответ №2:

Это означает, что столбцы во входном файле CSV не соответствуют столбцам в вашей table_test таблице. Вы можете получить подробную информацию о несоответствии схемы в mapping-errors.log , чтобы вы знали, какие столбцы являются проблемными.

Поскольку столбцы CSV не соответствуют схеме таблицы, вам нужно будет вручную сопоставить их, указав --schema.mapping флаг.

Подробности см. На странице общих параметров DSBulk. Вы также можете ознакомиться с примерами сопоставления схем в этом сообщении в блоге. Приветствия!

Комментарии:

1. Я добавил -delim «,» -заголовок true -m ‘0= col1, 1 = col2’

2. Если у вас есть -header, то вам может не понадобиться -m