작업 공간에서 노트북 편집 및 실행하기

실행 컨텍스트 설정

작업 공간의 노트북은 데이터베이스나 스키마를 자동으로 설정하지 않습니다. 데이터를 쿼리하려면 다음 SQL 명령을 사용하여 셀에서 실행 컨텍스트를 정의해야 합니다.

USE DATABASE <database>;
USE SCHEMA <schema>;
Copy

노트북이 여러 환경과 클라이언트에서 일관되게 실행되도록 하려면 테이블 및 기타 오브젝트에 정규화된 이름을 사용합니다. 예:

-- Query data objects using a fully qualified name
SELECT * FROM TABLE <database_name.schema_name.table_name>;

-- Create a table using a fully qualified name
WITH filtered_events AS (
    SELECT
        user_id,
        event_type,
        event_timestamp
    FROM raw_events
    WHERE event_timestamp >= '2025-01-01'
)
CREATE OR REPLACE TABLE <database_name.schema_name.table_name> AS
SELECT *
FROM filtered_events;
Copy

역할 및 웨어하우스 선택기 사용

노트북의 활성 역할과 웨어하우스를 설정할 수 있습니다.

Notebooks 편집기의 왼쪽 상단에 있는 선택기를 사용합니다.

역할 및 웨어하우스 선택기

쿼리 웨어하우스는 노트북에서 호출한 SQL 쿼리 및 Snowpark 푸시다운 컴퓨팅을 실행하는 데 사용됩니다. 또한 대화형 데이터그리드를 렌더링하는 데도 사용되지만, 이 작업에는 크레딧 요금이 부과되지 않습니다.

크레딧 사용에 대해 자세히 알아보려면 :ref:`컴퓨팅 설정하기<label-nb_in_ws_compute_setup>`를 참조하세요.

Snowpark 세션 생성

Snowpark는 플랫폼 외부로 데이터를 이동하지 않고도 Snowflake 내에서 직접 데이터 파이프라인, 변환, 머신 러닝 논리를 구축할 수 있는 Snowflake 개발자 프레임워크입니다. Snowflake 데이터에서 DataFrames로 작동하는 APIs를 제공하여 확장성, 성능, 보안을 위해 계산을 Snowflake 엔진으로 푸시합니다.

Notebooks에서 :doc:`Snowpark Python APIs </developer-guide/snowpark/python/index>`를 사용하려면 먼저 Python 셀에서 Snowpark 세션을 생성합니다.

from snowflake.snowpark.context import get_active_session
session = get_active_session()
Copy

셀 실행

다음의 4가지 실행 옵션이 지원됩니다.

  • 모든 셀을 실행합니다.

  • 하나의 단일 셀 실행

  • 현재 셀 및 위의 모든 셀 실행(셀의 줄임표 메뉴를 통해).

  • 현재 셀 및 아래의 모든 셀 실행(셀의 줄임표 메뉴를 통해)

셀 실행 취소

노트북 상단의 :ui:`Stop`을 사용하거나 셀에서 :ui:`Cancel execution`을 사용합니다.

두 작업 모두 현재 실행 중인 셀 및 :ui:`Run all`에 의해 트리거된 큐에 있는 모든 셀을 중지합니다.

참고

노트북이 서비스에 연결되거나 재연결될 때 일시적으로 Run all 버튼이 :ui:`Stop`으로 변경될 수 있습니다.

셀 이름

셀에 이름을 할당하여 더 쉽게 탐색하고 상황에 맞는 레이블을 제공할 수 있습니다.

가져온 .ipynb 파일에 이미 이름 또는 제목 메타데이터가 포함된 경우 해당 값이 자동으로 사용됩니다.

셀 참조

양방향 SQL에서 Python 셀 참조를 사용하면 두 언어의 셀 간에 결과와 변수를 재사용할 수 있으므로 SQL 및 Python 워크플로 간에 원활하게 전환할 수 있습니다.

결과 도구 설명을 마우스로 가리키면 Python 및 SQL에서 결과를 참조하는 데 사용할 수 있는 DataFrame 이름을 확인할 수 있습니다.

셀 참조

SQL 셀 결과 참조하기

각 SQL 셀은 해당 결과를 :code:`dataframe_x`라는 이름의 pandas DataFrame 포인터로 노출합니다.

  • SQL에서 이중 중괄호를 사용하여 참조합니다({{dataframe_1}}).

  • Python에서는 pandas DataFrame으로 직접 참조합니다(dataframe_1).

Python 변수 참조하기

SQL 쿼리에서 Python 변수를 참조하려면 쿼리를 이중 중괄호로 묶습니다. 예:

SELECT * FROM {{uploaded_df}} WHERE "price" > 326;
Copy

SQL에서 Python 변수를 참조할 때 DataFrame 변수도 지원됩니다.

워크플로 예시

Python 셀

import pandas as pd

uploaded_df = pd.read_csv("../data/diamonds.csv")
uploaded_df
Copy

Python 변수를 참조하는 SQL 셀

SELECT * FROM {{uploaded_df}} WHERE "price" > 326;
Copy

SQL 셀 결과를 참조하는 SQL 셀

SQL 셀의 결과는 :code:`dataframe_1`이라는 이름의 DataFrame 포인터를 제공합니다. 다른 SQL 쿼리에서 참조할 수 있습니다.

SELECT * FROM {{dataframe_1}} WHERE "carat" < 1.0
UNION ALL
SELECT * FROM {{dataframe_2}} WHERE "carat" >= 1.0;
Copy

대화형 데이터그리드

데이터그리드는 다음을 지원합니다.

  • 스크롤링

  • 검색

  • 필터링

  • 정렬

  • 코드 없이 차트 생성

기본 제공 차트 빌더

작업 공간의 편집 화면 전반에서 데이터 조작 및 시각화를 위한 일관된 사용자 환경을 제공합니다.

미니맵 및 셀 상태

미니맵은 마크다운 헤더에서 목차를 생성하고 각 셀에 대한 포괄적인 세션 내 상태(실행 중, 성공, 실패, 수정됨)를 표시합니다.

전역 검색 및 바꾸기

현재 노트북의 모든 셀에서 키워드를 검색할 수 있습니다. 특정 셀을 편집하는 경우 먼저 :kbd:`esc`를 눌러 해당 셀의 편집 모드를 종료합니다.

현재 노트북의 모든 셀에서 키워드를 검색하려면 다음을 수행합니다.

  • 키워드를 검색하려면 미니맵에서 Search`를 선택하거나 키보드 단축키 :kbd:`CTRL + :kbd:`F`를 사용합니다.

    모든 셀에서 일치하는 키워드가 표시됩니다. 선택적으로, Replace next 또는 :ui:`Replace all`을 사용하여 검색어를 원하는 값으로 바꿀 수 있습니다.

노트북 커널

노트북 서비스가 RUNNING 상태에 있는 한, 노트북 커널은 활성 상태로 유지되어 ML 학습 및 데이터 엔지니어링 작업과 같이 중요한 장기 실행 프로세스를 중단 없이 실행할 수 있습니다.

커널 실행에 영향을 주지 않는 작업:

  • 다른 페이지로 이동하기

  • |sf-web-interface|의 다른 위치에서 작업하기

  • 브라우저 닫기

  • 컴퓨터 종료하기

Connected 드롭다운을 사용하여 커널을 종료하거나 다시 시작할 수 있습니다.

참고

Shut down kernel 또는 :ui:`Restart kernel`을 사용하면 메모리의 변수는 지워지지만 사용자가 설치한 패키지는 유지됩니다. 사전 설치된 패키지만 있는 완전히 깨끗한 환경을 원하는 경우 서비스를 다시 시작하거나 새 서비스를 생성하여 연결해야 합니다.

노트북 서비스가 일시 중단되면 노트북 커널도 종료됩니다. 자세한 내용은 :ref:`컴퓨팅 설정하기<label-nb_in_ws_compute_setup>`를 참조하세요.

셀 출력

  • 셀 출력은 .ipynb 파일에 저장되지 않으며, 내보낼 수 없습니다.

  • 노트북을 실행한 사용자는 작업 공간(개인 및 공유 작업 공간 모두)에 있는 노트북의 셀 출력에 액세스할 수 있습니다.

  • 셀 출력 가시성은 실행을 시작한 사용자로 제한됩니다. 셀을 실행하려면 활성 기본 역할에 :ref:`노트북 프로젝트 오브젝트(NPO) <label-nb_in_ws_schedule_npo>`에 대한 OWNERSHIP 또는 USAGE 권한 중 하나를 부여해야 합니다.

Jupyter 매직

작업 공간의 노트북은 IPython(대화형 Python) 커널을 실행하며 표준 Jupyter 셀 및 라인 매직을 제공합니다. :code:`%lsmagic`을 실행하여 사용 가능한 매직을 확인합니다.

예를 들어, %run 매직 명령을 사용하여 다른 노트북을 호출할 수 있습니다.

  • :code:`notebook_a`의 Python 셀에서 :code:`%run path/to/notebook_b.ipynb`를 호출합니다. 그러면 :code:`notebook_b`가 :code:`notebook_a`와 동일한 Python 프로세스에서 실행됩니다.

  • notebook_b`의 변수 pandas DataFrames가 :code:`notebook_a 셀 결과로 렌더링되도록 하려면 명시적으로 출력해야 합니다. 예: print(var) 또는 display(df).

개발자 도구

개발자 도구에는 Terminal, Scratchpad 및 :ui:`Variables Explorer`가 포함됩니다. 이러한 도구를 사용하면 데이터와 노트북 환경을 탐색하고 상호 작용할 수 있습니다.

개발자 도구에 액세스하려면 노트북 상단의 컨트롤바에서 <icon>:ui:`Tools`를 선택합니다.

노트북 도구 아이콘

개발자 도구를 사용하려면 노트북 서비스에 연결되어 있어야 합니다. 다른 서비스로 전환하면 도구가 다시 시작됩니다.

터미널 사용하기

터미널을 사용하면 노트북의 컨테이너 환경에서 모든 셸 명령을 실행할 수 있습니다.

  • 종속성 설치 - pip install, pip list 또는 설치된 패키지를 확인합니다.

  • 파일 관리 - ls, pwd, 디렉터리를 탐색하고 파일을 확인합니다.

  • 병렬 작업 실행하기

  • 컴퓨팅 리소스 사용량 모니터링하기

컴퓨팅 리소스 사용량을 실시간으로 모니터링하기 위한 htop 설치 및 실행의 예제입니다.

# If installation fails, run `apt update` first
# Install `htop`
apt install htop

# Run `htop`
htop
Copy

Scratchpad 사용하기

Scratchpad는 구조나 세련미에 대한 걱정 없이 코드, 아이디어, 계산 또는 메모 등을 빠르게 실험할 수 있는 탐색 공간입니다. Scratchpad에서 실행하는 명령은 노트북 파일을 변경하지 않습니다.

Scratchpad에서 다음을 수행할 수 있습니다.

  • 빠른 애드혹 쿼리 - 노트북에 셀을 추가하지 않고도 SQL을 테스트합니다.

  • 데이터 탐색 - 테이블 내용, 스키마를 확인하거나 탐색 쿼리를 실행합니다.

  • 디버깅 - 노트북 셀에 추가하기 전에 데이터를 확인하거나 쿼리 조각을 테스트합니다.

  • 일회성 작업 - 저장할 필요가 없는 명령(예: SHOW GRANTS 또는 DESCRIBE TABLE)을 실행합니다.

결과는 작업하는 동안 계속 표시되지만 노트북에는 저장되지 않습니다.

변수 탐색기 사용하기

변수 탐색기는 대화형으로 작업하는 동안 세션에 현재 로드된 변수를 검사할 수 있는 시각적 도구입니다. 각 변수에 대한 Name, Type, Shape 및 :ui:`Preview`를 보여줍니다. 셀 실행이 완료되면 변수가 업데이트됩니다.