首页 > 解决方案 > 如何将 DeltaLake 文件从 GCS 包含到 BigQuery

问题描述

是否有可用于将存储在 Google Cloud Storage (GCS) 中的Delta Lake文件直接导入 BigQuery 的库/连接器?

我已经设法使用 Spark Dataframe 作为中介来编写 BigQuery 表,但我找不到任何直接连接器或 BigQuery Library 可以在不通过 spark dataframes 转换的情况下执行此操作

更新 1:我尝试使用官方连接器spark-bigquery-connector但缺少有关如何指向 BigQuery 中特定项目的文档,因此我只能从 GCS 将 DeltaLake 文件加载到 Dataframe 中。

更新 2:使用 Javier 的评论,我设法写信给 BQ,但这个解决方案没有优化,而且我可以优化 spark Job,它不会像使用谷歌 Bigquery 库那样直接,它在引擎盖下完成

更新 3 和临时解决方案:没有找到任何直接解决方案,我最终使用 spark-bigquery-connector 来摄取 Delta 文件,如下所示:

myDeltaTable.toDF
  .write
  .format("bigquery")
  .mode("overwrite")
  .option("parentProject", "MY_PARENT_PROJECT")
  .option("project", "MY_PROJECT")
  .option("temporaryGcsBucket", "A_STAGING_BUCKET_IN_GCS") // Mandatory
  .option("partitionField", "MY_PARTITION_FIELD")
  .save("DATASET.TABLE")

标签: apache-sparkgoogle-cloud-platformgoogle-bigquerygoogle-cloud-storagedelta-lake

解决方案


如果不通过一些中介,就无法将 GCS 中的 Datalake 文件提取到 BigQuery。

您可以设置一个 GCE 虚拟机,从 GCS 下载 Datalake 文件,使用Datalake 独立连接器读取它,然后写入 BigQuery(通过流 API 或写入支持的格式,如 Parquet 和导入)。

然而,这本质上是手动执行 Spark 将执行的相同操作。


推荐阅读