Snowflake Python APIs 을 사용하여 Snowflake에 연결¶
Snowflake Python APIs 으로 작업을 수행하려면 먼저 Snowflake에 대한 연결을 정의해야 합니다. 연결을 사용하면 API에서 모델링한 리소스에 액세스하기 위한 Root
오브젝트를 생성할 수 있습니다.
연결 속성 지정하기¶
다음 메커니즘 중 하나를 사용하여 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"],
"role": "test_role",
"database": "test_database",
"warehouse": "test_warehouse",
"schema": "test_schema",
}
구성 파일을 사용하여 연결하기¶
TOML 구성 파일 에서 연결 정의를 지정할 수 있습니다. 이렇게 하면 코드에서 Snowflake에 대한 연결을 명시적으로 정의할 필요가 없습니다.
TOML 구성 파일에 대한 기본 설정은 Snowsight 에서 생성할 수 있습니다. 자세한 내용은 클라이언트, 드라이버, 라이브러리 또는 서드 파티 애플리케이션을 Snowflake에 연결하도록 구성하기 섹션을 참조하십시오.
연결 설정을 수동으로 구성할 수도 있습니다. 예를 들어, ~/.snowflake/connections.toml
에 있는 구성 파일을 생성하고 다음과 유사한 연결 설정을 추가합니다.
[myconnection]
account = "test-account"
user = "test_user"
password = "******"
role = "test_role"
warehouse = "test_warehouse"
database = "test_database"
schema = "test_schema"
이 예제에서는 계정 test-account
, 사용자 test_user
, 비밀번호 자격증명 및 데이터베이스 정보로 이름이 myconnection
인 Snowflake 연결을 정의합니다.
연결 정의는 Snowflake Python 커넥터 에서 제공되는 것과 동일한 구성 옵션을 지원합니다.
Root
오브젝트 연결 및 생성하기¶
지정한 연결 속성을 사용하여 Snowflake에 대한 연결을 생성할 수 있습니다. 연결을 통해 API 사용을 시작할 Snowflake Python APIs Root
오브젝트를 생성할 수 있습니다.
다음 오브젝트 중 하나를 사용하여 연결할 수 있습니다.
Snowpark Session
과 연결하기¶
Python용 Snowpark API 를 사용하는 경우 해당 snowflake.snowpark.Session
오브젝트를 사용하여 Snowflake에 대한 연결을 생성할 수 있습니다.
Snowpark Python 라이브러리는 snowflake.core
의 종속성으로 자동 설치되지 않습니다. Snowpark Session
오브젝트를 사용하여 Snowflake에 연결하려면 다음 단계를 따르십시오.
snowflake-snowpark-python
패키지를 설치하려면 다음 명령을 실행합니다.pip install 'snowflake-snowpark-python>=1.5.0,<2.0.0'
Snowflake에 연결을 만들려면 다음 예제와 유사한 코드를 실행합니다.
from snowflake.core import Root from snowflake.snowpark import Session session = Session.builder.config("connection_name", "myconnection").create() root = Root(session)
이 예제의 코드는 구성 파일에 지정된
myconnection
이라는 연결 정의를 사용하여Session
오브젝트를 만듭니다. 이 코드에서는 결과Session
오브젝트를 사용하여 API를 사용할Root
오브젝트를 생성합니다.
Session
생성에 대한 자세한 내용은 Snowpark Python 세션 만들기 섹션을 참조하십시오.
Python 커넥터 Connection
으로 연결하기¶
Python용 Snowflake 커넥터 를 사용하는 경우 해당 snowflake.connector.connect
함수를 사용하여 Snowflake에 대한 연결을 생성할 수 있습니다. 이 함수는 Connection
을 반환합니다.
Python Connector 라이브러리를 별도로 설치할 필요가 없습니다. snowflake
상위 패키지를 설치하면 snowflake-connector-python
패키지가 종속성으로 자동 설치됩니다.
다음 예제의 코드는 구성 파일에 지정된 myconnection
이라는 연결 정의를 사용하여 Connection
오브젝트를 만듭니다. 이 코드에서는 결과 Connection
오브젝트를 사용하여 API를 사용할 Root
오브젝트를 생성합니다.
from snowflake.connector import connect
from snowflake.core import Root
connection = connect(connection_name="myconnection")
root = Root(connection)
Python용 Snowflake 커넥터 API에 대한 자세한 내용은 Python 커넥터 API 섹션을 참조하십시오.
Root
오브젝트 사용하기¶
Snowflake 연결에서 생성된 Root
오브젝트를 사용하면 Snowflake Python APIs 의 오브젝트와 메서드에 액세스할 수 있습니다. Root
오브젝트는 API에서 모델링한 리소스 트리의 루트입니다. Root
오브젝트를 사용하여 API로 표시되는 Snowflake 오브젝트와 상호 작용합니다.
다음 예제의 코드에서는 mytask
라는 작업을 재개하기 위해 Root
오브젝트를 사용하여 Snowflake 오브젝트에 액세스합니다. 작업은 mydb
라는 데이터베이스에 있는 myschema
라는 스키마에 있습니다. 이 코드에서는 databases
, schemas
및 tasks
메서드를 사용하여 이 작업을 나타내는 오브젝트를 가져옵니다.
tasks = root.databases["mydb"].schemas["myschema"].tasks
mytask = tasks["mytask"]
mytask.resume()