다음을 통해 공유


Microsoft Fabric Notebook 개발, 실행 및 관리

Microsoft Fabric Notebook은 Apache Spark 작업 및 기계 학습 실험을 개발하기 위한 기본 코드 항목입니다. 데이터 과학자와 데이터 엔지니어가 풍부한 시각화 및 Markdown 텍스트를 활용하는 코드를 작성하는 데 사용하는 웹 기반 대화형 화면입니다. 이 문서에서는 코드 셀 작업을 사용하여 Notebook을 개발하고 실행하는 방법을 설명합니다.

노트북 개발

Notebook은 셀로 구성됩니다. 셀은 독립적으로 또는 그룹으로 실행할 수 있는 개별 코드 또는 텍스트 블록입니다.

노트북을 개발하기 위한 풍부한 기능을 제공합니다.

셀 추가

Notebook에 새 셀을 추가하는 방법은 여러 가지입니다.

  1. 두 셀 사이의 공간을 마우스로 가리키고 코드 또는 Markdown을 선택합니다.

  2. 명령 모드에서 바로 가기 키를 사용합니다. 현재 셀 위에 셀을 삽입하려면 A 를 누릅니다. 현재 셀 아래에 셀을 삽입하려면 B를 누릅니다.

주 언어 설정

Fabric Notebooks는 현재 4가지 Apache Spark 언어를 지원합니다.

  • PySpark(Python)
  • Spark(Scala)
  • Spark SQL
  • SparkR

새로 추가한 셀의 주 언어는 위쪽 명령 모음의 드롭다운 목록에서 설정할 수 있습니다.

여러 언어 사용

셀 시작 부분에 언어 매직 명령을 지정하면 Notebook 하나에서 여러 언어를 사용할 수 있습니다. 언어 선택기에서 셀 언어를 전환할 수도 있습니다. 셀 언어를 전환하는 매직 명령은 다음 표에 나열되어 있습니다.

셀의 시작 부분에 입력된 언어 매직 명령의 예를 보여 주는 스크린샷

매직 명령 언어 설명
%%pyspark 파이썬 Apache Spark 컨텍스트에 대해 Python 쿼리를 실행합니다.
%%스파크 스칼라 Apache Spark 컨텍스트에 대해 Scala 쿼리를 실행합니다.
%%sql SparkSQL Apache Spark 컨텍스트에 대해 SparkSQL 쿼리를 실행합니다.
%%html Html Apache Spark 컨텍스트에 대해 N HTML 쿼리를 실행합니다.
%%sparkr R 프로그래밍 언어 Apache Spark 컨텍스트에 대해 R 쿼리를 실행합니다.

IDE 스타일의 IntelliSense

Fabric 노트북은 Monaco 편집기와 통합되어 IDE 스타일 IntelliSense를 셀 편집기에서 제공합니다. 구문 강조 표시, 오류 표식, 자동 코드 완성 기능은 신속하게 코드를 작성하고 문제를 식별하는 데 유용합니다.

IntelliSense 기능은 완성도 수준이 언어마다 다릅니다. 다음 표에서는 Fabric에서 지원하는 내용을 보여 줍니다.

언어 구문 강조 표시 구문 오류 표식 구문 코드 완성 변수 코드 완성 시스템 함수 코드 완성 사용자 함수 코드 완성 스마트 들여쓰기 코드 접기
PySpark(Python)
파이썬
Spark(Scala)
SparkSQL 아니요
SparkR
T-SQL 아니요

비고

IntelliSense 코드 완료를 사용하려면 활성 Apache Spark 세션이 있어야 합니다.

Pylance를 사용하여 Python 개발 향상

비고

현재 이 기능은 미리 보기로 제공됩니다.

강력하고 기능이 풍부한 언어 서버인 Pylance는 이제 Fabric Notebook에서 사용할 수 있습니다. Pylance를 사용하면 스마트 완성, 더 나은 오류 감지 및 향상된 코드 인사이트를 사용하여 Python 개발을 더 쉽게 할 수 있습니다. 향상된 주요 기능으로는 스마트 자동 완성, 향상된 람다 지원, 매개 변수 제안, 향상된 가리키기 정보, 더 나은 문서 렌더링, 오류 강조 표시 등이 있습니다. Pylance를 사용하면 Python 및 PySpark 코드를 작성하는 것이 더 빠르고 정확하며 효율적입니다.

코드 조각

Fabric Notebook은 일반적으로 사용되는 다음과 같은 코드 패턴을 쉽게 작성하는 데 도움이 되는 코드 조각을 제공합니다.

  • Apache Spark 데이터 프레임으로 데이터 읽기
  • Matplotlib를 사용하여 차트 그리기

코드 조각은 IDE 스타일 IntelliSense의 바로 가기 키에 다른 제안 사항과 함께 표시됩니다. 코드 조각 콘텐츠는 코드 셀 언어에 따라 달라집니다. 코드 조각을 입력하여 사용 가능한 코드 조각을 볼 수 있습니다. 키워드를 입력하여 관련 코드 조각 목록을 볼 수도 있습니다. 예를 들어 read를 입력하면 여러 데이터 원본으로부터 데이터 읽기를 위한 코드 조각 목록이 표시됩니다.

코드 조각 애니메이션 GIF

코드 조각을 끌어 놓아 삽입하십시오

끌어서 놓기를 사용하여 레이크하우스 탐색기에서 데이터를 편리하게 읽을 수 있습니다. 여기서는 여러 파일 형식이 지원됩니다. 텍스트 파일, 테이블, 이미지 등에서 작업할 수 있습니다. 기존 셀 또는 새 셀에 놓을 수 있습니다. Notebook은 데이터를 미리 볼 수 있도록 코드 조각을 적절하게 생성합니다.

드래그 앤 드롭하여 조각을 삽입하는 애니메이션 GIF.

이미지를 끌어서 삽입하세요.

또한 끌어서 놓기를 사용하여 브라우저나 로컬 컴퓨터에서 Markdown 셀로 이미지를 쉽게 삽입할 수 있습니다.

이미지 삽입을 위한 끌어서 놓기의 애니메이션 GIF.

도구 모음 단추를 사용하여 텍스트 셀 서식 지정

일반적인 Markdown 작업을 완료하려면 텍스트 셀 툴바의 서식 버튼을 사용합니다.

텍스트 서식 툴바 스크린샷.

셀 작업 실행 취소 또는 다시 실행

실행 취소 또는 다시 실행을 선택하거나 Z 또는 Shift+Z를 눌러 최근 셀 작업을 철회합니다. 이제 기록된 최근 셀 작업을 10개까지 실행 취소하거나 다시 실행할 수 있습니다.

실행 취소 및 다시 실행 메뉴 옵션을 보여 주는 스크린샷.

지원되는 셀 실행 취소 작업:

  • 셀을 삽입하거나 삭제합니다. 실행 취소을 선택하여 삭제된 작업을 복구할 수 있습니다(텍스트 콘텐츠는 셀과 함께 유지됩니다).
  • 셀 다시 정렬
  • 매개 변수 전환
  • 코드 셀과 Markdown 셀 간 변환

비고

셀 내 텍스트 작업과 코드 셀 주석 달기 작업은 실행 취소할 수 없습니다. 이제 기록된 최근 셀 작업을 10개까지 실행 취소하거나 다시 실행할 수 있습니다.

셀을 이동하기

셀의 빈 부분에서 끌어 원하는 위치에 놓을 수 있습니다.

리본에서 위로 이동아래로 이동을 사용하여 선택한 셀을 이동할 수도 있습니다.

셀 이동에 대한 옵션을 보여 주는 스크린샷.

셀 삭제

셀을 삭제하려면 셀의 오른쪽에 있는 삭제 버튼을 선택합니다.

명령 모드에서 바로 가기 키를 사용할 수도 있습니다. 현재 행을 삭제하려면 Shift+D를 누릅니다.

셀 입력 숨기기

셀 툴바에서 기타 명령 줄임표(...)를 선택하고 현재 셀의 입력을 축소하려면 입력 숨김을 선택합니다. 셀을 펼치려면 셀이 축소된 상태에서 입력 표시를 선택합니다.

셀 출력을 접다

셀 툴바에서 기타 명령 줄임표(...)를 선택하고 현재 셀의 출력을 축소하려면 출력 숨김을 선택합니다. 다시 펼치려면 셀 출력이 축소된 상태에서 출력 표시를 클릭합니다.

셀 출력 보안

OneLake 데이터 액세스 역할(프리뷰)을 사용하여 사용자는 Notebook 쿼리 중에 레이크하우스의 특정 폴더에 대한 액세스만 구성할 수 있습니다. 폴더 또는 테이블에 액세스할 수 없는 사용자는 쿼리를 실행하는 동안 무단 오류가 표시됩니다.

중요한

보안은 쿼리 실행 중에만 적용되며 쿼리 결과를 포함하는 모든 Notebook 셀은 데이터에 대해 쿼리를 직접 실행할 권한이 없는 사용자가 볼 수 있습니다.

셀 고정 또는 잠금

셀 잠금 및 고정 작업을 사용하면 셀을 읽기 전용으로 만들거나 코드 셀이 개별적으로 실행되지 않도록 할 수 있습니다.

셀을 잠그거나 고정하는 애니메이션 GIF.

셀 병합 및 분할

이전 셀과 병합을 사용하거나 다음 셀과 병합을 사용하여 관련 셀을 편리하게 병합할 수 있습니다.

셀 분할을 선택하면 관련이 없는 문을 여러 셀로 분할할 수 있습니다. 이 작업은 커서의 줄 위치에 따라 코드를 분할합니다.

병합 및 분할 셀 입력을 보여주는 스크린샷

노트북 내용

개요 또는 목차를 선택하면 빠른 탐색을 위해 사이드바 창에 있는 모든 Markdown 셀의 첫 번째 Markdown 헤더가 표시됩니다. 개요 사이드바는 가능한 최적의 방법으로 화면에 맞게 크기 조절 및 축소가 가능합니다. 사이드바를 열거나 숨기려면 Notebook 명령 모음에서 목차 버튼을 선택합니다.

목차 옵션을 선택할 수 있는 위치를 보여 주는 스크린샷

마크다운 접기 기능

Markdown 접기 옵션을 사용하면 제목이 포함된 Markdown 셀 아래에 셀을 숨길 수 있습니다. Markdown 셀과 숨겨진 셀은 셀 작업을 수행할 때 연속된 다중 선택 셀 집합과 동일하게 처리됩니다.

마크다운 코드 접기의 애니메이션 GIF.

찾기 및 바꾸기

찾기 및 바꾸기 옵션을 사용하면 Notebook 콘텐츠 내에서 키워드 또는 식을 일치시키고 찾을 수 있습니다. 대상 문자열을 새 문자열로 쉽게 바꿀 수도 있습니다.

찾기 및 바꾸기 창을 보여 주는 스크린샷

코파일럿 인라인 코드 완성(프리뷰)

Copilot의 인라인 코드 완성은 Fabric Notebooks에서 Python 코드를 더 빠르고 효율적으로 작성할 수 있도록 돕는 AI 기반 기능입니다. 이 기능은 코드를 입력할 때 지능형 컨텍스트 인식 코드 제안을 제공합니다. 반복 작업을 줄이고 구문 오류를 최소화하며 Notebook 워크플로에 원활하게 통합하여 개발을 가속화합니다.

주요 이점

  • AI 기반 완성: 수백만 줄의 코드에서 학습된 모델을 사용하여 Notebook의 컨텍스트에 따라 제안을 생성합니다.
  • 생산성 향상: 복잡한 함수를 작성하고 반복적인 코딩을 줄이며 익숙하지 않은 라이브러리를 빠르게 탐색할 수 있도록 지원합니다.
  • 오류를 줄입니다. 지능형 컨텍스트 인식 완성을 통해 오타 및 구문 실수를 최소화합니다.
  • 최소 설정: Fabric Notebook에 내장되어 있으므로 설치할 필요가 없습니다. 사용하도록 설정하고 코딩을 시작할 수 있습니다.

작동 방식

Notebook 아래쪽의 토글을 사용하여 인라인 코드 제안을 활성화합니다. 입력하면 제안이 연한 회색 텍스트로 나타나고 Tab 키를 눌러 수락하거나 수정합니다. 제안은 이전 전자 필기장 셀을 기반으로 합니다.

Copilot 코드 완성을 사용하도록 설정하는 방법을 보여 주는 스크린샷

Copilot 코드가 완성된 자동 코드 제안을 보여 주는 스크린샷

비고

코필로트 인라인 코드 완성을 사용하도록 설정하면 추가 용량 단위가 사용됩니다.

현재 제한 사항

  • Copilot 코드 자동 완성 기능은 현재 파이썬 프로그래밍 언어를 지원하며, 이전 셀 및 Lakehouse 스키마의 컨텍스트를 활용합니다.
  • 제안 사항은 Lakehouse 스키마의 데이터를 고려합니다.
  • 테이블 또는 열이 많은 경우 스키마 요소의 하위 집합만 사용됩니다.
  • 동적으로 생성된 테이블(Spark를 통해)은 실시간으로 인식되지 않습니다.

노트북을 실행

Notebook의 코드 셀을 개별적으로 또는 한꺼번에 실행할 수 있습니다. 각 셀의 상태와 진행률이 Notebook에 표시됩니다.

셀 실행

셀에서 코드를 실행하는 방법은 여러 가지입니다.

  • 실행할 셀을 마우스로 가리킨 다음, 셀 실행 단추를 선택하거나 Ctrl+Enter 키를 누릅니다.

  • 명령 모드에서 바로 가기 키를 사용합니다. Shift+Enter 키를 눌러서 현재 셀을 실행하고 다음 셀을 선택합니다. Alt+Enter 키를 눌러 현재 셀을 실행하고 새 셀을 삽입합니다.

모든 셀 실행

모두 실행 버튼을 선택하면 현재 Notebook의 모든 셀이 순서대로 실행됩니다.

위 또는 아래 셀 모두 실행

모두 실행 단추에서 드롭다운 목록을 확장한 다음, 현재 셀 위의 모든 셀을 순서대로 실행하려면 위 셀 실행을 선택합니다. 현재 셀과 그 아래 모든 셀을 순서대로 실행하려면 아래 셀 실행을 선택합니다.

모두 실행 메뉴 항목을 보여 주는 스크린샷.

실행 중인 모든 셀 취소

실행 중인 셀 또는 큐에서 대기 중인 셀을 취소하려면 모두 취소를 선택합니다.

세션 중지

세션 중지는 실행 중인 셀과 대기 중인 셀을 취소하고 현재 세션을 중지합니다. 실행 옵션을 다시 선택하여 새 세션을 다시 시작할 수 있습니다.

모든 실행 취소를 선택하고 세션을 중지할 위치를 보여 주는 스크린샷

참조 실행

노트북 실행 참조

Notebookutils 참조 실행 API 외에도 매직 명령을 사용하여 %run <notebook name> 현재 Notebook의 컨텍스트 내에서 다른 Notebook을 참조할 수도 있습니다. 참조 Notebook에 정의된 모든 변수는 현재 Notebook에서 사용할 수 있습니다. %run 매직 명령은 중첩된 호출을 지원하지만 재귀 호출은 지원하지 않습니다. 문 깊이가 5보다 크면 예외가 발생합니다.

예: %run Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }

Notebook 참조 기능은 인터랙티브 모드와 파이프라인 모두에서 작동합니다.

비고

  • %run 명령은 현재 Notebook과 동일한 작업 영역의 참조 Notebook만 지원합니다.
  • %run 명령은 현재 int, float, bool, string의 네 가지 매개 변수 값 형식만 지원합니다. 변수 대체 작업은 지원되지 않습니다.
  • %run 명령은 깊이가 5보다 큰 중첩 참조를 지원하지 않습니다.

스크립트 실행 참조

%run 명령을 사용하면 Notebook의 기본 제공 리소스에 저장된 Python 또는 SQL 파일을 실행할 수 있으므로 Notebook에서 소스 코드 파일을 편리하게 실행할 수 있습니다.

%run [-b/--builtin -c/--current] [script_file.py/.sql] [variables ...]

옵션의 경우:

  • -b/--builtin: 이 옵션은 명령이 Notebook의 기본 제공 리소스에서 지정된 스크립트 파일을 찾아 실행한다는 것을 나타냅니다.
  • -c/--current: 이 옵션은 현재 Notebook이 다른 Notebook에서 참조하는 경우에도 명령이 항상 현재 Notebook의 기본 제공 리소스를 사용하는지 확인합니다.

예:

  • 기본 제공 리소스에서 script_file.py를 실행하려면: %run -b script_file.py

  • 기본 제공 리소스에서 script_file.sql을 실행하려면: %run -b script_file.sql

  • 기본 제공 리소스에서 특정 변수를 사용하여 script_file.py를 실행하려면: %run -b script_file.py { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }

비고

명령에 -b/--builtin이 포함되어 있지 않으면 기본 제공 리소스가 아닌 동일한 작업 영역 내에서 Notebook 항목을 찾아 실행하려고 시도합니다.

중첩된 실행 사례에 대한 사용 예제:

  • 공책이 두 권 있다고 가정해 보겠습니다.
    • Notebook1: 기본 제공 리소스에 script_file1.py 포함
    • Notebook1: 기본 제공 리소스에 script_file2.py 포함
  • Notebook1 작업을 콘텐츠 %run Notebook2가 포함된 루트 Notebook으로 사용하겠습니다.
  • 그런 다음 Notebook2에서 사용 지침은 다음과 같습니다.
    • Notebook1(루트 노트북)에서 script_file1.py를 실행하려면, 코드는 다음과 같습니다: %run -b script_file1.py
    • Notebook2(현재 Notebook)에서 script_file2.py을 실행하기 위한 코드는 다음과 같습니다: %run -b -c script_file2.py

변수 탐색기

Fabric Notebook은 PySpark(Python) 셀에 대한 현재 Spark 세션의 변수 이름, 유형, 길이 및 값 목록을 볼 수 있는 기본 제공 변수 탐색기를 제공합니다. 더 많은 변수가 코드 셀에 정의되면 자동으로 표시됩니다. 각 열 머리글을 클릭하면 테이블의 변수가 정렬됩니다.

변수 탐색기를 열거나 숨기려면 Notebook 리본 보기기에서 변수를 선택합니다.

변수를 열 위치를 보여 주는 스크린샷

비고

변수 탐색기는 Python만 지원합니다.

셀 상태 표시기

셀 아래에 단계별 셀 실행 상태가 표시되어 현재 진행 상황을 확인할 수 있습니다. 셀 실행이 완료되면 총 지속 시간 및 종료 시간이 포함된 실행 요약이 표시되고 나중에 참조할 수 있도록 저장됩니다.

셀 실행 상태 세부 정보의 예를 보여 주는 스크린샷

세션 상태 표시기

세션 시간 제한 구성

왼쪽 아래 모서리에서 세션 상태를 선택하여 현재 세션에 대한 자세한 정보를 가져올 수 있습니다.

세션 정보를 보여 주는 스크린샷

팝업에는 시간 제한을 x분 또는 시간으로 다시 설정하는 옵션이 있습니다.

세션 시간 제한을 보여 주는 스크린샷

중단 없는 세션의 길이를 선택하고 적용을 누르세요. 세션 시간 제한은 새 값으로 다시 설정되며, 진행하는 것이 좋습니다.

다음에 설명된 대로 시간 제한을 설정할 수도 있습니다.

로그인 상태 유지: 로그인하는 동안 로그인 유지 대화 상자가 표시되면 [예 ]를 선택하여 현재 세션에 대한 유휴 세션 시간 제한을 비활성화합니다.

중요한

로그인 설정이 영구적으로 잠기기 때문에 이 확인란을 다시 표시 안 함 확인란을 선택하지 마세요. 테넌트 관리자가 KMSI(로그인 유지) 설정을 사용하지 않도록 설정한 경우에는 이 옵션이 표시되지 않을 수 있습니다.

정책 변경 요청: 세션 기간이 더 길어야 하는 경우 테넌트 관리자에게 유휴 세션 시간 제한 기간 정책을 연장하도록 요청합니다. 이 작업은 M365 관리 센터 내에서 조직 설정 > 보안 및 보호 > 유휴 세션 시간 제한으로 이동하여 수행할 수 있습니다.

비고

KMSI를 선택하거나 유휴 세션 시간 제한 시간을 연장하면 잠금 해제된 컴퓨터에 액세스할 위험이 확장됩니다.

ABT 및 유휴 세션 시간 제한은 장기 실행 패브릭 Notebook 실행에 어떻게 영향을 주나요?

테넌트가 ABT(활동 기반 시간 제한)를 사용하는 경우 Fabric Notebook에서 장기 실행 대화형 작업은 Microsoft 365의 유휴 세션 시간 제한 정책의 영향을 받을 수 있습니다. 이 보안 기능은 Notebook 작업이 여전히 실행 중인 경우에도 비관리형 비관리 디바이스에서 사용자를 로그아웃하도록 설계되었습니다. 다른 Microsoft 365 앱의 활동은 세션을 활성 상태로 유지할 수 있지만 유휴 디바이스는 의도적으로 로그아웃됩니다.

전자 필기장 작업이 계속 실행 중인 경우에도 사용자가 로그아웃되는 이유는 무엇인가요?

유휴 세션 시간 제한은 무단 액세스를 방지하기 위해 비활성 디바이스에서 세션을 종료하여 보안 우선 순위를 지정합니다. Notebook 실행이 진행 중인 경우에도 디바이스에 활동이 표시되지 않으면 세션이 종료됩니다. 유휴 디바이스에서 세션을 열어 두면 보안이 손상되므로 현재 동작이 적용됩니다.

인라인 Apache Spark 작업 표시기

Fabric Notebook은 Apache Spark 기반입니다. 코드 셀은 Apache Spark 클러스터에서 원격으로 실행됩니다. Spark 작업 진행률 표시기에 실시간 진행률 표시줄이 제공되어 작업 실행 상태를 이해하는 데 유용합니다. 각 작업 또는 단계당 태스크 수를 통해 Spark 작업의 병렬 수준을 확인할 수 있습니다. 작업(또는 단계) 이름의 링크를 선택하여 특정 작업(또는 단계)의 Spark UI로 드릴다운할 수도 있습니다.

또한 진행률 표시기 옆에 있는 셀 수준 실시간 로그를 찾을 수 있으며 진단은 코드를 구체화하고 디버그하는 데 도움이 되는 유용한 제안을 제공할 수 있습니다.

Spark 작업 진행률에 대한 세부 정보 스크린샷

추가 작업에서는 Spark 애플리케이션 세부 정보 페이지 및 Spark 웹 UI 페이지로 쉽게 이동할 수 있습니다.

추가 작업의 세부 정보 스크린샷

비밀 편집

Notebook을 실행할 때 자격 증명이 실수로 유출되는 것을 방지하기 위해 Fabric Notebook은 비밀 편집을 지원하여 셀 출력에 표시되는 비밀 값을 [REDACTED]로 바꿉니다. 비밀 편집은 Python, ScalaR적용됩니다.

비밀 편집의 스크린샷.

노트북에서의 매직 커맨드

기본 제공 매직 명령

Fabric Notebook에서 익숙한 Ipython 매직 명령을 사용할 수 있습니다. 현재 사용할 수 있는 매직 명령 목록을 살펴봅니다.

비고

%%pyspark, %%spark, %%cshar, %%sql, %%configure는 Fabric 파이프라인에서 지원되는 유일한 매직 명령입니다.

사용 가능한 라인 매직 명령어: %lsmagic, %time, %timeit, %history, %run, %load, %alias, %alias_magic, %autoawait, %autocall, %automagic, %bookmark, %cd, %colors, %dhist, %dirs, %doctest_mode, %killbgscripts, %load_ext, %logoff, %logon, %logstart, %logstate, %logstop, %magic, %matplotlib, %page, %pastebin, %pdef, %pfile, %pinfo, %pinfo2, %popd, %pprint, %precision, %prun, %psearch, %psource, %pushd, %pwd, %pycat, %quickref, %rehashx, %reload_ext, %reset, %reset_selective, %sx, %system, %tb, %unalias, %unload_ext, %who, %who_ls, %whos, %xdel, %xmode.

Fabric Notebook은 향상된 라이브러리 관리 명령 %pip%conda도 지원합니다. 사용에 대한 자세한 내용은 Microsoft Fabric에서 Apache Spark 라이브러리 관리를 참조하세요.

사용 가능한 셀 매직 명령어: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%configure, %%html, %%bash, %%markdown, %%perl, %%script, %%sh.

사용자 지정 매직 명령

또한 특정 요구 사항에 맞게 더 많은 사용자 지정 매직 명령을 빌드할 수도 있습니다. 예를 들면 다음과 같습니다.

  1. 이름이 "MyLakehouseModule"인 Notebook을 만듭니다.

    사용자 지정 매직 정의 스크린샷

  2. 다른 Notebook에서는 "MyLakehouseModule"과 매직 명령어들을 참조하세요. 이 프로세스에서는 다양한 언어를 사용하는 Notebook을 사용하여 프로젝트를 편리하게 구성할 수 있습니다.

    사용자 지정 매직 사용 스크린샷

IPython 위젯

IPython 위젯은 브라우저에 표현된 이벤트성 Python 개체입니다. Jupyter Notebook과 마찬가지로 Notebook에서 IPython 위젯을 로우코드 컨트롤(예: 슬라이더 또는 텍스트 상자)으로 사용할 수 있습니다. 현재는 Python 컨텍스트에서만 작동합니다.

IPython 위젯을 사용하려면

  1. Jupyter Widgets 프레임워크를 사용하려면 먼저 ipywidgets 모듈을 가져옵니다.

    import ipywidgets as widgets
    
  2. 최상위 display 함수를 사용하여 위젯을 렌더링하거나 코드 셀의 마지막 줄에 위젯 형식의 식을 남겨 둡니다.

    slider = widgets.IntSlider()
    display(slider)
    
  3. 셀을 실행하세요. 위젯이 출력 영역에 표시됩니다.

    slider = widgets.IntSlider()
    display(slider)
    

    출력 영역에 표시되는 위젯의 스크린샷

  4. 여러 display() 호출을 사용하여 동일한 위젯 인스턴스를 여러 번 렌더링합니다. 서로 동기화된 상태로 유지됩니다.

    slider = widgets.IntSlider()
    display(slider)
    display(slider)
    

    위젯 하나를 여러 번 보여 주는 스크린샷

  5. 서로 독립적인 두 위젯을 렌더링하려면 두 개의 위젯 인스턴스를 만듭니다.

    slider1 = widgets.IntSlider()
    slider2 = widgets.IntSlider()
    display(slider1)
    display(slider2)
    

    위젯의 여러 인스턴스를 보여 주는 스크린샷

지원되는 위젯

위젯 형식 위젯
숫자 위젯 IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText
부울 논리 위젯 토글버튼, 체크박스, 유효함
선택 위젯 드롭다운, 라디오 버튼, 셀렉트, 셀렉션 슬라이더, 셀렉션 레인지 슬라이더, 토글 버튼, 셀렉트 멀티플
문자열 위젯 텍스트, 텍스트 영역, 콤보 상자, 암호, 레이블, HTML, HTML 수학, 이미지, 단추
재생(애니메이션) 위젯 날짜 선택기, 색 편집기, 컨트롤러
컨테이너 또는 레이아웃 위젯 상자, HBox, VBox, GridBox, 아코디언, 탭, 스택

알려진 제한 사항

  • 아직 지원되지 않는 항목은 다음과 같습니다. 다음 해결 방법을 사용할 수 있습니다.

    기능 해결 방법
    출력 위젯 print() 함수를 대신 사용하여 텍스트를 stdout으로 작성할 수 있습니다.
    widgets.jslink() widgets.link() 함수를 사용하여 두 개의 유사한 위젯을 연결할 수 있습니다.
    FileUpload 위젯 아직 지원되지 않습니다.
  • Fabric 전역 display 함수는 한 번의 호출에서 여러 위젯 표시를 지원하지 않습니다(예: display(a, b)). 이 동작은 IPython display 함수와 다릅니다.

  • IPython 위젯이 포함된 Notebook을 닫으면 해당 셀을 다시 실행할 때까지 위젯을 볼 수 없고 위젯과 상호 작용할 수도 없습니다.

  • 상호 작용 함수(ipywidgets.interact)는 지원되지 않습니다.

Notebook을 통합하다

매개 변수 셀 지정

Notebook을 매개변수로 설정하려면 셀 툴바에서 줄임표(...)를 선택하여 추가 옵션 명령에 액세스하세요. 그런 다음, 매개 변수 셀 설정/해제를 선택하여 셀을 매개 변수 셀로 지정합니다.

매개 변수 셀 토글 옵션을 선택할 수 있는 위치를 보여 주는 스크린샷

매개변수 셀은 파이프라인에 노트북을 통합하는 데 매우 유용합니다. 파이프라인 활동은 매개 변수 셀을 찾고 이 셀을 실행 시점에 전달된 매개 변수의 기본값으로 처리합니다. 실행 엔진은 기본값을 덮어쓰기 위해 입력 매개 변수가 있는 매개 변수 셀 아래에 새 셀을 추가합니다.

파이프라인에서 매개 변수 값 할당

매개 변수를 사용하여 Notebook을 만든 후에는 Fabric Notebook 활동을 사용하여 파이프라인에서 이를 실행할 수 있습니다. 파이프라인 캔버스에 작업을 추가한 후 설정 탭의 기본 매개 변수 섹션에서 매개 변수 값을 설정할 수 있습니다.

파이프라인에서 매개 변수 값을 할당할 위치를 보여 주는 스크린샷

매개 변수 값을 할당하는 경우 파이프라인 식 언어 또는 함수 및 변수를 사용할 수 있습니다.

Spark 세션 구성 매직 명령

매직 명령 %%configure를 사용하여 Spark 세션을 개인 설정할 수 있습니다. Fabric Notebook은 사용자 지정된 vCore, 드라이버 및 실행기의 메모리, Apache Spark 속성, 탑재 지점, 풀 및 Notebook 세션의 기본 레이크하우스를 지원합니다. 대화형 노트북 및 파이프라인 노트북 활동 모두에서 사용할 수 있습니다. Notebook의 시작 부분에서 %%configure 명령을 실행하거나 Spark 세션을 다시 시작하여 설정을 적용하는 것이 좋습니다.

%%configure
{
    // You can get a list of valid parameters to config the session from https://github.com/cloudera/livy#request-body.
    "driverMemory": "28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g"]
    "driverCores": 4, // Recommended values: [4, 8, 16, 32, 64]
    "executorMemory": "28g",
    "executorCores": 4,
    "jars": ["abfs[s]: //<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar", "wasb[s]: //<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
    "conf":
    {
        // Example of customized property, you can specify count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
        "livy.rsc.sql.num-rows": "3000",
        "spark.log.level": "ALL"
    },
    "defaultLakehouse": {  // This overwrites the default lakehouse for current session
        "name": "<lakehouse-name>",
        "id": "<(optional) lakehouse-id>",
        "workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
    },
    "mountPoints": [
        {
            "mountPoint": "/myMountPoint",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
        },
        {
            "mountPoint": "/myMountPoint1",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
        },
    ],
    "environment": {
        "id": "<environment-id>",
        "name": "<environment-name>"
    },
    "sessionTimeoutInSeconds": 1200,
    "useStarterPool": false,  // Set to true to force using starter pool
    "useWorkspacePool": "<workspace-pool-name>"
}

비고

  • %%configure에서 "DriverMemory" 및 "ExecutorMemory"에 대해 동일한 값을 설정하는 것이 좋습니다. "driverCores" 및 "executorCores" 값도 동일해야 합니다.
  • "defaultLakehouse"는 레이크하우스 탐색기에서 핀으로 고정해놓은 레이크하우스를 대체하지만, 이것은 현재 Notebook 세션에서만 작동합니다.
  • 패브릭 파이프라인에서 %%configure 사용할 수 있지만 첫 번째 코드 셀에 설정되지 않은 경우 세션을 다시 시작할 수 없으므로 파이프라인 실행이 실패합니다.
  • notebookutils.notebook.run에서 사용되는 %%configure는 무시되지만 %run Notebook에서 사용되는 작업은 계속 실행됩니다.
  • 표준 Spark 구성 속성은 "conf" 본문에서 사용해야 합니다. Fabric은 Spark 구성 속성에 대한 첫 번째 수준 참조를 지원하지 않습니다.
  • 일부 특수 Spark 속성, 즉 "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", "spark.executor.memory", "spark.executor.instances"는 "conf" 본문에 적용되지 않습니다.

파이프라인의 매개 변수가 있는 세션 구성

매개 변수화된 세션 구성을 사용하면 %%configure 매직의 값을 파이프라인 실행Notebook 작업 매개 변수로 바꿀 수 있습니다. %%configure 코드 셀을 준비할 때 다음과 같은 개체를 사용하여 기본값(아래 예제에서 4 및 "2000"도 구성 가능)을 재정의할 수 있습니다.

{
      "parameterName": "paramterNameInPipelineNotebookActivity",
      "defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
} 
%%configure  

{ 
    "driverCores": 
    { 
        "parameterName": "driverCoresFromNotebookActivity", 
        "defaultValue": 4 
    }, 
    "conf": 
    { 
        "livy.rsc.sql.num-rows": 
        { 
            "parameterName": "rows", 
            "defaultValue": "2000" 
        } 
    } 
} 

대화형 모드에서 Notebook을 직접 실행하거나 파이프라인 Notebook 작업에서 "activityParameterName"과 일치하는 매개 변수가 제공되지 않는 경우 Notebook은 기본값을 사용합니다.

파이프라인 실행 모드에서 아래와 같이 파이프라인 Notebook 활동 설정을 구성할 수 있습니다.

매개 변수가 있는 세션을 구성할 위치를 보여 주는 스크린샷

세션 구성을 변경하려면 파이프라인 Notebook 작업 매개 변수의 이름이 Notebook에서 parameterName과 동일해야 합니다. 파이프라인을 실행하는 이 예제에서는 %%configure의 driverCores에서 8로 대체되고 livy.rsc.sql.num-rows는 4000으로 대체됩니다.

비고

  • %%configure 매직 명령을 사용했기 때문에 파이프라인을 실행하지 못한 경우 Notebook의 대화형 모드에서 %%configure 매직 셀을 실행하여 더 많은 오류 정보를 확인하세요.
  • Notebook 예약 실행은 매개 변수화된 세션 구성을 지원하지 않습니다.

Notebook에서 Python 로깅

아래 샘플 코드에 따라 Python 로그를 찾고 다른 로그 수준과 형식을 설정할 수 있습니다.

import logging

# Customize the logging format for all loggers
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
    handler.setFormatter(formatter)

# Customize log level for all loggers
logging.getLogger().setLevel(logging.INFO)

# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)

# logger that use the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")

# logger that use the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")

입력 명령 기록 보기

Fabric Notebook은 현재 세션에서 실행된 입력 명령 기록을 인쇄하는 매직 명령 %history를 지원합니다. 이는 표준 Jupyter Ipython 명령과 비교하여 %history가 Notebook의 여러 언어 컨텍스트에서 작동합니다.

%history [-n] [range [range ...]]

옵션의 경우:

  • -n: 실행 번호를 인쇄합니다.

범위는 다음과 같을 수 있습니다:

  • N: N번째 실행된 셀의 코드를 인쇄합니다.
  • M-N: M번째부터 N번째까지 실행된 셀의 코드를 인쇄합니다.

예시:

  • 첫 번째 실행 셀부터 두 번째 실행 셀까지의 입력 내역 인쇄: %history -n 1-2

바로 가기 키

Jupyter Notebook과 마찬가지로 Fabric Notebook에는 모달 사용자 인터페이스가 있습니다. 키보드는 Notebook 셀이 있는 모드에 따라 다른 작업을 수행합니다. Fabric Notebook은 지정된 코드 셀에 대해 두 가지 모드(명령 모드 및 편집 모드)를 지원합니다.

  • 입력하라는 텍스트 커서가 없으면 셀은 명령 모드에 있습니다. 셀이 명령 모드에 있으면 Notebook을 전체적으로 편집할 수 있지만 개별 셀에는 입력할 수 없습니다. ESC 키를 누르거나 마우스를 사용하여 셀의 편집기 영역 외부를 선택하면 명령 모드로 전환됩니다.

    명령 모드의 셀 스크린샷

  • 편집 모드에서는 편집기 영역에 입력하라는 텍스트 커서가 표시됩니다. 셀이 편집 모드에 있으면 셀에 입력할 수 있습니다. Enter 키를 누르거나 마우스를 사용하여 셀의 편집기 영역을 선택하면 편집 모드로 전환됩니다.

    편집 모드의 셀 스크린샷.

명령 모드의 바로 가기 키

조치 노트북 바로가기
현재 셀을 실행하고 아래 선택 Shift+Enter
현재 셀을 실행하고 아래에 삽입 Alt+Enter
현재 셀 실행 Ctrl+Enter
위 셀 선택
아래 셀 선택 아래
이전 셀 선택 케이
다음 셀 선택 J
위에 셀 삽입 A
아래에 셀 삽입 b
선택한 셀 삭제 Shift + D (시프트 + D)
편집 모드로 전환 입력

편집 모드의 바로 가기 키

편집 모드에서 다음과 같은 키 입력 바로 가기를 사용하면 Fabric Notebook에서 보다 편리하게 코드를 탐색하고 실행할 수 있습니다.

조치 노트북 바로가기
커서 위로 이동
커서 아래로 이동 아래
취소 Ctrl+Z
다시 하다 Ctrl+Y
주석 달기 또는 해제 Ctrl + /
주석: Ctrl+K + C
주석 제거: Ctrl + K + U
이전 단어 삭제 Ctrl+백스페이스
다음 단어 삭제 Ctrl + Delete (키보드 단축키)
셀 시작으로 이동 Ctrl + Home (홈 키로 이동)
셀의 끝으로 이동 Ctrl+끝
한 단어 왼쪽으로 이동 Ctrl + 왼쪽
한 단어 오른쪽으로 이동 Ctrl + 오른쪽
모두 선택 Ctrl +A
들여쓰기 Ctrl+]
Dedent Ctrl+ [
명령 모드로 전환 Esc

모든 바로 가기 키를 찾으려면 Notebook 리본에서 보기를 선택한 다음 키 바인딩을 선택합니다.