Snowflake Python API를 사용하여 Snowflake에 연결하기

Snowflake Python API로 작업을 수행하려면 먼저 Snowflake에 대한 연결을 정의해야 합니다. 연결을 사용하면 API에서 모델링한 리소스에 액세스하기 위한 Root 오브젝트를 생성할 수 있습니다.

참고

연결 정의 메커니즘이 더욱 쉽고 안전하게 발전함에 따라 Snowflake에 대한 연결을 생성하는 방법이 변경될 수 있습니다.

연결 속성 지정하기

다음 중 하나를 사용하여 Snowflake에 대한 연결을 정의할 수 있습니다.

Python 사전을 사용하여 연결하기

Python 사전을 사용하여 Snowflake에 연결하는 데 필요한 값을 지정할 수 있습니다. 연결할 때 이 사전을 연결에 사용하는 함수나 메서드에 대한 인자로 전달합니다.

import os

CONNECTION_PARAMETERS = {
    "account": os.environ["snowflake_account_demo"],
    "user": os.environ["snowflake_user_demo"],
    "password": os.environ["snowflake_password_demo"],
    "database": "test_database",
    "warehouse": "test_warehouse",
    "schema": "test_schema",
}
Copy

구성 파일을 사용하여 연결하기

TOML 구성 파일 에서 연결 정의를 지정할 수 있습니다. 이렇게 하면 코드에서 Snowflake에 대한 연결을 명시적으로 정의할 필요가 없습니다.

예를 들어, ~/.snowflake/connections.toml 에 있는 구성 파일을 생성하고 다음과 유사한 연결 매개 변수를 추가합니다.

[myconnection]
account = "test_account"
user = "test_user"
password = "******"
warehouse = "test_warehouse"
database = "test_database"
schema = "test_schema"
Copy

이 예에서는 계정 test_account, 사용자 test_user, 비밀번호 자격 증명과 더불어 데이터베이스 정보도 사용하여 myconnection 이라는 Snowflake 연결을 정의합니다.

연결 정의는 Snowflake Python 커넥터 에서 제공되는 것과 동일한 구성 옵션을 지원합니다.

Root 오브젝트 연결 및 생성하기

지정한 연결 속성을 사용하여 Snowflake에 대한 연결을 생성할 수 있습니다. 연결을 통해 API를 사용하기 시작하는 Snowflake Python API Root 오브젝트를 생성할 수 있습니다.

다음 중 하나를 사용하여 연결할 수 있습니다.

Snowpark Session 과 연결하기

Python용 Snowpark API 를 사용하는 경우 해당 snowflake.snowpark.Session 오브젝트를 사용하여 Snowflake에 대한 연결을 생성할 수 있습니다.

Session 생성에 대한 자세한 내용은 Snowpark Python 세션 만들기 섹션을 참조하십시오.

다음 예제의 코드에서는 구성 파일에 정의된 연결 매개 변수를 사용하여 Snowflake에 대한 연결을 생성합니다. 이 코드에서는 결과 Session 오브젝트를 사용하여 API를 사용할 Root 오브젝트를 생성합니다.

from snowflake.core import Root
from snowflake.snowpark import Session

session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
Copy

Python 커넥터 Connection 으로 연결하기

Python용 Snowflake 커넥터 를 사용하는 경우 해당 snowflake.connector.connect 함수를 사용하여 Snowflake에 대한 연결을 생성할 수 있습니다. 이 함수는 Connection 을 반환합니다.

Python용 Snowflake 커넥터 API에 대한 자세한 내용은 Python 커넥터 API 섹션을 참조하십시오.

다음 예제의 코드에서는 구성 파일에 정의된 연결 매개 변수를 사용하여 Snowflake에 대한 연결을 생성합니다. 이 코드에서는 결과 Connection 오브젝트를 사용하여 API를 사용할 Root 오브젝트를 생성합니다.

from snowflake.connector import connect
from snowflake.core import Root

connection = connect(connection_name="myconnection")
root = Root(connection)
Copy

Root 오브젝트 사용하기

Snowflake 연결에서 생성된 Root 오브젝트를 사용하면 Snowflake Python API의 오브젝트와 메서드에 액세스할 수 있습니다. Root 오브젝트는 Snowflake Python API에서 모델링한 리소스 트리의 루트입니다. Root 오브젝트를 사용하여 API로 표시되는 Snowflake 오브젝트와 상호 작용합니다.

다음 예제의 코드에서는 mytask 라는 작업을 재개하기 위해 Root 오브젝트를 사용하여 Snowflake 오브젝트에 액세스합니다. 작업은 mydb 라는 데이터베이스에 있는 myschema 라는 스키마에 있습니다. 이 코드에서는 databases, schemastasks 메서드를 사용하여 이 작업을 나타내는 오브젝트를 가져옵니다.

from snowflake.core import Root
from snowflake.core.task import Task

tasks = root.databases["mydb"].schemas["myschema"].tasks
mytask = tasks["mytask"]
mytask.resume()
Copy