我正在尝试将 sstableloader 用于使用 CQL 3.0 创建的表我已经使用 CQL 3 在 Cassandra 中创建了一个表,如下所示:
CREATE TABLE users1 (
id text PRIMARY KEY,
firstname text,
lastname text,
) WITH
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'SnappyCompressor'};
我使用 SSTableSimpleUnsortedWriter 创建 sstables,如下所示:
IPartitioner partitioner = new Murmur3Partitioner();
SSTableSimpleUnsortedWriter usersWriter = new SSTableSimpleUnsortedWriter(
directory, partitioner,keyspace,"users1",AsciiType.instance, null,64);
long timestamp = System.currentTimeMillis() * 1000;
ByteBuffer id = bytes("a11");
usersWriter.newRow(id);
usersWriter.addColumn(bytes("firstname"), bytes("Ticho"), timestamp);
usersWriter.addColumn(bytes("lastname"), bytes("Richie"), timestamp);
usersWriter.close();
System.exit(0);
虽然生成了 sstables 并且我成功地将 sstables 加载到 EC2 中的 4 节点集群中。但我无法查询它们。它只是等待并最终给出一个 RPC 超时错误。我可以使用 CLI 创建的 columnfamily 成功上传和查询,如Datastax Developer Blog所示。
请告诉我如何正确使用 SSTableSimpleUnsortedWriter 与 CQL....
我的最终目标是在 CQL(复制 SQL 表)中创建一个具有复合键的列族,并使用 SSTableLoader 从一个非常大的 csv 导出文件上传数据。