首页 > 解决方案 > 气流最佳实践:s3_to_sftp_operator 而不是运行 aws cli?

问题描述

使用气流在 s3 和 EC2 实例之间传输文件的最佳解决方案是什么?经过研究,我发现有一个s3_to_sftp_operator但我知道在外部系统而不是气流实例上执行任务是一种很好的做法......

我正在考虑运行一个在远程 ec2 实例上执行 aws cli 的 bashoperator,因为它遵守上述原则。

关于这个案例,你有什么生产最佳实践可以分享吗?

标签: amazon-s3amazon-ec2ftpairflow

解决方案


s3_to_sftp_operator除非文件很大,否则这将是更好的选择。只有当文件很大时,我才会考虑在远程机器上使用带有 ssh 的 bash 操作员。至于大意味着什么,我只是测试一下s3_to_sftp_operator,如果其他一切对气流的性能没有受到有意义的影响,那么就继续使用它。我经常PythonOperator在具有 8 GiB RAM 的 2 个 vCPU 气流节点上下载和打开 ~1 GiB 文件,其中气流为 s。对这么小的文件做更复杂的事情是没有意义的。

最好的解决方案是不传输文件,并且最有可能在您使用 EC2 时摆脱它。

  • 如果您有一个任务需要在 S3 中的某些数据上运行,那么只需直接在气流中运行该任务。
  • 如果您无法在气流中运行该任务,因为它需要巨大的功率或一些气流无法运行的奇怪代码,那么让 EC2 实例直接读取 S3。
  • 如果您使用气流来编排任务,因为该任务正在监视 EC2 上的本地文件系统,那么只需触发该任务并让该任务读取 S3。

推荐阅读