Как выполнять запросы в Snowflake с использованием Python (аутентификация SSO)?
Пытался подключить снежинку (SSO Authentication) и получить данные из таблицы. Но, когда я запускаю код, я могу войти в систему с моими учетными данными во всплывающем окне браузера и подключить Snowflake, после этого ответа нет (программа не завершается и не дает результата). Не уверен, где делаю ошибку, пожалуйста, помогите.
'''
import snowflake.connector
# Connecting to Snowflake using SAML 2.0-compliant IdP federated authentication
conn = snowflake.connector.connect(
user='G*****K',
account='abcdf',
authenticator='externalbrowser',
warehouse='abcdf',
database='abcdf',
schema='abcdf'
)
cur = conn.cursor()
sql = "select * from abcdf.ACCT limit 10"
x=cur.execute(sql)
cur.close()
print(x)
'''
2 ответа
Я считаю, что вы закрываете курсор перед печатью;
try:
cur.execute("SELECT col1, col2 FROM test_table ORDER BY col1")
for (col1, col2) in cur:
print('{0}, {1}'.format(col1, col2))
finally:
cur.close()
Подробности: https://docs.snowflake.com/en/user-guide/python-connector-example.html
Результаты запроса сохраняются в курсоре. Затем содержимое курсора может быть сохранено в локальной переменной.
Кроме того, рекомендуется закрыть соединение в конце.
https://www.psycopg.org/docs/cursor.html
import snowflake.connector
# Connecting to Snowflake using SAML 2.0-compliant IdP federated authentication
conn = snowflake.connector.connect(
user='G*****K',
account='abcdf',
authenticator='externalbrowser',
warehouse='abcdf',
database='abcdf',
schema='abcdf'
)
cur = conn.cursor()
sql = "select * from abcdf.ACCT limit 10"
cur.execute(sql)
print(cur.fetchall())
cur.close()
conn.close()