Ich versuche, Daten mithilfe einer IDs -Reihe von einem Datensatz mit einer Postgresql -Tabelle mit PSYCOPG2 in Python zu sammeln. Hier ist der Code: < /p>
for i in range(0, len(ids_df), 2000):
print(f"Iteration #: {i}")
ids_subset = ids_df.iloc[i:i+2000]['customerid'].tolist()
cust_query = f"select cust_id, status, update_dtime from customers WHERE cust_id IN ({', '.join(map(str, ids_subset))})"
try:
with psycopg2.connect(**db_params) as conn:
with conn.cursor() as cursor:
cursor.execute(cust_query)
result = cursor.fetchall()
column_names = [desc[0] for desc in cursor.description]
mode = "w" if i == 0 else "a"
with open("file.csv", mode, newline="", encoding="utf-8") as f:
writer = csv.writer(f)
if i == 0:
writer.writerow(column_names)
if not result:
break
writer.writerows(result)
except Exception as e:
print(f"Error processing {db_params['dbname']}: {e}")
< /code>
Ich nehme dann den CSV und führe meine Analyse aus. Es funktioniert, aber ich habe es mit 6 Millionen Datensätzen zu tun, und der Prozess kann 35-40 Minuten dauern. Ich habe auch Bedenken hinsichtlich der Ladung, die ich auf die Serverseite stelle. Alles, was zwischen 2000-3000 größer als einiger Betrag ist, funktionierte nicht.
Ich habe überlegt>
Wenn Sie Daten rekursiv abfragen, gibt es eine bessere Möglichkeit, dies zu tun? ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Gibt es eine bessere Möglichkeit, eine Reihe von Bytes im Speicher umzukehren?
by Anonymous » » in C++ - 0 Replies
- 6 Views
-
Last post by Anonymous
-