#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 способами:
- Если CSV-файл имеет заголовок с именами столбцов, совпадающими с именами столбцов в Cassandra, затем используйте
-header true
- Предоставьте отображение явно, используя
-m
опцию (см. Документы) — вам нужно сопоставить столбцы CSV в столбцы Cassandra.
В блоге есть очень хорошая серия сообщений о различных аспектах использования DSBulk:
- https://www.datastax.com/blog/2019/03/datastax-bulk-loader-introduction-and-loading
- https://www.datastax.com/blog/2019/04/datastax-bulk-loader-more-loading
- https://www.datastax.com/blog/2019/04/datastax-bulk-loader-common-settings
- https://www.datastax.com/blog/2019/06/datastax-bulk-loader-unloading
- https://www.datastax.com/blog/2019/07/datastax-bulk-loader-counting
- https://www.datastax.com/blog/2019/12/datastax-bulk-loader-examples-loading-other-locations
первые два из них подробно описывают загрузку данных
Ответ №2:
Это означает, что столбцы во входном файле CSV не соответствуют столбцам в вашей table_test
таблице. Вы можете получить подробную информацию о несоответствии схемы в mapping-errors.log
, чтобы вы знали, какие столбцы являются проблемными.
Поскольку столбцы CSV не соответствуют схеме таблицы, вам нужно будет вручную сопоставить их, указав --schema.mapping
флаг.
Подробности см. На странице общих параметров DSBulk. Вы также можете ознакомиться с примерами сопоставления схем в этом сообщении в блоге. Приветствия!
Комментарии:
1. Я добавил -delim «,» -заголовок true -m ‘0= col1, 1 = col2’
2. Если у вас есть -header, то вам может не понадобиться -m