如何在 GCS 中的增量表之上创建 BQ 外部表并仅显示最新快照

Rak*_*Rak 5 google-cloud-storage google-bigquery pyspark delta-lake

我正在尝试在增量表之上创建一个外部 BQ 外部表,该表使用谷歌存储作为存储层。在增量表上,我们执行 DML,其中包括删除。

我可以在所有增量文件都存在的 gs 存储桶顶部创建一个 BQ 外部表。然而,它甚至会拉取删除记录,因为 BQ 外部表无法读取 delta 的事务日志,其中它说明要考虑哪些 parquet 文件以及要删除哪些文件。

除了以编程方式将数据从 delta 复制到 BQ 之外,有没有一种方法可以将 BQ 中的 delta 表(gs 位置)的最新快照公开为外部表?

Oli*_*aba 1

我也在开发这种管道,我们将 Delta Lake 文件转储到 GCS 中并将其呈现在 Bigquery 上。从 GCS 增量文件生成清单文件将根据增量文件当前设置的版本为您提供最新快照。然后,您需要创建一个自定义脚本来解析该清单文件以获取文件列表,然后运行提及这些文件的 bq 加载。

val deltaTable = DeltaTable.forPath(<path-to-delta-table>)
deltaTable.generate("symlink_format_manifest")
Run Code Online (Sandbox Code Playgroud)