海量数据查询使用的场景,可能存在跨年的查询,这样会导致一个问题就是数据量过大,无法跨海量数据的搜索。
在涉及分区和索引列的时候需要注意了
假设我们的查询参数为device,以及时间范围,这个时候我们设计主键则为如下方式device_2023-07-01
select substring(device,1,43),ip_time_list from ga_oneweb_gongan_mid.rp_gapoi_device_period_ip_list where device>'"+deviceid+"_"+startTime+"' and device<'"+deviceid+"_"+endTime+"'"
建表语句
CREATE TABLE ga_oneweb_gongan_mid.rp_gapoi_device_period_ip_list
(
device String,
ip_time_list String,
day String
)
ENGINE = MergeTree
PARTITION BY substring(device, 1, 1)
ORDER BY device
SETTINGS index_granularity = 8192
文章讨论了在处理跨年海量数据查询时,如何通过设计合理的主键(如device_2023-07-01)结合分区(根据device的前一部分)和创建MergeTree引擎表,以及设置适当的索引粒度(8192)来提高查询效率。
1万+

被折叠的 条评论
为什么被折叠?



