将大型文件从S3导入RDS Postgres

时间:2016-02-09 14:15:55

标签: python postgresql amazon-s3 amazon-ec2 psycopg2

我尝试在应用程序中设置一个步骤,用户选择S3存储桶中的文件导入到postgres RDS实例。

目前我的流程是:

  1. 将csv从S3复制到EC2
  2. 使用python pandas read_csv
  3. 读取该文件的示例
  4. 创建一个'创建表'语句动态地从pandas数据框中执行并执行它(允许用户输入)
  5. \使用psycopg2 copy_expert
  6. 将文件从EC2复制到RDS表

    问题是,文件大小可以达到数百GB,而我使用的EC2实例只有50GB的容量。我想要一个绕过使用EC2作为中间步骤的设置。

    我的理想是:

    1. 使用pandas read_csv从中读取文件样本。
    2. 创建一个'创建表'动态声明并执行它
    3. \将文件直接从S3复制到RDS
    4. 但是我遇到了以下问题 -

      1. Pandas read_csv适用于S3上的文件,但前提是它们已经公开,这有点安全风险。我可以暂时公开文件,但这似乎是一个坏主意。
      2. 来自S3的
      3. \ copy语句似乎可以将数据从S3导入Redshift,但不能从S3导入RDS。
      4. 有没有解决这两个问题的方法,还是有更清洁的解决方案?

0 个答案:

没有答案