Python에서 Snowflake Notebooks 관리하기¶
Python을 사용하여 Snowsight 의 개발 인터페이스인 Snowflake Notebooks 을 관리할 수 있으며, 이는 Python 및 SQL을 위한 대화형 셀 기반 프로그래밍 환경을 제공합니다. 자세한 내용은 Snowflake Notebooks 정보 섹션을 참조하십시오.
Snowflake Python APIs 은 다음 두 가지 별개 유형의 노트북을 나타냅니다.
Notebook
: 노트북의 이름, 버전, 쿼리 웨어하우스,.ipynb
파일과 같은 속성을 노출합니다.NotebookResource
: 해당Notebook
오브젝트를 가져오고, 노트북의 버전을 관리하고, 노트북을 실행하는 데 사용할 수 있는 메서드를 노출합니다.
전제 조건¶
이 항목의 예제에서는 Snowflake와 연결하고 Snowflake Python APIs 을 사용할 수 있는 Root
오브젝트를 생성하는 코드를 추가했다고 가정합니다.
예를 들어, 다음 코드는 구성 파일에 정의된 연결 매개 변수를 사용하여 Snowflake에 대한 연결을 생성합니다.
from snowflake.core import Root
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
해당 코드에서는 결과 Session
오브젝트를 사용하여 API의 유형과 메서드를 사용하기 위해 Root
오브젝트를 생성합니다. 자세한 내용은 Snowflake Python APIs 을 사용하여 Snowflake에 연결 섹션을 참조하십시오.
노트북 만들기¶
노트북을 생성하려면 먼저 Notebook
오브젝트를 생성한 다음 API Root
오브젝트에서 NotebookCollection
오브젝트를 생성합니다. NotebookCollection.create
를 사용하여 Snowflake에 새 노트북을 추가합니다.
다음 예제의 코드는 my_db
데이터베이스와 my_schema
스키마에서 이름이 my_nb
인 노트북을 나타내는 Notebook
오브젝트를 생성합니다.
from snowflake.core.notebook import Notebook
my_nb = Notebook(name="my_nb")
notebooks = root.databases["my_db"].schemas["my_schema"].notebooks
notebooks.create(my_nb)
이 코드는 NotebookCollection
변수 notebooks
를 생성하고 NotebookCollection.create
를 사용하여 Snowflake에 새 노트북을 생성합니다.
기존 .ipynb
파일이 있는 스테이지에서 노트북을 생성할 수도 있습니다. 다음 예제의 코드는 @my_stage
스테이지에서 notebook_file.ipynb
파일로 노트북을 생성합니다.
from snowflake.core.notebook import Notebook
my_nb = Notebook(name="my_nb",
query_warehouse="my_wh",
from_location="@my_stage",
main_file="notebook_file.ipynb")
notebooks = root.databases["my_db"].schemas["my_schema"].notebooks
notebooks.create(my_nb)
노트북 세부 정보 가져오기¶
Notebook
오브젝트를 반환하는 NotebookResource.fetch
메서드를 호출하여 노트북에 대한 정보를 얻을 수 있습니다.
다음 예제의 코드는 my_db
데이터베이스와 my_schema
스키마에서 이름이 my_nb
인 느투북에 대한 정보를 가져옵니다.
my_nb = root.databases["my_db"].schemas["my_schema"].notebooks["my_nb"].fetch()
print(my_nb.to_dict())
노트북 나열하기¶
Notebook
오브젝트의 PagedIter
반복기를 반환하는 NotebookCollection.iter
메서드를 사용하여 노트북을 나열할 수 있습니다.
다음 예제의 코드는 my_db
데이터베이스와 my_schema
스키마에서 이름이 my
로 시작하는 노트북을 나열한 다음 각각의 이름을 출력합니다.
from snowflake.core.notebook import NotebookCollection
notebooks: NotebookCollection = root.databases["my_db"].schemas["my_schema"].notebooks
nb_iter = notebooks.iter(like="my%") # returns a PagedIter[Notebook]
for nb_obj in nb_iter:
print(nb_obj.name)
노트북 작업 수행하기¶
버전 관리, 노트북 실행과 같은 일반적인 노트북 작업을 NotebookResource
오브젝트로 수행할 수 있습니다.
노트북 리소스로 할 수 있는 일부 작업을 보여주기 위해 다음 예제의 코드는 다음을 수행합니다.
my_nb
노트북 리소스 오브젝트를 가져옵니다.노트북 오브젝트에 생명 버전을 추가합니다. 이는 ALTER NOTEBOOK … ADD LIVE VERSION 과 동일합니다.
Git 연결이 설정되어 있는 경우, 노트북의 라이브 버전을 Git 리포지토리에 커밋합니다. 그렇지 않으면 라이브 버전을
null
로 설정합니다.자세한 내용은 ALTER NOTEBOOK 섹션을 참조하십시오.
노트북을 실행합니다.
참고
노트북을 실행하려면 먼저 라이브 버전을 추가해야 합니다.
노트북을 떨어뜨린다.
my_nb_res = root.databases["my_db"].schemas["my_schema"].notebooks["my_nb"]
my_nb_res.add_live_version(from_last=True)
my_nb_res.commit()
my_nb_res.execute()
my_nb_res.drop()