Google cloud platform 以预定义顺序运行多个cloud sql和bigquery查询的选项有哪些

Google cloud platform 以预定义顺序运行多个cloud sql和bigquery查询的选项有哪些,google-cloud-platform,google-bigquery,Google Cloud Platform,Google Bigquery,我需要在GCP BigQuery和GCP CloudSql之间执行定期数据清除和数据加载操作。 这涉及到以预定顺序在GCP BigQuery和GCP cloud SQL中运行多个查询,并在后续查询中使用先前查询的查询结果 我正在考虑以下几个选项 选项1:使用使用“联邦查询”(Federated query)的BigQuery“计划查询”(Scheduled Queries)。这很好,因为这项工作涉及在gcp cloud SQL数据库中触发“只读”查询,并在gcp BiqQuery中运行多个查询。

我需要在GCP BigQuery和GCP CloudSql之间执行定期数据清除和数据加载操作。 这涉及到以预定顺序在GCP BigQuery和GCP cloud SQL中运行多个查询,并在后续查询中使用先前查询的查询结果 我正在考虑以下几个选项

选项1:使用使用“联邦查询”(Federated query)的BigQuery“计划查询”(Scheduled Queries)。这很好,因为这项工作涉及在gcp cloud SQL数据库中触发“只读”查询,并在gcp BiqQuery中运行多个查询。 然而,由于我的操作涉及从GCP cloud SQL中清除数据,所以排除了联邦查询

选项2:我正在考虑的另一个选项是使用gcp compute linux engine VM作为控制器来执行跨gcp cloud SQL mysql数据库和gcp bigQuery的操作。 我可以运行cron作业来安排操作 就从gcp计算引擎VM运行gcp云SQL查询而言,google在“从VM实例连接”教程中详细介绍了这一点(了解如何从计算引擎VM实例连接云SQL实例) 而且,对于触发gcp大查询查询,bq命令行工具()提供了一个很好的选项。 这应该允许我运行一系列交错的BigQuery和gcp cloud SQL

您是否看到我正在考虑的上述“选项2”中的任何陷阱


你还有其他的选择吗?我想知道,云数据流是否适合于一个涉及跨多个数据库(云SQL和BigQuy查询)的任务,并在后续查询中使用中间查询结果

< P>考虑您的选项2,我可能会考虑DataFlow、云函数、云运行,作为这些操作的主要主干,而不是虚拟机。您可能会发现无服务器解决方案更便宜、更可靠,具体取决于您更广泛的环境,以及“周期性”流程的“运行频率”


另一方面,如果你(或你的公司)已经在VM上的“一些代码”中有相关的经验,但是在无服务器的解决方案中没有技能、知识和经验,那么“教育开销”会增加这条路径的总成本。

< P>考虑你的选项2,我可能会考虑DataFlow、云函数、云运行,作为这些操作的主要主干,而不是虚拟机。您可能会发现无服务器解决方案更便宜、更可靠,具体取决于您更广泛的环境,以及“周期性”流程的“运行频率”


另一方面,如果您(或您的公司)已经在VM的“某些代码”方面有相关经验,但在无服务器解决方案方面没有技能、知识和经验,那么“教育开销”可能会增加此路径的总体成本。

要协调查询,您需要一个编排器。谷歌云上有2个:

  • 大一云作曲家,企业级(功能和成本!)
  • 新的:。无服务器且易于使用
  • 我建议您使用云工作流。您可以创建对BigQuery执行的调用工作流(联邦查询或非联邦查询)

    如果您需要更新/删除云SQL中的数据,我建议您创建代理云函数(或云运行),该函数接受SQL查询参数并在云SQL上执行

    您可以使用工作流调用您的云函数(或云运行),这只是一个HTTP调用


    工作流还具有处理和建议从API调用收集答案的处理能力的功能。因此,您可以解析响应,对其进行迭代并调用后续步骤,甚至可以通过注入来自前面步骤的一些数据。

    要编排查询,您需要一个编排器。谷歌云上有2个:

  • 大一云作曲家,企业级(功能和成本!)
  • 新的:。无服务器且易于使用
  • 我建议您使用云工作流。您可以创建对BigQuery执行的调用工作流(联邦查询或非联邦查询)

    如果您需要更新/删除云SQL中的数据,我建议您创建代理云函数(或云运行),该函数接受SQL查询参数并在云SQL上执行

    您可以使用工作流调用您的云函数(或云运行),这只是一个HTTP调用

    工作流还具有处理和建议从API调用收集答案的处理能力的功能。因此,您可以解析响应,对其进行迭代并调用后续步骤,甚至可以通过注入来自前面步骤的一些数据