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()