Redshift загрузка данных скриптом Python - PullRequest
0 голосов
/ 22 апреля 2020

Мне нужно загрузить миллионы записей в базу данных красного смещения (это обязательно), какой самый эффективный / быстрый способ сделать это? Сейчас я создаю словарь, в котором я храню куски строк, которые преобразуются в строки, чтобы я мог поместить их в строку запроса, а затем, используя 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()        

Таблица создается каждый раз с нуля, так как содержит информацию dynamici c.

Будет ли целесообразно использовать Pyspark (если возможно) или параллельный модуль? в таком случае, как это можно сделать? Спасибо, привет.

1 Ответ

2 голосов
/ 22 апреля 2020

У вас есть несколько вариантов, но группирование вставок в не очень удачный!

Мои любимые:

  • Вариант 1 - Python -> S3 CSV -> Redshift используя команду Redshift COPY
  • Опция 2 - Python -> S3 PARQUET -> Redshift с использованием Redshift Spectrum

Ваш выбор будет зависеть от варианта использования, который вы имеете в виду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...