从Google Cloud Storage Bucket复制到S3 Bucket

D_u*_*usv 1 python amazon-s3 google-cloud-storage google-cloud-platform airflow

我已经建立了一个气流工作流程,该流程将一些文件从s3提取到Google Cloud存储,然后运行sql查询的工作流程以在Big Query上创建新表。在工作流结束时,我需要将一个最终的Big Query表的输出推送到Google Cloud Storage,再从那里推送到S3。

我已经使用BigQueryToCloudStorageOperatorpython运算符成功地将Big Query表传输到Google Cloud Storage 。但是,从Google Cloud Storage到S3的迁移似乎并不那么困难,我无法找到可以在我的Airflow工作流程中实现自动化的解决方案。

我知道rsync哪个是其中的一部分,gsutil并且已经完成了这项工作(请参阅将数据从Google Cloud Storage导出到Amazon S3),但是我无法将其添加到我的工作流程中。

我有一个在计算引擎实例上运行的泊坞窗式气流容器。

非常感谢您帮助解决此问题。

非常感谢!

Che*_*zhi 5

所以我们也rsync用来在S3和GCS之间移动数据,

首先,您需要使bash脚本正常工作,例如 gsutil -m rsync -d -r gs://bucket/key s3://bucket/key

对于s3,您还需要提供AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY作为环境变量。

然后定义您的BashOperator并将其放入DAG文件中

rsync_yesterday = BashOperator(task_id='rsync_task_' + table,
                                bash_command='Your rsync script',
                                dag=dag)
Run Code Online (Sandbox Code Playgroud)