def connect_snowflake(user, password, account, warehouse, database, schema):
conn = None # Initialize connection variable
try:
conn = snowflake.connector.connect(
user=user,
password=password,
account=account,
warehouse=warehouse,
database=database,
schema=schema
)
print("
# Execute a simple query to verify connection
cur = conn.cursor()
cur.execute("SELECT CURRENT_VERSION()")
version = cur.fetchone()
print(f"
except Exception as e:
print(f"
# Replace with actual credentials
connect_snowflake(
user="USER_DEV",
password="xxxxxxxxxx",
account="xxxxxxx.north-europe.azure",
warehouse="xxxxxxxx_DEV_WH",
database="xxxxxxxxx_DEV_DB",
schema="xxxxxxxxxxxx"
)
< /code>
Jetzt, da ich dieses Skript geschrieben habe, wird es erfolgreich individuell ausgeführt und gibt mir die Ausgabe wie unten < /p>
aus.
� Snowflake Version: 9.3.3
< /code>
Jetzt ist hier mein zweites Skript, das versucht, eine Abfrage auszuführen, um einige Datensätze aus einer Tabelle in Snowflake DB abzurufen. Es läuft in Verbindung mit der Verbindung erfolgreich, fragt jedoch erneut nach Anmeldeinformationen. Dies besiegt den Zweck der Erstellung einer zentralen Verbindung.import snowflake.connector
from snowflake.connector import connect
import pandas as pd
from pySnowflake_Connection import connect_snowflake
connsnf = connect_snowflake()
table_query="select * from TABLE_DATA_STG"
#pd.read_sql_query(table_query,snowflake_connection)
connsnf.execute(table_query)
datafetch = connsnf.fetch_pandas_all()
#print(datafetch.to_string())
datafetch.to_csv('C:/xxxx/Project/PyDataLoad/TABLE_DATA_STG.csv',sep = '|',encoding='utf-8',doublequote=True)
< /code>
Bei diesem gibt es mir immer noch Ausgabe wie unten, < /p>
� Snowflake Version: 9.3.3
Traceback (most recent call last):
File "c:\xxxx\Project\PyDataLoad\pyImport_SNF_Data_2.py", line 6, in
connsnf = connect_snowflake()
^^^^^^^^^^^^^^^^^^^
TypeError: connect_snowflake() missing 6 required positional arguments: 'user', 'password', 'account', 'warehouse', 'database', and 'schema'
< /code>
Die Tabelle enthält rund 10.000 Datensätze und daher erwarte ich die tatsächliche Zahl. Sobald ich erfolgreich ist, werde ich einfache Auswahl von Col1, Col2 ... von Abfragen stg_table_1 ausführen. Aber es scheint, dass ich keine Ausgabe für diese erste Abfrage bekomme. Dieses Skript mit allem an einem Ort funktioniert. Aber wie bereits gesagt, möchte ich ein zentrales Arbeitsskript, da ich mehr solche Skripte schreiben und wenn ich sie in eine neue Umgebung migriere, möchte ich nicht weiterhin mehrere Dateien bearbeiten. Es wäre viel schwierig, wenn ich meinen Code auf jemand anderen übertragen muss und dann weiterhin Änderungen in mehreren Dateien vornehmen muss. < /P>
Ich habe sogar das ausprobiert. Env -Methode, aber damit hat sich nicht einmal mit Schneeflocken verbunden.