目前正在尝试为一个大型项目设置一个设置。该项目将利用数万个表将大数据分成多个单独的部分,以便更快地进行搜索。因此,为了测试这一点,我创建了这些表,但请注意,这些表的创建速度非常慢。
调整这些表的架构需要我(当然)删除现有表。但是由于每个表需要 10-30 秒,因此需要等待数天。
删除表的命令:echo "use keyspace;TRACING ON;drop table table28;exit;" | cqlsh --request-timeout=60000 > trace
数据将超过 1,000,000,000,000 行,这就是为什么要按时间范围拆分它们。我们始终知道时间范围是什么,因此我们按时间范围拆分表格。不过 <5 列。
我希望有人能帮我调试一下,看看如何提高性能。跟踪链接如下: https://ufile.io/gz9mz
答案1
Cassandra 中超过几百个表是数据模型不良的明显标志 - 如果您有数千个表,那么您需要考虑如何解决您的任务。您需要考虑到对于每个表,在堆和堆外分配的内存包含不同的元数据等。
为什么需要将数据分成块 - 为什么它在一张表中不起作用?您是否使用了允许过滤的查询?您能描述一下用例吗?
PS:这个问题更多是针对 StackOverflow 或 DBA StackExchange 的......