增量更新与合并更新
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 ......抱歉,只有登录会员才可浏览!会员登录