Я использую cqlsh для добавления данных в Cassandra с помощью запроса BATCH, и я могу загрузить данные с помощью флага «-e», но а не из файла с использованием флага «-f». Я думаю, это потому, что файл локальный, а Cassandra удален. Подробности ниже:Проблемы с использованием флага «-f» в CQLSH для запуска файла query.cql
Это образец моего запроса (есть несколько строк для вставки, очевидно):
BEGIN BATCH;
INSERT INTO keyspace.table (id, field1) VALUES ('1','value1');
INSERT INTO keyspace.table (id, field1) VALUES ('2','value2');
APPLY BATCH;
Если я ввожу запрос через флаг «-e», то он не работает без проблем:
>cqlsh -e "BEGIN BATCH; INSERT INTO keyspace.table (id, field1) VALUES ('1','value1'); INSERT INTO keyspace.table (id, field1) VALUES ('2','value2'); APPLY BATCH;" -u username -p password -k keyspace 99.99.99.99
Но если я сохранить запрос в текстовый файл (query.cql) и позвонить, как показано ниже, я получаю следующий результат:
>cqlsh -f query.cql -u username -p password -k keyspace 99.99.99.99
Using 3 child processes
Starting copy of keyspace.table with columns ['id', 'field1'].
Processed: 0 rows; Rate: 0 rows/s; Avg. rate: 0 rows/s
0 rows imported from 0 files in 0.076 seconds (0 skipped).
Кассандра, очевидно, принимает команду, но не читает файл, я предполагаю, что это потому, что Cassandra находится на удаленном сервере, и файл находится локально. Экземпляр Cassandra, который я использую, - это управляемая служба с другими пользователями, поэтому у меня нет доступа к ней для копирования файлов в папки.
Как выполнить этот запрос на удаленном экземпляре Cassandra, где у меня есть только доступ к CLI?
Я хочу, чтобы иметь возможность использовать другой инструмент для создания файла query.cql и иметь пакетное задание, запускающее команду с флагом -f, но я не могу понять, как я ошибаюсь.
Благодаря doanduyhai. Исправлена проблема с удалением операторов BEGIN BATCH и 'APPLY BATCH'. Я посмотрю на команду ** COPY **, вы знаете, есть ли какой-то конкретный формат, необходимый для ** csv ** файла? –
Команда cqlsh COPY очень гибкая в отношении форматирования CSV. Просто введите 'help COPY' внутри ** cqlsh **, чтобы перечислить все доступные параметры – doanduyhai