6 个回答
将指标列的类型定义为BITMAP,使用BITMAP_UNION聚合函数,查询时用BITMAP_UNION_COUNT或COUNT(DISTINCT)进行精确去重查询。
发布于:3周前 (11-04) IP属地:四川省
添加物化视图或者rollup,通过调整列顺序来优化前缀查询,或减少维度列以提升数据聚合度。
发布于:3周前 (11-04) IP属地:四川省
将需要频繁关联的表设置为同一个Colocation Group(CG),并保证它们的分桶规则(分桶键、桶数量、副本分布)完全一致。这样,关联数据可以本地化计算,这里需要注意下:两张表的分桶列类型和数量、桶的数量、副本数必须完全一致
发布于:3周前 (11-04) IP属地:四川省
通过在建表时设置PROPERTIES来启用和配置动态分区规则,免去手动管理按天分区(如创建新分区、删除旧分区)的繁琐工作,避免因分区未创建导致数据导入失败。
发布于:3周前 (11-04) IP属地:四川省
在在建表时将区分度高、频繁作为查询条件的列放在指定排序列Sort Key的前面,数据在内部会按这些列排序存储,当查询条件包含Sort Key的前缀列时,Doris可以使用二分查找快速定位数据,大幅减少扫描数据量。需要注意下:Sort Key的列数不宜过多,否则会增加数据导入开销
发布于:3周前 (11-04) IP属地:四川省
优化Doris的查询性能具体措施有:
1、采用分区分桶设计
1、采用分区分桶设计
高频查询的WHERE条件字段作为分区键(如PARTITION BY RANGE(dt)),减少数据扫描范围
选择高基数列作为分桶键(如用户ID),桶数建议保持BE节点数的整数倍(如10个BE节点,分桶数设为20-30)2、使用合理的索引前缀索引:将高频过滤条件的列放在排序键最前面(ORDER BY前3-5列)
Bloom Filter索引:对高基数列(如订单号)启用Bloom Filter加速等值查询3、使用物化视图预聚合针对重复计算的高开销查询(如SUM/COUNT),创建Rollup表或物化视图4、使用向量化执行加速启用向量化引擎(默认开启),确保查询条件使用向量化函数5、调整单个查询的并行度#建议不超过BE核数的50%
SET parallel_fragment_exec_instance_num = 8;6、使用花村,增加sql结果缓存SET query_cache_size = 2G;7、启用分页缓存#针对高并发点查场景
disable_storage_page_cache=false
storage_page_cache_limit=4G发布于:6个月前 (05-23) IP属地:
我来回答
您需要 登录 后回答此问题!
