BigQuery 到 BigQuery 数据流

Posted

技术标签:

【中文标题】BigQuery 到 BigQuery 数据流【英文标题】:BigQuery to BigQuery DataFlow 【发布时间】:2021-06-15 16:44:12 【问题描述】:

我查看了this SO post,但它已经使用了三年,我认为 GCP 从那时起发生了变化。

我要做的是使用 DataFlow 作业设置数据管道,将数据从一个 GBQ 项目复制/转换到另一个 GBQ 项目。

要创建 DataFlow 作业,您需要选择一个模板,并且没有符合我需要的模板,即没有 BQ 到 BQ 模板。

有一个使用自定义模板的选项(我想这将是一个 python 脚本或类似的东西),但没有 BQ 到 BQ 模板似乎很奇怪。 DataFlow 不是适合这项工作的工具吗?我应该只使用预定查询吗?

提前致谢

【问题讨论】:

这些是什么类型的转换?它们不能使用查询来完成吗,BQ 有很多预定义的函数并创建用户定义的函数 @vinayhudli 没什么太疯狂的。基本上旋转一个表并进行一些聚合。我认为预定查询可能是正确的方法。谢谢! 澄清一下,您不一定需要使用模板来使用数据流。您也可以编写一个新的 Beam 管道并使用 Dataflow 执行它。根据您的描述,听起来这将是一个类似于此示例的非常简单的管道 - github.com/apache/beam/blob/master/examples/java/src/main/java/… 【参考方案1】:

如果您真的想使用 Dataflow 模板,有一种方法不是很直接,您可以使用 BigQuery 到云存储模板将数据存储在 GCS 中,然后将云存储到 BigQuery 模板将数据带到目标项目。但是,请确保您提供了从目标项目访问云存储桶所需的适当权限。

【讨论】:

谢谢@钱德拉。这听起来确实比我需要的要复杂。我猜 DataFlow 不是适合这里工作的工具。我认为预定查询是【参考方案2】:

如果您想要的转换使用 SQL 无法实现或使用 SQL 不实用,您可以使用 Cloud Data fusion -> Integration studio。在这里,您可以选择源和接收器作为 BigQuery,并且有许多选项可用于转换组件。它类似于 ETL 工具。 Data Fusion Quickstart documentation.

否则,您可以在 BigQuery 本身中根据您的要求简单地执行或安排查询,并将查询结果保存在另一个表中 Saving query results in destination table。

【讨论】:

谢谢。我决定使用预定查询,但我肯定会阅读 Data Fusion

以上是关于BigQuery 到 BigQuery 数据流的主要内容,如果未能解决你的问题,请参考以下文章

Google BigQuery - 将数据流式传输到 BigQuery

如何使用 dataflowsdk 将数据从 bigquery 转录到 bigquery?

数据流:从 Pubsub RuntimeException 导出到 Bigquery

从 Firebase 到 BigQuery 的实时或每小时数据同步

将数据从 BigQuery 导出到本地 PostgreSQL/MySql 数据库

如何将所有事件数据从 Firebase 导出到 BigQuery?