Möglicher Datenverlust während der Postgres-Abfrage „In Auswahl einfügen“.Python

Python-Programme
Guest
 Möglicher Datenverlust während der Postgres-Abfrage „In Auswahl einfügen“.

Post by Guest »

Ich habe eine Staging-Tabelle in PostgreSQL und verwende eine einfache INSERT INTO ... SELECT ...-Abfrage, um Daten aus der Staging-Tabelle in die endgültige Tabelle zu kopieren. Gelegentlich treten jedoch Datenverlustprobleme auf, nachdem der Vorgang abgeschlossen ist. Ich bin mir nicht sicher, warum das passiert. Staging-Tabelle Ich habe überprüft, ob sie korrekt ist (mit korrekten Daten).
Hier sind einige bemerkenswerte Details:
  • Die Staging-Tabelle ist eine einfache Tabelle ohne Indizes oder Schlüssel.
  • Die endgültige Tabelle enthält Schlüssel und Indizes.
  • Das Problem tritt nicht regelmäßig auf. Manchmal funktioniert die Datenübertragung einwandfrei, aber manchmal kommt es zu Datenverlust.
Code, den ich verwende

Code: Select all

import pg8000

...
bigSql = f"INSERT INTO final_tbl({sqlCols}) SELECT {sqlCols} FROM staging_tbl"
print(' ->Inserting data...')
limit = 4000000
offset = 0
while True:
cursor.execute(bigSql+f" LIMIT {limit} OFFSET {offset}")
print('Inserted ', cursor.rowcount)
if cursor.rowcount==0:
break
offset += limit
connection.commit()
Was die Serverinformationen betrifft, verwende ich Azure VM mit dem Laravel Forge-Panel, bereitgestellt von postgressql.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post