Speicheraufwand beim Verwenden von SQL/Snowflake -SteckernPython

Python-Programme
Anonymous
 Speicheraufwand beim Verwenden von SQL/Snowflake -Steckern

Post by Anonymous »

Ich versuche, eine SQL -Abfrage zu laden, und versuche, Daten aus einer Snowflake -Datenbank in einen Datenrahmen zu extrahieren (zum Tensor von Torch, aber die Konvertierung findet später statt). Also 385 Millionen x 12 Bytes = 4,6 GB ungefähr. Dies wird in der Snowflake -GUI verifiziert, wo wir sehen, dass die Ergebnisgröße noch kleiner ist (aufgrund der Komprimierung) und die Abfrage, die für "nur" 40 Sekunden lang ausgeführt wird. Es scheint in der Read/Fetch -Anweisung zu passieren. Darüber hinaus dauert es über 40 Minuten, um die Abfrage zu extrahieren, während in der Snowflake GUI -Abfragegeschichte die Abfrage in den "erwarteten" 40 Sekunden abgeschlossen wird. Nachdem es geladen wurde, können wir überprüfen, ob der resultierende Datenrahmen von zu erwartender Größe ist. Wir haben versucht, Malloc zu verwenden, aber es scheint nicht zu finden, woher der Speicheraufwand kommt.

Code: Select all

import pandas as pd
from sqlalchemy import Engine, text

def load_data(date: date, engine: Engine) -> pd.DataFrame:
"""Load all data and case_ids."""
query = text(my query) # dependent on date

with engine.connect() as connection:
df = pd.read_sql_query(query, con=connection)
return df
< /code>
Code Versuch 2: Snowflake Connector < /p>
import pandas as pd
import snowflake
def load_data(date : date) -> pd.DataFrame:
query = my query
with snowflake.connector.connect(**credentials) as conn:
with conn.cursor() as cur:
rows = cur.execute(query).fetchall()
# Convert rows to df
return df

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post