【大数据面试题】37 Doris 是怎么保证性能的?
一步一个脚印,一天一道大数据面试题
博主希望能够得到大家的点赞收藏支持!非常感谢
点赞,收藏是情分,不点是本分。祝你身体健康,事事顺心!
Doris 是当下大热的 MPP 数据库,下面来聊聊它如何保证高性能
的部分
没写完,写的比较粗糙,但完成比完美重要,先发出来,明天再修改
1. MPP 大规模并行处理架构,容易算力拓展
生来就是分布式的架构,算力拓展很方便。不只是MPP数据库,这是大数据组件提高算力的经典方式,通过横向拓展更便宜的机器提高算力,可以有很高算力上限。
2. 数据模型进行预处理,提高速度减少存储压力
Doris
有 3 钟数据模型:明细模型 Duplicate,主键模型 Unique,聚合模型 Aggregate;
Aggregate 聚合模型,会将 key 列相同的数据,聚合 value 列(MAX, MIN, REPLACE等)。Unique 主键模型也是 key 列数据完全相同的数据,后来的数据会替换旧数据,以保证主键的唯一性。Duplicate 明细数据模型则是不做聚合。
可以看到,聚合,主键模型都会一定程度的聚合数据,减少存储压力。而这样的预处理,可以把一部分查询需要的任务提前, IO 提前,进而大幅度提高查询速度。
3. ROLLUP 和 物化视图,进一步预处理,提高查询速度
ROLLUP,物化视图,也是在数据加载完后自动开始预处理,聚合。这两个方法都是将 处理任务提前,并一定程度的空间换时间
4. 索引
- 点查索引
快速找到符合条件的数据- 前缀索引
由于 Doris 存储数据的数据结构是SST (Sort String Table)
,是一种排序的存储结构,所以数据的存储都会被排序(像我们的新华字典会按照首字母排序一样),所以可以取稀疏索引。前缀索引,就是利用排序后的数据,取一些字段做索引,每隔1024行取一行。 - 倒排索引
Elastic Search 的经典数据结构,在全文检索时非常好。
- 前缀索引
- 跳数索引
- ZoneMap 索引
个人的理解就是会统计每一块的信息(最大最小值,是否有空值等) - Bloom Filter 索引
- NGram Bloom Filter 索引
- ZoneMap 索引
我是近未来,祝你变得更强!
原文地址:https://blog.csdn.net/Jiweilai1/article/details/140391302
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!