scylla sstableloader 在将 sstables 从 cassandra 复制到 scylla 时出错?

scylla sstableloader giving error on copying sstables from cassandra to scylla?

我正在使用 Cassandra 3.0.15v,并希望使用 scylla 提供的 sstableloader 实用程序将我的数据移动到 scylla db 3.3.0v,我尝试了不同的方法,但我无法做到它。

Table 架构是,

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. 拍摄了 table 的快照。
  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)

Cassandra 和 Scylla 之间的 table 属性存在一些细微差异。这可能是错误的原因。它需要对您的架构进行细微更改

您是否尝试按照此 Cassandra 到 Scylla 迁移文档中的步骤进行操作? https://docs.scylladb.com/operating-scylla/procedures/cassandra_to_scylla_migration_process/

特别注意文档底部的架构差异。还有限制和已知问题。

另一个很好的来源是这个关于迁移策略的博客(如果您愿意考虑 sstableloader 以外的其他方法),还有一个 link 关于该主题的网络研讨会。 https://www.scylladb.com/2019/04/02/spark-file-transfer-and-more-strategies-for-migrating-data-to-and-from-a-cassandra-or-scylla-cluster/

祝你好运!