Snowflake Notebooks 설정

Snowflake Notebooks 를 사용하면 코드를 작성 및 실행하고, 결과를 시각화하고, 메모를 캡처하고, 다른 Snowflake 사용자와 인사이트를 공유할 수 있습니다. 이 페이지에서는 Snowflake Notebooks 를 사용하기 위해 계정을 설정하는 단계를 안내합니다.

계정 관리자의 경우 Snowflake Notebooks 용 관리자 설정 지침 섹션을 참조하십시오.

계정에 대해 관리자가 이미 Snowflake Notebooks 사용자 설정 지침 액세스를 설정한 경우 Snowflake Notebooks 섹션을 참조하십시오.

Snowflake Notebooks 사용자 설정 지침

Snowflake Notebooks 사용을 시작하기 전에 다음 설정 단계를 수행합니다.

전용 데이터베이스 및 스키마 만들기(선택 사항)

노트북을 만들려면 노트북을 저장할 데이터베이스와 스키마가 필요합니다. 기존 데이터베이스와 스키마를 사용하거나 새 데이터베이스를 만들어 Snowflake Notebooks 를 저장하고 관리할 수 있습니다.

Snowflake Notebooks 의 저장 및 관리를 간소화하기 위해 전용 데이터베이스와 스키마를 생성하는 것이 좋습니다.

Snowflake Notebooks 를 저장할 전용 churn_analysis 데이터베이스와 스키마를 만들려면 다음 SQL 명령을 실행합니다.

CREATE DATABASE churn_analysis;
USE DATABASE churn_analysis;
CREATE SCHEMA notebooks_sch;
Copy

데이터베이스와 스키마는 노트북을 저장하기 위한 용도로만 필요합니다. 사용자의 역할이 액세스할 수 있는 모든 데이터베이스와 스키마를 쿼리할 수 있습니다. SQL 셀에서 USE DATABASE 또는 USE SCHEMA 명령을 사용하여 컨텍스트를 다른 데이터베이스 또는 스키마로 변경합니다.

노트북을 저장하고 관리하기 위한 전용 위치가 있으면 데이터베이스나 스키마가 삭제될 때 노트북이 삭제되는 것을 방지할 수도 있습니다.

컴퓨팅 리소스 만들기

노트북을 생성하려면 푸시다운 쿼리를 위한 쿼리 웨어하우스 를 선택해야 합니다. 기존 웨어하우스를 선택하거나 노트북에 맞게 새 웨어하우스를 생성할 수 있습니다.

전용 웨어하우스 notebooks_wh 를 생성하려면 다음 SQL 명령을 실행합니다.

CREATE WAREHOUSE notebooks_wh;
Copy

컨테이너 런타임에서 실행할 노트북을 생성하는 경우 컴퓨팅 풀을 선택해야 합니다. 컴퓨팅 풀은 Snowflake에서 관리하는 CPU 기반 또는 GPU 기반 가상 머신입니다. 자세한 내용은 Snowpark Container Services: 컴퓨팅 풀 작업하기 섹션을 참조하십시오.

노트북 전용 컴퓨팅 풀을 생성하려면 다음 SQL 명령을 실행합니다.

CREATE COMPUTE POOL CPU_XS
  MIN_NODES = 1
  MAX_NODES = 15
  INSTANCE_FAMILY = CPU_X64_XS;

CREATE COMPUTE POOL GPU_S
  MIN_NODES = 1
  MAX_NODES = 5
  INSTANCE_FAMILY = GPU_NV_S;
Copy

컴퓨팅 풀을 생성할 때는 각 노트북을 실행하려면 1개의 전체 노드가 필요하므로 MAX_NODES 매개 변수를 1보다 큰 값으로 설정합니다.

액세스 제어 요구 사항

Snowflake는 노트북을 생성할 수 있는 사용자를 관리할 수 있도록 전용 스키마 수준 권한을 제공합니다. 노트북을 생성할 때, 노트북을 소유한 역할이 세션에서 활성 역할이 됩니다. 해당 역할이 있는 모든 사용자는 해당 역할이 소유한 노트북을 열고, 실행하고, 편집할 수 있습니다. 사용자는 역할에서 노트북에 대한 액세스 권한을 상속받을 수도 있습니다. 예를 들어, PUBLIC 역할이 노트북을 소유한 경우, 계정의 모든 사용자는 해당 역할이 소유한 노트북에 액세스하고 편집할 수 있습니다. 다른 역할과 노트북을 공유할 수 없습니다.

각 노트북은 역할에 의해 소유되므로 노트북을 만들고 실행하기 위한 전용 역할을 만들 수 있습니다.

웨어하우스 런타임에 노트북을 생성하려면 다음 권한이 있는 역할을 사용해야 합니다.

권한

오브젝트

USAGE

데이터베이스

USAGE 또는 OWNERSHIP

스키마

USAGE

쿼리 웨어하우스

CREATE NOTEBOOK

스키마

컨테이너 런타임에서 노트북을 생성하려면 역할에 다음 권한이 추가로 있어야 합니다.

권한

오브젝트

USAGE

노트북 웨어하우스

USAGE

컴퓨팅 풀

CREATE SERVICE

스키마

Notebook 웨어하우스와 Query 웨어하우스에 대한 자세한 내용은 Snowflake Notebooks 실행을 위한 웨어하우스 추천 섹션을 참조하십시오.

노트북을 보관하기 위해 만든 데이터베이스와 스키마에 대한 권한을 사용자 지정 역할에 부여합니다. 예를 들어, 다음 SQL 명령은 이름이 notebooks_db 인 데이터베이스와 이름이 notebooks_sch 인 스키마에 필요한 권한을 이름이 notebook_role 인 역할에 부여하는 방법을 보여줍니다.

GRANT USAGE ON DATABASE notebooks_db TO ROLE notebook_role;
GRANT USAGE ON SCHEMA notebooks_sch TO ROLE notebook_role;
GRANT CREATE NOTEBOOK ON SCHEMA notebooks TO ROLE notebook_role;
Copy

노트북 역할에는 컨테이너 런타임의 노트북에 대한 다음 권한도 있어야 합니다.

GRANT USAGE ON WAREHOUSE notebooks_wh TO ROLE notebook_role;
GRANT USAGE ON COMPUTE POOL CPU_XS TO ROLE notebook_role;
GRANT USAGE ON COMPUTE POOL GPU_S TO ROLE notebook_role;
GRANT CREATE SERVICE ON SCHEMA notebooks_sch TO ROLE notebook_role;
Copy

외부 액세스 통합(EAI) 설정

컨테이너 런타임에서 실행되는 노트북의 경우, PyPi 및 Hugging Face와 같은 인터넷 리포지토리에서 패키지를 설치하려면 ACCOUNTADMIN이 외부 네트워크 액세스를 설정하고 사용자의 역할에 USAGE 권한을 부여해야 합니다. 외부 액세스 통합(EAI)을 사용하면 Snowflake 외부의 특정 네트워크 위치에 대한 보안 액세스를 활성화한 다음 처리기 코드 내에서 해당 액세스를 사용자 정의 함수(UDFs) 및 저장 프로시저에 사용할 수 있습니다.

노트북에 EAI를 설정하는 방법에 대한 자세한 내용은 Snowflake Notebooks 에 대한 외부 액세스 설정 섹션을 참조하십시오.

노트북 설정을 위한 템플릿

다음 SQL 스크립트에는 노트북을 설정하는 위의 모든 단계가 요약되어 있습니다. 자리 표시자를 값으로 채우고 스크립트를 실행해 노트북을 실행하는 데 필요한 모든 권한과 액세스 권한을 설정합니다.

----------------------------------
--       Location Setup         --
----------------------------------
GRANT USAGE ON DATABASE <database> TO ROLE PUBLIC;
GRANT USAGE ON SCHEMA <database.schema> TO ROLE PUBLIC;
GRANT CREATE NOTEBOOK ON SCHEMA <database.schema> TO ROLE PUBLIC;

-- For Notebooks on Containers
GRANT CREATE SERVICE ON SCHEMA <database.schema> TO ROLE PUBLIC;

----------------------------------
--    Compute Resource Setup    --
----------------------------------
GRANT USAGE ON WAREHOUSE <warehouse> TO ROLE PUBLIC;

-- For Notebooks on Containers
CREATE COMPUTE POOL CPU_XS
  MIN_NODES = 1
  MAX_NODES = 15
  INSTANCE_FAMILY = CPU_X64_XS;

CREATE COMPUTE POOL GPU_S
  MIN_NODES = 1
  MAX_NODES = 5
  INSTANCE_FAMILY = GPU_NV_S;

GRANT USAGE ON COMPUTE POOL CPU_XS TO ROLE PUBLIC;
GRANT USAGE ON COMPUTE POOL GPU_S TO ROLE PUBLIC;

-------------------------------------
-- Advanced Setup: External Access --
-------------------------------------

-- Example EAI
CREATE OR REPLACE NETWORK RULE allow_all_rule
MODE = 'EGRESS'
TYPE = 'HOST_PORT'
VALUE_LIST = ('0.0.0.0:443','0.0.0.0:80');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION allow_all_integration
ALLOWED_NETWORK_RULES = (allow_all_rule)
ENABLED = true;

GRANT USAGE ON INTEGRATION allow_all_integration TO ROLE PUBLIC;
Copy

Snowflake Notebooks 실행을 위한 웨어하우스 추천

노트북을 만들 때 노트북 프로세스와 코드를 실행할 웨어하우스를 선택합니다. 크레딧 소모를 최소화하기 위해 X-Small 웨어하우스를 사용하는 것부터 시작해 보겠습니다.

  • 쿼리 웨어하우스: 노트북에서 발행한 모든 SQL 및 Snowpark 쿼리를 실행합니다. 이 웨어하우스는 수요에 따라 사용되며 노트북 소유자가 선택합니다.

  • 노트북 웨어하우스: Python 커널을 실행하고 노트북의 대화형 사용을 지원합니다. 기본값은 Notebook 워크로드 전용의 Snowflake 관리 웨어하우스입니다. Snowflake는 이 웨어하우스를 사용하여 Notebook 커널을 실행할 것을 권장합니다. 이 기본 웨어하우스에 대한 자세한 내용은 Notebooks용 기본 웨어하우스 섹션을 참조하십시오.

다른 웨어하우스를 선택할 수도 있습니다. 예를 들어, SQL을 사용하여 대규모 쿼리를 실행하거나 더 큰 웨어하우스가 필요한 계산 집약적 작업을 수행하려면 Snowpark Python을 사용해야 할 수 있습니다. 이 경우에는 두 가지 옵션이 있습니다.

  1. 특정 셀 또는 셀 집합에 사용할 웨어하우스를 지정합니다.

    이렇게 하면 해당 셀의 쿼리가 더 큰 웨어하우스를 사용하지만 노트북 프로세스는 더 작은 노트북 웨어하우스에서 계속 실행되므로 쿼리를 실행하지 않을 때는 컴퓨팅을 덜 사용하게 됩니다.

    예를 들어, 특정 셀에 사용할 notebooks 웨어하우스를 지정하려면 USE WAREHOUSE 명령으로 SQL 셀을 추가하거나 Python 셀의 Python 코드에 해당 명령을 추가하면 됩니다.

    SQL::
    USE WAREHOUSE notebooks;
    
    Copy
    Python::
    session.sql('USE WAREHOUSE notebooks;')
    
    Copy

    USE WAREHOUSE 를 지정한 셀을 실행한 후 나머지 노트북 세션에서 실행되는 모든 셀은 지정된 웨어하우스를 사용합니다. 더 이상 대규모 웨어하우스에 대한 쿼리를 실행할 필요가 없으면 사용할 더 작은 웨어하우스를 지정하는 새 셀을 작성합니다.

  2. 노트북 전체를 보관하려면 더 큰 웨어하우스를 선택합니다.

조심

이 옵션을 선택하면 더 큰 웨어하우스가 노트북 세션 전체에 사용되므로 노트북 전체의 크레딧 소모가 대폭 증가할 수 있습니다.

노트북 웨어하우스를 변경하려면:

  1. Snowsight 에 로그인합니다.

  2. Projects » Notebooks 를 선택합니다.

  3. 노트북 오른쪽 상단의 세로 줄임표(워크시트에 대한 추가 작업)를 선택합니다.

  4. Notebook settings 를 선택합니다.

  5. 사용할 새로운 웨어하우스를 선택합니다.

Snowflake Notebooks 용 관리자 설정 지침

Snowflake Notebooks 를 사용하여 조직을 설정하려면 다음 설정 단계를 수행합니다.

Snowflake Notebooks 사용과 관련한 계정 및 배포 고려 사항

*.snowflake.app 이 네트워크의 허용 목록에 있고 Snowflake에 연결할 수 있는지 확인하십시오. 이 도메인이 허용 목록에 있으면 앱이 아무런 제한 없이 Snowflake 서버와 통신할 수 있습니다.

또한 Snowflake 백엔드 연결 문제를 방지하려면 네트워크 구성에서 WebSockets이 차단되어 있지 않은지 확인합니다.

또한, 다음과 같은 계정 고려 사항도 적용됩니다.

  • 다음 리전의 계정은 현재 지원되지 않습니다.

    • GCP(Google Cloud Platform)

    • Virtual Private Snowflake(VPS)

    • FedRAMP를 지원하는 US 정부 리전

  • AWS PrivateLink 또는 Azure Private Link 사용은 지원되지 않습니다.

  • 계정 이름은 조직 내에서 고유해야 합니다.

라이브러리를 가져오려면 Anaconda 약관에 동의합니다.

Snowflake 내부에서 Anaconda가 제공하는 패키지를 처음 사용하기 전에 먼저 외부 제공 서비스 약관 에 동의해야 합니다.

참고

조직 관리자(ORGADMIN 역할 사용)가 약관을 수락할 수 있습니다. Snowflake 조직에 대한 약관을 한 번만 수락하면 됩니다. 계정에서 ORGADMIN 역할 활성화하기 섹션을 참조하십시오.

  1. Snowsight 에 로그인합니다.

  2. Admin » Billing & Terms 를 선택합니다.

  3. Anaconda 섹션에서 Enable 을 선택합니다.

  4. Anaconda Packages 대화 상자에서 링크를 클릭하여 외부 제공 서비스 약관 페이지 를 검토하십시오.

  5. 약관에 동의하면 Acknowledge & Continue 를 선택합니다.

서비스 약관을 수락하려고 할 때 오류가 나타날 경우 사용자 프로필에 이름, 성 또는 이메일 주소가 누락되었기 때문일 수 있습니다. 관리자 역할이 있는 경우 사용자 프로필에 사용자 세부 정보 추가하기 섹션을 참조하여 Snowsight 를 사용해 프로필을 업데이트하십시오. 그렇지 않으면 관리자에게 문의하여 계정을 업데이트하십시오.

Snowflake Notebooks 실행에 대한 청구 고려 사항

Snowflake 노트북을 실행하려면 가상 웨어하우스 가 필요합니다.

Streamlit 앱에 대한 청구 와 마찬가지로 Snowflake 노트북은 웹소켓 연결을 사용하여 쿼리를 실행합니다. 웹소켓 연결이 활성화되어 있는 동안 가상 웨어하우스는 활성 상태를 유지합니다. 각 노트북에는 자체 세션이 있습니다. 노트북을 닫거나 노트북이 마지막으로 연결을 사용한 후 약 60분이 경과한 시점 중 더 빠른 시점에 연결이 만료됩니다. 노트북을 더 오래 실행하려면 다른 웨어하우스를 사용하거나 STATEMENT_TIMEOUT_IN_SECONDS 매개 변수를 변경하면 됩니다. 이 매개 변수는 웨어하우스 또는 계정 수준에서 설정되며 일정 기간 후에 노트북 세션을 종료합니다.

Snowflake Notebooks 실행을 위한 웨어하우스 추천 섹션을 참조하십시오.

데이터를 추가하여 노트북 사용 시작하기

Snowflake Notebooks 사용을 시작하기 전에 Snowflake에 데이터를 추가합니다.

Snowflake에 데이터를 추가하는 방법은 여러 가지가 있습니다.

다른 방법으로 데이터를 추가할 수도 있습니다. 자세한 내용은 데이터 로딩 개요 섹션을 참조하십시오.

다음 단계