增量更新与合并更新

Iceberg不但支持增量更新,并且也支持合并更新。Apache Spark 3增加了对MERGE INTO查询的支持,可以表示行级更新。通过重写包含在overwrite提交中需要更新的行的数据文件,Iceberg支持MERGE INTO。

本节通过一个示例来演示Iceberg表中的增量更新实现和合并更新实现。

1.配置Catalog

要支持增量更新和合并更新,需要配置spark.sql.extensions扩展支持,并指定Catalog。下面以Zeppelin Notebook中为例,配置它并配置基于Hadoop路径的Catalog,代码如下:

%spark.conf
spark.sql.extensions                      org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
spark.sql.catalog.hadoop_prod             org.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.hadoop_prod.type        hadoop
spark.sql.catalog.hadoop_prod.warehouse   hdfs://xueai8:8020/data_lake/iceberg

2.初始数据湖表

首先将一个原始商品数据集写入到Iceberg数据湖中,创建一个原始的Iceber表。这个原始商品数据集文件phones.csv的内容如下:

id,price,stock
小米,1299.00,100
苹果,3299.00,300
华为,2299.00,200

......

抱歉,只有登录会员才可浏览!会员登录


《Spark原理深入与编程实战》