【发布时间】:2021-06-12 01:25:39
【问题描述】:
目前,我使用以下方法将 csv 文件从 AWS S3 下载到本地计算机:
aws s3 sync s3://<cloud_source> c:/<local_destination> --profile aws_profile。现在,我想每天使用相同的流程将文件从 AWS 同步到 Azure Data Lake Storage Gen2(单向同步)。 [注意:我只有 S3 数据源的读取/下载权限。]
我想到了解决这个问题的 5 条潜在途径:
- 在 Azure 中使用 AWS CLI 命令。 如果不运行 Azure VM,我不完全确定如何做到这一点。另外,我想让我的 AWS 配置文件凭证保留吗?
- 使用 Python 的
subprocess库运行 AWS CLI 命令。我遇到了与选项 1 类似的问题,即 a) 维护 AWS CLI 的持久安装,b) 传递 AWS 配置文件凭据,以及 c) 在没有 Azure VM 的情况下运行。 - 使用 Python 的 Boto3 库访问 AWS 服务。过去,Boto3 似乎不支持 AWS
sync命令。因此,像@raydel-miranda 这样的开发人员开发了他们自己的。 [见Sync two buckets through boto3]。但是,现在看来 Boto3 有一个DataSync类。 [见DataSync | Boto3 Docs 1.17.27 documentation]。我还需要在 Azure VM 中运行它还是可以使用 Azure 数据工厂? - 使用 Azure 数据工厂从 AWS S3 存储桶复制数据。 [参见Copy data from Amazon Simple Storage Service by using Azure Data Factory] 我担心的是我想要同步而不是复制。我相信 Azure 数据工厂具有检查文件是否已存在的功能,但如果文件已从 AWS S3 数据源中删除怎么办?
- 使用Azure Data Science Virtual Machine 可以:a) 安装 AWS CLI,2) 创建我的 AWS 配置文件来存储访问凭证,以及 3) 运行
aws s3 sync...命令。
非常感谢有关自动化此过程的任何提示、建议或想法。
【问题讨论】:
标签: amazon-s3 boto3 aws-cli azure-data-factory-2 azure-data-lake-gen2