Google Cloud Dataflow - 是不是可以定义从 BigQuery 读取数据并写入本地数据库的管道?

Posted

技术标签:

【中文标题】Google Cloud Dataflow - 是不是可以定义从 BigQuery 读取数据并写入本地数据库的管道?【英文标题】:Google Cloud Dataflow - is it possible to define a pipeline that reads data from BigQuery and writes to an on-premise database?Google Cloud Dataflow - 是否可以定义从 BigQuery 读取数据并写入本地数据库的管道? 【发布时间】:2020-07-06 16:33:50 【问题描述】:

我的组织计划在 BigQuery 中存储一组数据,并希望定期提取其中一些数据并将其带回本地数据库。在回顾我在网上找到的有关 Dataflow 的内容时,最常见的示例涉及将数据从另一个方向移动 - 从本地数据库到云。是否可以使用 Dataflow 将数据从云端带回我们的系统?如果没有,还有其他更适合此任务的工具吗?

【问题讨论】:

我投票结束这个问题,因为它缺乏足够的细节来创建答案。清楚地说明问题、您尝试过的内容以及任何错误。阅读此链接以帮助创建一个可以回答的好问题,而无需对您的问题提出意见或猜测。 ***.com/help/how-to-ask 【参考方案1】:

抽象地说,是的。如果您有一组源和同步,并且您想通过一组转换在它们之间移动数据,那么 Beam/Dataflow 应该非常适合该任务。听起来您在讨论基于批处理的周期性工作流程,而不是连续流式工作流程。

在实施工作方面,还有更多问题需要考虑。是否存在适用于您预期的本地数据库的 Beam 连接器?您可以在此处查看内置连接器:https://beam.apache.org/documentation/io/built-in/(请注意页面顶部的每种语言的 SDK 切换)

您需要自定义转换吗?您是否正在组合来自 BigQuery 以外的系统的数据?要么对我来说意味着你在 Beam 的正确轨道上。

另一方面,如果您的提取过程相对简单(例如,只需每周运行一次查询并提取它),您可能会发现有更简单的解决方案,特别是如果您不移动太多数据并且您的数据库可以在 BigQuery export formats 之一中提取数据。

【讨论】:

感谢您的回答。根据对我最初问题的评论,我意识到我未能提供太多细节。我还没有尝试过,因为我们仍在评估可行性。我可能会尝试通过询问“GCP 上的数据流技术是否允许写入本身不驻留在 GCP 上的数据存储”来简化我的问题。毫不奇怪,常见的例子集中在相反的方向——将数据输入 GCP。因此,我不清楚这项技术是否从根本上仅限于朝这个方向工作。无论如何,谢谢你们的反馈。

以上是关于Google Cloud Dataflow - 是不是可以定义从 BigQuery 读取数据并写入本地数据库的管道?的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud DataFlow 随机化 WritetoBigQuery

到 Cloud Bigtable 的 Google Cloud Dataflow 管道中的异常

Google-cloud-dataflow:无法通过带有“BigQueryDisposition.WRITE_TRUNCATE”的“WriteToBigQuery/BigQuerySink”将 jso

Google Cloud Dataflow 服务帐户未传播给工作人员?

通过 Google Cloud Dataflow 创建/写入 Parititoned BigQuery 表

通过 Google Cloud Dataflow 创建/写入 Parititoned BigQuery 表