时间旅行

Iceberg表格式支持的另一个关键功能是所谓的“时间旅行”。Iceberg提供了开箱即用的功能,可以查看一个表在过去不同时间点的样子。

为了选择特定的表快照或某个时间点的快照,Iceberg支持两个Spark读选项:

  • (1) snapshot-id:选择一个特定的表快照。
  • (2) as-of-timestamp:选择某个时间戳(以毫秒为单位)的当前快照。

用户可以查看某个表的snapshots快照元数据表来查看该表的快照信息。例如,要查看hadoop_prod.my_db.phones表的所有快照,代码如下:

// 查看所有的快照
spark.sql("select * from hadoop_prod.my_db.phones.snapshots").show()

可以得到的输出信息如图11-36所示。

可以只选取部分字段以查看完整的提交时间,代码如下:

spark.sql("select * from hadoop_prod.my_db.phones.snapshots")
     .select("committed_at","snapshot_id","parent_id","operation")
     .show(false)
......

......

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


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