amazon-s3 - 将数据从 AWS 3 存储桶同步到 Azure Data Lake Gen 2 的最佳方法是什么
问题描述
目前,我使用以下命令将 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 这样的开发人员开发了他们自己的。[请参阅通过 boto3 同步两个存储桶]。但是,现在似乎有一个DataSync
用于 Boto3 的类。[见数据同步| Boto3 Docs 1.17.27 文档]。我是否仍需要在 Azure VM 中运行它,还是可以使用 Azure 数据工厂? - 使用 Azure 数据工厂从 AWS S3 存储桶复制数据。[请参阅使用 Azure 数据工厂从 Amazon Simple Storage Service 复制数据] 我担心我想要同步而不是复制。我相信 Azure 数据工厂具有检查文件是否已存在的功能,但如果文件已从 AWS S3 数据源中删除怎么办?
- 使用Azure 数据科学虚拟机:a) 安装 AWS CLI,2) 创建我的 AWS 配置文件以存储访问凭证,以及 3) 运行
aws s3 sync...
命令。
非常感谢有关自动化此过程的任何提示、建议或想法。
解决方案
AzReplciate 是另一种选择 - 特别是对于非常大的容器https://docs.microsoft.com/en-us/samples/azure/azreplicate/azreplicate/
推荐阅读
- linux - git push 使用 crontab 每小时提示密码
- python - 设置环境变量python
- ubuntu - ubuntu trusty 14.04 达到 EOL 后安装 php5.6 的选项有哪些
- excel - 使用 yo office 运行 Excel 任务窗格项目后获取“office-addin-debugging 不被识别为内部或外部命令”
- typescript - Leaflet 中的 MarkerCluster 未定义?
- javascript - 有没有更好的方法将消息发送到特定服务器中的特定通道?
- redis - 使用带有 Redis 的 spring-session 时出现 @ConfigurationProperties 问题
- android - 如何使用 Android CameraX API 缩放相机?
- r - 如何在两个特定值之间重新编码一系列行
- c# - 无法从 azure vm 机器打开 selenium chrome 驱动程序到我的客户端机器?这甚至可能吗?