增量更新与时间旅行

Delta Lake支持增量更新。Delta Lake使用事务日志存储数据湖元数据,通过事务日志,用户可以在给定的时间点进行时间旅行和数据探索。下面通过一个示例来演示Delta Lake中的时间旅行特性。

首先,从下面这个CSV文件创建一个Delta Lake。people.csv文件内容如下:

first_name,last_name,country
miguel,cordoba,colombia
luisa,gomez,colombia
li,li,china
wang,wei,china
hans,meyer,germany
mia,schmidt,germany

接下来,使用Spark SQL API读取这个CSV文件到一个DataFrame中,然后将该DataFrame作为一个Delta数据湖写出。代码如下:

val path = "/data/data_lake/delta_lake/people.csv"
val outputPath = "/data_lake/delta_lake/person_delta_lake"
spark
  .read
  .option("header", "true")
  .option("charset", "UTF8")
  .csv(path)
  .repartition(1)
  .write
  .format("delta")
  .mode(SaveMode.Overwrite)
  .save(outputPath)

执行上面的代码后,再执行以下HDFS shell命令查看,命令如下:

$ hdfs dfs -ls -R /data_lak ......
          

......

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


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