scylla sstableloader, выдающий ошибку при копировании sstables из Кассандры в scylla? - PullRequest
4 голосов
/ 22 апреля 2020

Я использую Cassandra 3.0.15v и хочу переместить мои данные в scylla db 3.3.0v с помощью утилиты sstableloader, предоставляемой scylla, и я пробовал разные подходы, но я не могу это сделать.

Схема таблицы:

CREATE TABLE events.test (
    "Id1" text,
    "Id2" text,
    "event" set<text>,
    PRIMARY KEY ("Id1", "Id2")
) 
WITH CLUSTERING ORDER BY ("Id2" ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'ALL'}
    AND comment = ''
    AND compaction = {'class': 'SizeTieredCompactionStrategy'}
    AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99.0PERCENTILE';

Я выполнил следующие шаги:

  1. сделал снимок таблицы.
  2. скопировал его на сервер scylla.
  3. Выполнить команду: sstableloader --nodes serverIP keySpace / tableName

При выполнении вышеуказанной команды получаемый ответ:

com.datastax.driver.core.exceptions.SyntaxError: line 1:75  : missing elements...

Я не могу понять что я тут делаю не так Поэтому любая помощь будет принята с благодарностью.

Просто нашел эти журналы, используя journalctl _COMM = scylla

cql_server - exception while processing connection: std::system_error (error system:32, sendmsg: Broken pipe)
Apr 22 14:54:02 ip-1-0-4-100 scylla[1371]:  [shard 0] cql_server - exception while processing connection: std::system_error (error system:32, sendmsg: Broken pipe)
Apr 22 14:54:02 ip-1-0-4-100 scylla[1371]:  [shard 2] cql_server - exception while processing connection: std::system_error (error system:32, sendmsg: Broken pipe)
Apr 22 15:35:33 ip-1-0-4-100 scylla[1371]:  [shard 3] cql_server - exception while processing connection: std::system_error (error system:32, sendmsg: Broken pipe)
lines 3484-3523/3523 (END)

1 Ответ

8 голосов
/ 23 апреля 2020

Есть некоторые незначительные различия в атрибутах таблицы между Кассандрой и Сциллой. Это может быть причиной ошибки. Это требует незначительных изменений в вашей Схеме

Пробовали ли вы выполнить шаги из этой Кассандры в Сциллу Миграция c? https://docs.scylladb.com/operating-scylla/procedures/cassandra_to_scylla_migration_process/

Обратите особое внимание на разницу в схеме внизу do c. А также ограничения и известные проблемы.

Еще один хороший источник - это блог о стратегиях миграции (если вы хотите рассмотреть другие методы, кроме sstableloader), там также есть ссылка на вебинар по теме c. https://www.scylladb.com/2019/04/02/spark-file-transfer-and-more-strategies-for-migrating-data-to-and-from-a-cassandra-or-scylla-cluster/

Удачи!

...