《高并发实时查询技术 v.3.0.pdf》由会员分享,可在线阅读,更多相关《高并发实时查询技术 v.3.0.pdf(34页珍藏版)》请在三个皮匠报告上搜索。
1、DataFunSummitDataFunSummit#20232023A Apache Doris pache Doris 实时查询实时查询分析分析李航宇SelectDB 数据库内核研发、Apache Doris Commiter架构演变Apache Doris Apache Doris 介绍介绍包括 Apache Doris 整体架构及存储引擎介绍Apache Doris 2.0 Apache Doris 2.0 实时查询实时查询优化优化高并发点查实现原理与优化Apache Doris Apache Doris 如何处理高并发如何处理高并发查询查询 Apache Doris 有哪些高并发优化
2、手段展望展望目录 CONTENT未来规划DataFunSummitDataFunSummit#20232023Apache Doris Apache Doris 存储架构介绍存储架构介绍架构图层级关系存储 and 索引列式存储DataFunSummitDataFunSummit#20232023Apache Doris Apache Doris 高并发高并发核心技术核心技术分区分桶Apache Doris 采用两级分区,第一级是 Partition,通常可以将时间作为分区键。第二级为 Bucket,通过 Hash 将数据打散至各个节点中,以此提升读取并行度并进一步提高读取吞吐。通过合理地划分区
3、分桶,可以提高查询性能,以下列查询语句为例:select*from user_table where id=5122 and create_time=2022-01-01用户以 create_time 作为分区键、ID 作为分桶键,并设置了 10 个 Bucket,经过分区分桶裁剪后可快速过滤非必要的分区数据,最终只需读取极少数据,比如 1 个分区的 1 个 Bucket 即可快速定位到查询结果,最大限度减少了数据的扫描量、降低了单个查询的延时。索引过滤机制按条件裁剪segment前缀稀疏索引加速前缀匹配倒排索引加速字符串匹配bloom过滤等值查询表达式过滤(向量化)延迟物化SELECT*fr
4、om table where key=1key=1 and index_column=abc and xyx=10案例物化视图1.空间换时间2.预聚合3.前缀匹配/对于聚合操作,直接读物化视图预聚合的列create materialized view store_amt as select store_id,sum(sale_amt)from sales_records group by store_id;SELECT store_id,sum(sale_amt)FROM sales_records GROUP BY store_id;/对于查询,k3满足物化视图前缀列条件,走物化视图加速查询
5、CREATE MATERIALIZED VIEW mv_1 as SELECT k3,k2,k1 FROM tableA ORDER BY k3;select k1,k2,k3 from table A where k3=3;物化视图 包括多种包括多种 CacheCache PageCache SQL Cache PartitionCache RuntimeFilterRuntimeFilter 根据小表数据过滤大表其他 TopN optimizationTopN optimization limit下推 key filter 延迟物化.DataFunSummitDataFunSummit#2
6、0232023Doris Doris 高并发点查高并发点查优化优化优化背景以及思路Apache Doris 已经在单节点上实现了支持数千次每秒的查询(Queries Per Second,QPS)。然而,在对超高并发性能要求的数据服务场景中(例如,数万次每秒的 QPS),仍然存在一些瓶颈。以下是所面临的挑战:1.列式存储引擎对于读取行级数据不友好,在宽表模型中会导致随机读 I/O 大幅增加。2.OLAP 数据库的执行引擎和查询优化器对于某些简单查询(例如点查询)过于繁重,需要进行短路径规划来处理此类查询。3.SQL 请求访问、查询计划解析和生成由 FE