【问题标题】:Hourly data loading from AWS S3 to Google Big Query每小时将数据从 AWS S3 加载到 Google Big Query
【发布时间】:2020-01-08 01:28:18
【问题描述】:

目前,我有一个如下所示的数据流

AWS S3(csv 格式)-> 数据传输服务(一天一次)-> Google Big Query

但是,我想更改数据传输速率,但由于传输服务不提供,我必须实现自己的方法。

您有什么建议? (目前,我正在考虑仅使用 AWS sdk 获取对象,然后使用 Google 大查询客户端插入它们,但我还没有尝试过,由于缺乏理解,我不知道这是否可能或可扩展...给我一个提示或建议。谢谢)

【问题讨论】:

  • 使用 javascript 或 python bigquery lib 编写 aws lambda 绝对是一个不错的选择。只要确保管理您的限制,这样您就不会错过记录。尝试此操作后,如果您有更具体的问题,请根据需要打开一个新问题。

标签: python amazon-web-services amazon-s3 google-bigquery pipeline


【解决方案1】:

如果您无法更改数据传输中的某些限制,我建议您使用 python 与 AWS SDK 和 Google Cloud Library 分别从 S3 读取和在 BigQuery 中写入。不过,您可以在其他语言中找到这些库。

我还建议您为此使用一些无服务器架构。在GCP 中,如果您的传输持续时间少于9 分钟(这是云功能限制),您可以使用Cloud Function。在AWS 中,如果您的传输持续时间少于15 分钟

,您可以使用Lambda Function

如果您的传输需要更多时间,您可以使用 Compute Engine 中的虚拟机来完成。在这种情况下,您还可以使用 Cloud Schedule 在您想要的准确时间打开和关闭您的虚拟机。你可以找到那个here的教程

如果您有任何问题,请随时提供一些额外信息。

【讨论】:

  • 谢谢。您的回答基本上是我所做的,除了有一些重大问题,但您的描述是正确的。总之谢谢你的回复!
【解决方案2】:

在最多可以接受几分钟延迟的情况下,将数据获取到 BigQuery 的最具成本效益的方法是使用事件驱动的无服务器架构。

您可以使用 lambda 和云函数编写简单的传输和加载器,也可以使用一些开源项目,例如

【讨论】:

    猜你喜欢
    • 2020-01-25
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 2013-06-29
    • 2018-12-25
    相关资源
    最近更新 更多