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

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

Сообщение Anonymous »

Я извлекаю данные из Redshift в Python с помощью Psycopg2. Загрузка базы данных объемом 35 ГБ занимает 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»