使用从 google 云存储到 bigquery 的云功能自动进行批处理 - 缺少一些东西
Automate batch processing using cloud functions from google cloud storage to bigquery - something is missing
-
google-cloud-storage
-
google-bigquery
-
google-cloud-platform
-
google-cloud-dataflow
-
google-cloud-functions
我想达到的目标:
每次我将文件上传到 Cloud Storage 时,它都会自动写入附加到 BigQuery。
我做过的工作:
云存储触发云功能运行良好。
数据流模板 Cloud Storage to Big Query 工作正常。
但是它们不能一起工作。我怎样才能让云函数触发来激活数据流部分?是脚本还是我遗漏的一些设置?
缺少将它们全部联系起来的东西。我对此比较陌生,我一直在搜索这方面的教程,但我不知道我是否一直在搜索错误的关键字,我找不到任何相关教程。
如果我正确理解了你的问题,你想要的工作流程将是:
云函数 ---> Google 云存储 (GCS) ---> 云数据流 ---> BigQuery
而且,对您来说最重要的部分是在 GCS 中写入新文件时如何触发数据流作业。 GCS 中没有这样的功能可以这样做。您需要以某种方式对此进行编排。
为此,您可以添加另一个云函数 triggered on a new file creation in GCS bucket。而且,在该 Cloud Function 中,您只需启动一个 Dataflow 管道。
架构最终会是这样的:
云函数 1 ---> GCS ---> 云函数 2 ---> 数据流作业 ---> BigQuery
其中云函数1是您当前的云函数,云函数2是新文件时触发的新函数到达存储桶并启动您的数据流作业。
我想提一下,如果您不在 BigQuery 中使用本机 table,而是选择使用 [=11=,则可以避免创建第二个云函数和数据流作业].它有利也有弊。根据您的情况可能是个好主意。
Dataflow 有一个 REST API,我认为这将是您的选择。
当您查看 the documentation 中的示例时,您可以在每个示例中选择控制台、gcloud
和 API。因此,如果您当前有工作模板并且您正在 运行 使用控制台或 gcloud
您只需将其转换为 POST 请求,如 API.[=15= 所示]
您可以在适当的工具中测试请求(例如,使用 POSTMAN). When you will have working POST request than you have to create Cloud Function in your preferred language were you will create the request. For nodejs you can use this, for Python this,我相信您将能够 google 在 Cloud Function 中选择任何语言的示例音调。
google-cloud-storage
google-bigquery
google-cloud-platform
google-cloud-dataflow
google-cloud-functions
我想达到的目标: 每次我将文件上传到 Cloud Storage 时,它都会自动写入附加到 BigQuery。
我做过的工作: 云存储触发云功能运行良好。 数据流模板 Cloud Storage to Big Query 工作正常。
但是它们不能一起工作。我怎样才能让云函数触发来激活数据流部分?是脚本还是我遗漏的一些设置?
缺少将它们全部联系起来的东西。我对此比较陌生,我一直在搜索这方面的教程,但我不知道我是否一直在搜索错误的关键字,我找不到任何相关教程。
如果我正确理解了你的问题,你想要的工作流程将是:
云函数 ---> Google 云存储 (GCS) ---> 云数据流 ---> BigQuery
而且,对您来说最重要的部分是在 GCS 中写入新文件时如何触发数据流作业。 GCS 中没有这样的功能可以这样做。您需要以某种方式对此进行编排。
为此,您可以添加另一个云函数 triggered on a new file creation in GCS bucket。而且,在该 Cloud Function 中,您只需启动一个 Dataflow 管道。
架构最终会是这样的:
云函数 1 ---> GCS ---> 云函数 2 ---> 数据流作业 ---> BigQuery
其中云函数1是您当前的云函数,云函数2是新文件时触发的新函数到达存储桶并启动您的数据流作业。
我想提一下,如果您不在 BigQuery 中使用本机 table,而是选择使用 [=11=,则可以避免创建第二个云函数和数据流作业].它有利也有弊。根据您的情况可能是个好主意。
Dataflow 有一个 REST API,我认为这将是您的选择。
当您查看 the documentation 中的示例时,您可以在每个示例中选择控制台、gcloud
和 API。因此,如果您当前有工作模板并且您正在 运行 使用控制台或 gcloud
您只需将其转换为 POST 请求,如 API.[=15= 所示]
您可以在适当的工具中测试请求(例如,使用 POSTMAN). When you will have working POST request than you have to create Cloud Function in your preferred language were you will create the request. For nodejs you can use this, for Python this,我相信您将能够 google 在 Cloud Function 中选择任何语言的示例音调。