Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 在卡桑德拉的大桌子上慢选_Cassandra_Datastax_Datastax Enterprise_Nosql - Fatal编程技术网

Cassandra 在卡桑德拉的大桌子上慢选

Cassandra 在卡桑德拉的大桌子上慢选,cassandra,datastax,datastax-enterprise,nosql,Cassandra,Datastax,Datastax Enterprise,Nosql,我在Cassandra(2.1.15.1423)中有这样的表格,有超过1400000条记录: CREATE TABLE keyspace.table ( field1 text, field2 text, field3 text, field4 uuid, field5 map<text, text>, field6 list<text>, field7 text, field8 list<text&g

我在Cassandra(2.1.15.1423)中有这样的表格,有超过1400000条记录:

CREATE TABLE keyspace.table (
    field1 text,
    field2 text,
    field3 text,
    field4 uuid,
    field5 map<text, text>,
    field6 list<text>,
    field7 text,
    field8 list<text>,
    field9 list<text>,
    field10 text,
    field11 list<text>,
    field12 text,
    field13 text,
    field14 text,
    field15 list<frozen<user_defined_type>>,
    field16 text,
    field17 text,
    field18 text,
    field19 text,
    PRIMARY KEY ((field1, field2, field3) field4)
) WITH bloom_filter_fp_chance = 0.01
    AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.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';
创建表keyspace.TABLE(
字段1文本,
字段2文本,
字段3文本,
字段4 uuid,
field5地图,
字段6列表,
字段7文本,
字段8列表,
字段9列表,
字段10文本,
字段11列表,
字段12文本,
字段13文本,
字段14文本,
字段15列表,
字段16文本,
字段17文本,
字段18文本,
字段19文本,
主键((字段1、字段2、字段3)字段4)
)使用bloom_过滤器时,fp_概率=0.01
和缓存=“{”键“:“所有”,“每个分区的行“:“无”}”
和注释=“”
AND compression={'class':'org.apache.cassandra.db.compression.SizeTieredCompactionStrategy'}
压缩={'sstable_compression':'org.apache.cassandra.io.compress.LZ4Compressor'}
和dclocal\u read\u repair\u chance=0.1
并且默认的\u time\u to\u live=0
gc_grace_秒=864000
最大指数间隔=2048
和memtable_flush_period_in_ms=0
最小索引间隔=128
并读取_repair_chance=0.0
推测性_重试='99.0百分位';
在应用程序中,我使用Python(CassandraDriver==3.1.1)和Go(gocql)

问题:

我需要将记录从这个表移动到另一个表。 当我尝试获取数据(即使没有过滤器)时,所有操作都会停止,并出现超时错误。
我试图更改fetch\u size/page\u size-结果相同,但经过几分钟的等待。

如果要将记录从此表移动到其他表,则应一次移动一个分区范围。做一些类似的事情

SELECT * FROM keyspace.table
在Cassandra这样的高度分布式数据存储中不起作用。这是因为像上面这样的查询需要执行完整的群集扫描和分散/聚集操作才能满足它。这是C*中的反模式,在大多数情况下会导致超时。更好的方法是一次只查询一个分区。数据存储可以非常快速地检索这些数据。这类操作的一种常见模式是一次遍历一个表的令牌范围,然后分别处理每个表。下面是一个示例(抱歉,它是在Java中),说明如何在Cassandra中切片令牌范围,以便一次只处理一小部分数据:


如果要将记录从此表移动到另一个表,则应一次移动一个分区范围。做一些类似的事情

SELECT * FROM keyspace.table
在Cassandra这样的高度分布式数据存储中不起作用。这是因为像上面这样的查询需要执行完整的群集扫描和分散/聚集操作才能满足它。这是C*中的反模式,在大多数情况下会导致超时。更好的方法是一次只查询一个分区。数据存储可以非常快速地检索这些数据。这类操作的一种常见模式是一次遍历一个表的令牌范围,然后分别处理每个表。下面是一个示例(抱歉,它是在Java中),说明如何在Cassandra中切片令牌范围,以便一次只处理一小部分数据:


谢谢,但我有同样的请求。我也尝试在for循环中获取数据,指定PK的最后一部分,但这只适用于记录少于10k的分区(你说的“指定PK的最后一部分”是什么意思,因为您必须在任何select语句中指定整个分区密钥?我建议您查找每个主机的所有令牌范围,并在这些分区范围中循环。您不应该在特定分区中有>10K的记录,否则您将遇到其他问题。谢谢,我明天会尝试。谢谢,但我有相同的要求我还尝试在for循环中获取数据,指定PK的最后一部分,但这只适用于记录少于10k的分区(你说的“指定PK的最后一部分”是什么意思,因为您必须在任何select语句中指定整个分区键?我建议您查找每个主机的所有令牌范围,并在这些分区范围中循环。在特定分区中,您不应该有>10K的记录,否则您将遇到其他问题。谢谢,我明天将尝试。您可以共享在中使用的代码吗您的驱动程序是否从该表中提取数据?您能否共享驱动程序中用于从此表中提取数据的代码?