仅在 Big Query Job 完成后触发数据流的方法
Way to trigger dataflow only after Big Query Job finished
其实我的数据是以下步骤:
GCS 存储桶中的新对象会触发一个 Google 云函数,该函数创建一个 BigQuery 作业以将此数据加载到 BigQuery。
我需要低成本的解决方案来了解此大查询作业何时完成并仅在作业完成后触发数据流管道。
观测:
- 我知道 Google Cloud Function 的 BigQuery alpha 触发器,但我
不知道这是不是个好主意,据我所见,这个触发器使用了这项工作
id,据我所知无法修复,每当 运行 工作
显然必须再次部署该功能。当然
这是一个 alpha 解决方案。
- 我阅读了 Stackdriver Logging->Pub/Sub -> Google 云函数 -> Dataflow 解决方案,但我没有找到任何日志
表示作业完成。
- 我的文件很大,所以使用 Google 云函数来等待作业完成不是一个好主意。
您可以查看 Cloud Composer,它由 Apache Airflow 管理,用于以顺序方式编排作业。 Composer 创建一个 DAG 并执行 DAG 的每个节点,并检查依赖关系以确保事物根据您定义的条件并行或顺序 运行。
你可以看看这里提到的例子 - https://github.com/GoogleCloudPlatform/professional-services/tree/master/examples/cloud-composer-examples/composer_dataflow_examples
尽管您提到了 Stackdriver 日志记录,但您可以将其与此过滤器一起使用
resource.type="bigquery_resource"
protoPayload.serviceData.jobCompletedEvent.job.jobStatus.state="DONE"
severity="INFO"
如果需要,您可以另外添加数据集过滤器。
然后在这个高级过滤器和运行你的数据流作业上创建一个汇入函数。
如果这与您的预期不符,您能否详细说明原因?
其实我的数据是以下步骤:
GCS 存储桶中的新对象会触发一个 Google 云函数,该函数创建一个 BigQuery 作业以将此数据加载到 BigQuery。
我需要低成本的解决方案来了解此大查询作业何时完成并仅在作业完成后触发数据流管道。
观测:
- 我知道 Google Cloud Function 的 BigQuery alpha 触发器,但我
不知道这是不是个好主意,据我所见,这个触发器使用了这项工作 id,据我所知无法修复,每当 运行 工作 显然必须再次部署该功能。当然
这是一个 alpha 解决方案。 - 我阅读了 Stackdriver Logging->Pub/Sub -> Google 云函数 -> Dataflow 解决方案,但我没有找到任何日志
表示作业完成。 - 我的文件很大,所以使用 Google 云函数来等待作业完成不是一个好主意。
您可以查看 Cloud Composer,它由 Apache Airflow 管理,用于以顺序方式编排作业。 Composer 创建一个 DAG 并执行 DAG 的每个节点,并检查依赖关系以确保事物根据您定义的条件并行或顺序 运行。
你可以看看这里提到的例子 - https://github.com/GoogleCloudPlatform/professional-services/tree/master/examples/cloud-composer-examples/composer_dataflow_examples
尽管您提到了 Stackdriver 日志记录,但您可以将其与此过滤器一起使用
resource.type="bigquery_resource"
protoPayload.serviceData.jobCompletedEvent.job.jobStatus.state="DONE"
severity="INFO"
如果需要,您可以另外添加数据集过滤器。
然后在这个高级过滤器和运行你的数据流作业上创建一个汇入函数。
如果这与您的预期不符,您能否详细说明原因?