Google cloud platform 使用谷歌云被动接收批处理数据(客户端推送)的好方法是什么?

Google cloud platform 使用谷歌云被动接收批处理数据(客户端推送)的好方法是什么?,google-cloud-platform,google-api,google-cloud-storage,batch-processing,data-ingestion,Google Cloud Platform,Google Api,Google Cloud Storage,Batch Processing,Data Ingestion,我正在我的公司实施我的第一条“自动”数据接收管道。我们的客户不想让我们在他们的数据库中进行任何调用(甚至创建副本等)。到目前为止,我认为最好的解决方案是一个端点(让他们将数据推送到存储器),这样我们就可以使用它并进行所有的数据科学过程。我的云提供商是谷歌云,我的客户端使用MySQL服务器 我一直在网上阅读许多主题,并访问了以下链接: -对于批处理,它讨论了云存储、云传输设备、传输设备 -这些URL是有时间限制的资源,用于访问,例如,谷歌云存储,并将数据写入其中 我的简单解决方案是用户签名URL-

我正在我的公司实施我的第一条“自动”数据接收管道。我们的客户不想让我们在他们的数据库中进行任何调用(甚至创建副本等)。到目前为止,我认为最好的解决方案是一个端点(让他们将数据推送到存储器),这样我们就可以使用它并进行所有的数据科学过程。我的云提供商是谷歌云,我的客户端使用MySQL服务器

我一直在网上阅读许多主题,并访问了以下链接:

-对于批处理,它讨论了云存储、云传输设备、传输设备

-这些URL是有时间限制的资源,用于访问,例如,谷歌云存储,并将数据写入其中

我的简单解决方案是用户签名URL->云存储->数据流->BigQuery。这是一个好方法吗

总而言之,我希望得到关于最佳实践的建议,以及允许用户在GCP中插入数据而不暴露其数据或我的基础结构的可能方法

禁忌:

  • 客户端将定期发送数据(每天一次)
  • 数据是半结构化的(我将创建和创建内部管道) 转换)
  • 预处理后,数据必须发送到BigQuery

    • 此处可能不需要签名URL和数据流。签名URL通常在您不希望用户使用Google帐户访问云存储时使用,但在处理云存储时也需要更多考虑。如果你知道你的客户端在推送数据时会有一个Google帐户,那么可以跳过它(特别是因为不需要超时来保护私钥,因为代码是在后端运行的,而不是在客户端的移动应用程序中运行的)。您可以简单地使用appengine创建一个基本的web应用程序,客户端将使用该应用程序引擎执行每日推送,然后将其上传到云存储桶中执行推送。appengine还将确保文件的格式正确,并遵循上传文件之前定义的特定约束

      至于数据流,因为它的最佳用途是流式传输,而在您的情况下,它是一种被动的批量接收,所以在您需要每天只进行一次转换时,为持续运行的服务付费可能不是最佳方法。更有效的方法是使用预处理和应用转换,这将在云存储桶中进行。然后,该函数将使用其API将数据推送到BigQuery

      整个流程将是: App Engine web App清理转储->存储API->存储桶对象更改通知->触发云函数(CF)->CF下载对象->CF执行转换->CF将行保存到BigQuery


      GAE->GCS->CF->BQ

      谢谢,我会测试它并给你反馈。