我尝试在应用程序中设置一个步骤,用户选择S3存储桶中的文件导入到postgres RDS实例。
目前我的流程是:
- 将csv从S3复制到EC2
- 使用python pandas read_csv
读取该文件的示例
- 创建一个'创建表'语句动态地从pandas数据框中执行并执行它(允许用户输入)
- \使用psycopg2 copy_expert
将文件从EC2复制到RDS表
醇>
问题是,文件大小可以达到数百GB,而我使用的EC2实例只有50GB的容量。我想要一个绕过使用EC2作为中间步骤的设置。
我的理想是:
- 使用pandas read_csv从中读取文件样本。
- 创建一个'创建表'动态声明并执行它
- \将文件直接从S3复制到RDS
醇>
但是我遇到了以下问题 -
- Pandas read_csv适用于S3上的文件,但前提是它们已经公开,这有点安全风险。我可以暂时公开文件,但这似乎是一个坏主意。
来自S3的- \ copy语句似乎可以将数据从S3导入Redshift,但不能从S3导入RDS。
醇>
有没有解决这两个问题的方法,还是有更清洁的解决方案?