推广 热搜:   中国  公司  行业  设备  快速  企业  上海  未来  技术 

数据湖架构--Iceberg

   日期:2024-12-18     移动:http://www78564.xrbh.cn/mobile/quote/27057.html

和Hudi类似,Iceberg也提供了数据湖的功能,根据官网的定义,它是一个为分析大数据集开源的表存储格式,可以SQL表一样用Spark、Preso进行查询。Iceberg框架很好的解耦了数据计算与数据存储,计算引擎支持Spark、Flink和Hive等。本文第一部分将用Spark进行数据操作,后续再补充Flink操作部分。

数据湖架构--Iceberg

功能特性

  1. 支持Schema变更:字段的增删改对数据表没有影响
  2. Hidden Partition:用户不用再去管理表的partition,在Hive中插入数据时是需要指定partition的,因为Hive并不会检查分区格式,所以用户要自己去校验分区格式是否正确,在Iceberg中,系统会自动处理数据并保存到正确的分区中。

Schema管理

Iceberg Schema可以通过Hivemetastore方式或者Hadoop文件方式进行管理,两种方式在处理metadata的文件名时采用不同的方式,如果想直接通过Hive指定外部表是不行的。这种处理方式有些奇怪,不知道是不是因为我还没有看到这个设计背后的原因。

  • hadoop文件,查看文件命名规则
  • hive metastore元数据管理,Iceberg表以外部表的形式存储在hive metastore中

表以及数据操作

下面会通过Spark操作Iceberg的表和数据相关的怎删改操作,为了能够识别Iceberg,首先要启动SparkSession并配置好Iceberg的参数,参数是metastore的位置,通过设置spark.sql.catalog.spark_catalog.type 来确定使用Hadoop文件还是Hive metastore,因为之后要使用Presto,这里用Hivemetastore来管理Iceberg的metadata

 

表历史

查看历史快照

 

创建表

Spark SQL创建表,并添加数据

 

添加字段

添加字段成功之后,通过hive-cli可以验证新添加的字段

 

删除字段

 

Presto 查询

在Presto Server中添加Iceberg配置,/usr/lib/presto/etc/catalog/iceberg.properties

 

回退以及历史查询

查看表的Snapshot历史信息,Iceberg支持时间旅行,即历史查询,SparkSQL目前不支持TimeTravel,需要用Spark API进行调用。

 

恢复到历史版本,需要同JavaAPI实现

 

小文件合并

Iceberg合并小文件时并不会删除被合并的文件,Compact是将小文件合并成大文件并创建新的Snapshot。如果要删除文件需要通过Expire Snapshots来实现

 

删除历史快照

历史快照是通过ExpireSnapshot来实现的,设置需要删除多久的历史快照

本文地址:http://www78564.xrbh.cn/quote/27057.html    迅博思语 http://www78564.xrbh.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关最新动态
推荐最新动态
点击排行
网站首页  |  二维码  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号