开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

如何区别存储和索引的方式,以及整个用户视角看起来它大概是什么样的?

如何区别存储和索引的方式,以及整个用户视角看起来它大概是什么样的?

展开
收起
Medusa 2021-11-12 16:15:21 551 0
1 条回答
写回答
取消 提交回答
  • 如图示,用户写了一个 SQL 之后,首先会按照用户分区键路由到对应要找的表上面,找对逻辑对象 Table。

    第二步通过 Distribution Key 找到对应 Shard。

    第三步是 Segment Key,找到 Shard 之后要找对应 Shard 上面的文件,因为实际数据是存储成一个个文件,我们通过 Segment Key 找到想要打开的文件。

    第四步是在文件内部,数据是否有序,这是通过 Clustering Key 来查找的,Clusterin g Key 帮助我们找对实际文件区间。

    第五步是 Bitmap。因为 Hologres 把数据按照一个个 Batch 存储,在一个 Batch 里面,我们需要通过 Bitmap 快速定位到某一行,否则需要把某一个区间范围内所有的数据扫一遍。

    图中从上往下不同的过程,越来越到文件内部,越往上是越大的范围。

    配图27.png

    资料来源:《实时数仓“王炸组合”-实时计算》,下载链接:https://developer.aliyun.com/topic/download?id=7944

    2021-11-12 18:34:47
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
存储分层企业数据存储类型选择与优化 立即下载
动态、高效,蚂蚁动态卡片的内核逻辑 立即下载
实战-如何基于HBase构建图片视频数据的统一存储检索方案 立即下载