将 BigQuery 数据传输到亚马逊 s3 存储桶

Kul*_*shi 3 python amazon-s3 google-bigquery google-cloud-platform

我有一个存储在 Big Query 中的架构,我需要将其传输到亚马逊 s3 存储桶。过程是什么?BigQuery 数据属于愿意提供适当访问权限来传输数据的其他组织。我找到了从 s3 存储桶导入到 gcp 的方法,但没有办法直接从大查询导出到 s3..我真的陷入了这部分。另外,我需要安排此过程,因为 bigquery 中的数据正在发生变化,并且我每天都需要不断地将数据添加到我的 s3 存储桶中。请提及相关参考文献。请注意,每天的数据将以 TB 为单位

Hus*_*egm 5

AFAIK 没有直接的 bigquery 到 s3 管道,但解决方法是 BigQuery 到 Google 云存储,然后到 s3

  1. 第一步是在计划作业的计算机上设置 gcloud sdk 。

  2. 配置 gcloud 并特别注意boto 配置,如果该进程要在 EC2 上运行并附加允许其写入 S3 的角色,则可以跳过此步骤(这也是比使用密钥更好的安全实践)

  3. 将数据从bigquery复制到gcs

     bq --location=US extract --destination_format AVRO --compression SNAPPY [source_table] [target location on gcs]
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将文件从 gcs 复制到 s3

     gsutil rsync -r [target location on gcs] to [target location on s3]
    
    Run Code Online (Sandbox Code Playgroud)

注意:此过程适用于 GA360 数据,因为它已经按天分区,但如果情况并非如此,并且您无法分离表,那么您可以在 GCP 上安排查询来创建具有将要使用的增量逻辑的表作为[源表]

更新 AWS 发布了可以做到这一点的BQ胶水连接器