Я создал этот код для загрузки данных в таблицу в Impala из Python
, но это слишком медленно. Я в основном преобразовал таблицу в массив, чтобы избежать некоторых ошибок, которые я извлекал.
arr2 = np.array(tbl2)
tbl2
имеет следующие столбцы:
cols1 = ['DATE1', 'DATE2', 'REGION', 'STATE', 'CITY', 'N_SAMPLE', 'UOM', 'AVG_RESALE', 'STD_RESALE',
'P_MIN_RESALE', 'P_MAX_RESALE', 'MARGEM_RESALE', 'COEF_RESALE', 'AVG_DISTRI', 'STD_DISTRI', 'P_MIN_DISTRI',
'P_MAX_DISTRI', 'COEF_DISTRI', 'MATERIAL']
Затем код для вставить данные:
sql_insert = f"INSERT INTO prd_product_123.table ({', '.join(cols1)}) VALUES ({', '.join(list('?'*len(cols1)))}) ;"
for i in range(0, len(arr2)):
cursor.execute(sql_insert, list(arr2[i].transpose()))
cursor.commit()
print('Row ' + str(i) + ' loaded!')
Проблема заключается в том, что исходная таблица tbl2
содержит более 1 000 000 строк, и, кстати, для загрузки ее в Impala потребуются дни.
Есть ли способ загрузить его более эффективно?