首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
云原生
›
Apache Iceberg Architecture—Iceberg 架构详解
返回列表
发新帖
Apache Iceberg Architecture—Iceberg 架构详解
[复制链接]
发表于
4 小时前
|
显示全部楼层
|
阅读模式
Apache Iceberg Architecture
Apache Iceberg 的架构可以分为三个告急条理:Iceberg Catalog、元数据层和数据层。
一、 Iceberg Catalog(目次)
Iceberg Catalog 是 Iceberg 的顶层组件,负责
管理全部 Iceberg 表的元数据和元数据利用
。
Catalog 管理表的架构和元数据,提供了创建、查询和修改表的接口,是 用户和体系与Iceberg表交互的入口点。
Iceberg Catalog (catalog 目次)提供了一个中央位置,用户可以通过它找到每个表当前元数据文件的位置,是读取和写入 Iceberg 表的关键组件。
当前元数据指针
:
Iceberg Catalog 中
生存每个表的当前元数据文件的指针(current metadata pointer),确保用户可以大概获取到最新的元数据
。
原子利用支持
:
Catalog 必须支持原子利用,以
确保在更新当前元数据指针时可以大概提供变乱的原子性和精确性。
常见的支持方式包罗 HDFS、Hive Metastore 和 Nessie。
元数据
存储
方式
:
差异的 Catalog 方案
存储
当前元数据指针的方式差异:
HDFS
:在表的元数据文件夹中有一个名为 version-hint.txt 的文件,内容为当前元数据文件的
版本
号。
Hive Metastore
:表在元
存储
中的条目包罗一个属性,存储当前元数据文件的位置。
Nessie
:Nessie 存储每个表的当前元数据文件的位置。
查询流程
:
当
实验 SELECT 查询时,查询引擎起首访问 Iceberg Catalog,获取目标表的当前元数据文件位置,然后打开该文件举行数据读取
。
二、元数据层 (metadata layer)
Iceberg 的元数据层负责管理和存储有关表的关键信息,确保高效的数据读取与利用。元数据告急包罗三个部门:
元数据文件
、
清单列表
和
清单文件
。
1. 元数据文件(Metadata File)
元数据文件生存关于表的根本信息:
表的 schema
:界说表中字段的范例和名称。
分区信息
:阐明数据如安在表中分区以优化查询
性能
。
快照(Snapshots)
:记载表在差异时间点的状态。每个快照内里会列出表在某个时候的全部 data files 列表。data files是存储在差异的manifest files内里,manifest files是存储在一个Manifest list文件内里,而
一个Manifest list文件代表一个快照
。
当前快照的引用
:标识哪个快照是表的最新状态。
当实验 SELECT 查询时,查询引擎起首通过目次获取当前元数据文件的位置,然后读取当前快照的 ID,并在快照数组中查找该 ID,终极打开与之对应的清单列表。
2. 清单列表(Manifest List)
清单列表是一个指向多个清单文件的列表。每个清单文件记载一个快照的详细信息:
清单文件的位置
:清单文件的存储位置。
快照 ID
:该清单文件所属的快照 ID。
分区信息
:记载哪些分区包罗在该清单中。
列的范围
:跟踪数据文件的下限和上限。
查询引擎打开清单列表后,读取清单路径并加载清单文件。此时,可以举行一些优化,比方基于行数或分区信息过滤数据。
3. 清单文件(Manifest File)
清单文件是 Iceberg 管理数据文件的核心,告急职责包罗:
跟踪数据文件及其详细信息和统计数据。
每个清单文件追踪一部门数据文件,以实现并行读取和进步服从。
文件路径
:数据文件的存储位置。
数据文件格式
:指明利用的文件格式,如 Parquet、ORC 或 Avro。
记载计数
:文件中记载的数目。
列的上下限
:用于数据过滤和优化的统计信息。
当查询引擎打开清单文件后,读取文件路径和相干统计信息,以便访问现实的数据文件,并利用统计信息举行优化。
三、 数据层 (Data Layer)
数据层是现实存储数据的地方,Data Files数据文件是Apache Iceberg表真实存储数据的文件。
数据文件 (Data Files)
:
Iceberg 支持多种数据文件格式,如 Parquet、ORC 和 Avro。这些文件按照列式存储,便于高效的读写和压缩。假如文件格式选择的是parquet,那么文件是以“.parquet”末端。
数据文件按照 Iceberg 的分区计谋举行构造,以优化数据访问。
Iceberg每次更新会产生多个数据文件(data files)。
再回过头来看一下这个结构,是不是就豁然开朗啦。
仅供学习利用哈
整理不易,列位彦祖一键三连哈😂
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
北冰洋以北
+ 我要发帖
×
登录参与点评抽奖,加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表