Массовая обработка данных в таблице базы данных с красным смещением, как очень быстро вставитьPython

Программы на Python
Anonymous
Массовая обработка данных в таблице базы данных с красным смещением, как очень быстро вставить

Сообщение Anonymous »

Я пробовал много методов для вставки данных из фрейма данных в базу данных.
Ни один метод не помог мне вставить быстро, после этого потребовалось 2 дня и 3 дня, после чего возникла ошибка тайм-аута.
Вот несколько методов, которые я пробовал
Первый метод: я преобразовал фрейм данных в словарь и попытался загрузить базу данных.
Вот примерный пример данных: Примечание: я делюсь 20 строками данных, но на самом деле у меня огромные объем данных

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

 conn = psycopg2.connect(
host= 'redshift-####-dev.)00000.us-east-1.redshift.amazonaws.com'   ,
database= '*****',
user='****',
password='*****',
port= '5439'
)
print("Succesful Connection to RedShift Dev")
cur = conn.cursor ()
df_dic =[{'case_id': 69370, 'column_name': 'subject', 'split_text': 'working', 'split_text_cnt': 1, 'load_ts': '2023-
12-15'}, {'case_id': 69370, 'column_name': 'subject', 'split_text': 'scenes', 'split_text_cnt': 1, 'load_ts': '2023-12-15'}, {'
case_id': 69370, 'column_name': 'subject', 'split_text': 'intended', 'split_text_cnt': 1, 'load_ts': '2023-12-15'}, {'case_id':
69371, 'column_name': 'subject', 'split_text': 'redirected', 'split_text_cnt': 1, 'load_ts': '2023-12-15'}, {'case_id': 69371,
'column_name': 'subject', 'split_text': 'ge', 'split_text_cnt': 2, 'load_ts': '2023-12-15'}, {'case_id': 69371, 'column_name':
'subject', 'split_text': 'sensor', 'split_text_cnt': 1, 'load_ts': '2023-12-15'}, {'case_id': 69371, 'column_name': 'subject',
'split_text': 'flush', 'split_text_cnt': 1, 'load_ts': '2023-12-15'}, {'case_id': 69371, 'column_name': 'subject', 'split_text
': 'motion', 'split_text_cnt': 1, 'load_ts': '2023-12-15'}, {'case_id': 69371, 'column_name': 'subject', 'split_text': 'led', '
split_text_cnt': 1, 'load_ts': '2023-12-15'}, {'case_id': 69371, 'column_name': 'subject', 'split_text': 'fixture', 'split_text
_cnt': 1, 'load_ts': '2023-12-15'}, {'case_id': 69371, 'column_name': 'subject', 'split_text': 'contact', 'split_text_cnt': 1,
'load_ts': '2023-12-15'}]

sql = "INSERT INTO odey.sfc_ca_sit_di (case_id,column_name,split_text,split_text_cnt,load_ts) VALUES (%(case_id)s,%(column_name)s,%(case_subject)s,%(Case_Subject_Split_Count)s,%(load_date)s)"
cur.executemany(sql, df_dic)
conn.commit()
@эти методы, которые я пробовал
Второй метод, который я попробовал, фрейм данных в базу данных, который преобразуется в кортеж и выполняется запрос
final_out — это фрейм данных

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

    sql = "INSERT INTO sey.sfdse_sp_di (case_id,column_name,split_text,split_text_cnt,load_ts) VALUES (%s,%s,%s,%s,%s)"

for row in final_out.values.tolist():
cur.execute(sql, tuple(row))
#print(tuple(row))
conn.commit()
Оба метода занимают несколько дней
Кто-нибудь может предложить более эффективные методы очень быстрой вставки данных
это огромные данные, примерно 600 000 записей данных

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