Как выполнять запросы в 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()
Другие вопросы по тегам