Psycopg2 — низкая производительность при извлечении данных из Redshift в Python.Python

Программы на Python
Anonymous
Psycopg2 — низкая производительность при извлечении данных из Redshift в Python.

Сообщение Anonymous »

Я пытаюсь получить данные из красного смещения в Python с помощью psycopg2. Почему-то загрузка базы данных размером 35 ГБ на мой сервер Python занимает много времени (40 минут).

Код: Выделить всё

import psycopg2
con = psycopg2.connect(db_connection_info)

query_cursor = con.cursor('query_cursor')
query_cursor.execute('my_query')

stop = 0
batch = 0

print('Starting to retrieve data')

while stop == 0:
tmp = query_cursor.fetchmany(10000)

if len(tmp) < 1:
stop = 1
else:
if batch % 100 == 0:
print(str(batch*10000) + ' rows loaded')
if batch == 0:
data = tmp
else:
data = data + tmp
batch = batch + 1

print('Transfering data to dataframe')

df = pd.DataFrame.from_records(data, columns = manually_selected_features, coerce_float = True)
Я не использую pd.read_sql, потому что мне нужно использовать серверный курсор из соображений оперативной памяти.

Я понятия не имею, почему первая итерация fetchmany занимает очень много времени по сравнению с другими.

Есть ли хороший способ ускорить мой запрос?

С уважением,
Ксавьер

Вернуться в «Python»