问题描述
我一直从 spark 结构化流中更新表(kafka 源) 写成这样(在eachBatch中)
parsedDf \
.select("somefield","anotherField",'partition','offset') \
.write \
.format("delta") \
.mode("append") \
.option("mergeSchema","true") \
.save(f"/mnt/defaultDatalake/{append_table_name}")
我需要快速查看这张桌子上的“过去半小时内插入的物品” 如何做到这一点? 我可以从这个表中获得一个 readStream,但我缺少的是如何将流的“尾部”保留在那里
Databricks 7.5 spark 3.
解决方法
鉴于 Delta Lake 没有物质化视图,并且 Delta Lake 时间旅行与您想要的最新数据无关:
-
您可以加载数据并包含插入时不需要查找的键。
-
预填充时间维度以连接您的数据。把它看成一个一分钟的维度。
-
加入这个维度的数据,依赖动态文件修剪。因此,您需要使用滚动窗口每 30 分钟每分钟查询一次,并在查询中设置这些值。