我正在进行一个学生项目,涉及构建和查询Cassandra数据集群。
当我的集群负载比较轻(约30GB)时,我的查询可以正常运行,但现在它变得相当庞大(1/2TB),我的查询超时。
我曾想到这个问题可能会出现,所以在生成和加载测试数据之前,我已经在我的cassandra.yaml文件中更改了以下数值:
request_timeout_in_ms (默认值为10000)其他杂项操作的默认超时时间。
然而,当我将该值更改为1000000时,Cassandra似乎在启动时挂起了——但这可能只是超大超时的作用。
我的数据生成目标为2TB。如何查询如此大的空间而不遇到超时问题?
查询:
SELECT huntpilotdn
FROM project.t1
WHERE (currentroutingreason, orignodeid, origspan,
origvideocap_bandwidth, datetimeorigination)
> (1,1,1,1,1)
AND (currentroutingreason, orignodeid, origspan,
origvideocap_bandwidth, datetimeorigination)
< (1000,1000,1000,1000,1000)
LIMIT 10000
ALLOW FILTERING;
SELECT destcause_location, destipaddr
FROM project.t2
WHERE datetimeorigination = 110
AND num >= 11612484378506
AND num <= 45880092667983
LIMIT 10000;
SELECT origdevicename, duration
FROM project.t3
WHERE destdevicename IN ('a','f', 'g')
LIMIT 10000
ALLOW FILTERING;
我有一个演示键空间,其模式与实际使用的键空间相同,但数据规模要小得多(约为10GB),在该键空间中,这些查询运行得非常好。
所有被查询的表都有数百万行,每行大约有30列。