【问题标题】:Redshift data loading with Python script使用 Python 脚本加载 Redshift 数据
【发布时间】:2020-04-22 10:56:49
【问题描述】:

我必须将数百万条记录加载到 redshift 数据库中(这是必须的),这样做最有效/最快的方法是什么?现在我正在创建一个字典,其中存储 chunks 行,这些行被转换为字符串,以便我可以将它们放在查询字符串中,然后使用 Pandas,例如:

with psycopg2.connect(prs.rs_conection_params_psycopg2) as conn:
    with conn.cursor() as c:
        c.execute(query_create_empty_main_table)

        for chunk in df_chunks.keys():

            query_to_insert_new_data = """
                INSERT INTO {}
                {}
                VALUES
                {};
                """.format(table_name, column_names, df_chunks[chunk])

            c.execute(q_inserting_new_data)

        conn.commit()        

该表每次都是从头开始创建的,因为它具有动态信息。

是否适合使用 Pyspark(如果可能)或 Parallel 模块?在那种情况下,怎么可能做到?谢谢,问候。

【问题讨论】:

    标签: python-3.x pandas pyspark amazon-redshift


    【解决方案1】:

    你有几个选择,但是批量插入不是一个好的选择!

    我的最爱:

    • 选项 1 - Python -> S3 CSV -> 使用 Redshift COPY 命令进行 Redshift
    • 选项 2 - Python -> S3 PARQUET -> 使用 Redshift Spectrum 进行 Redshift

    您的选择将取决于您心目中的用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-07
      • 1970-01-01
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多