다음을 통해 공유


Notebook에서 Python 환경 사용

메모

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

Python Notebook은 Fabric Notebook을 기반으로 구축된 새로운 환경입니다. 데이터 분석, 시각화 및 기계 학습을 위해 설계된 다재다능하고 대화형 도구입니다. Python 코드를 작성하고 실행하기 위한 원활한 개발 환경을 제공합니다. 따라서 데이터 과학자, 분석가 및 BI 개발자, 특히 빅 데이터 및 분산 컴퓨팅이 필요하지 않은 탐색 작업에 필수적인 도구입니다.

Python Notebook을 사용하면 다음을 얻을 수 있습니다.

  • 여러 기본 제공 Python 커널: Python 노트북은 Spark 없이 순수 Python 코딩 환경을 제공하며, 기본적으로 사용할 수 있는 Python 커널의 두 가지 버전 - Python 3.10 및 3.11과 지원되는 네이티브 ipython 기능 (예: iPyWidget, 매직 명령)을 제공합니다.

  • 비용 효율적인: 새 Python Notebook은 기본적으로 2vCore/16GB 메모리가 있는 단일 노드 클러스터에서 실행하여 비용 절감 혜택을 제공합니다. 이렇게 하면 데이터 크기가 더 작은 데이터 탐색 프로젝트에 대한 효율적인 리소스 사용률을 보장합니다.

  • Lakehouse & 리소스는 네이티브로 제공됩니다: Fabric Lakehouse와 Notebook에 내장된 리소스의 모든 기능은 Python Notebook에서 사용할 수 있습니다. 이 기능을 사용하면 사용자가 데이터를 Python Notebook으로 쉽게 가져올 수 있습니다. 그냥 &를 끌어다가 놓아서 코드 조각을 얻어보세요.

  • 프로그래밍과 T-SQL의 결합: Python Notebook은 notebookutils 데이터 커넥터를 사용하여 Python 컨텍스트에서 T-SQL 스크립트를 쉽게 실행할 수 있게 해 주며, 이를 통해 탐색기에서 데이터 웨어하우스 및 SQL 엔드포인트와 쉽게 상호 작용할 수 있는 방법을 제공합니다.

  • 인기 있는 데이터 분석 라이브러리지원: Python Notebook에는 DuckDB, Polars 및 Scikit-learn과 같은 사전 설치된 라이브러리가 함께 제공되어 데이터 조작, 분석 및 기계 학습을 위한 포괄적인 도구 키트를 제공합니다.

  • 고급 인텔리센스: Python Notebook은 다른 Microsoft Fabric 사용자 지정 언어 서비스와 함께 Pylance를 인텔리센스 엔진으로 채택하여 노트북 개발자에게 최첨단 코딩 환경을 제공하는 것을 목표로 합니다.

  • NotebookUtils & 시맨틱 링크: 강력한 API 도구 키트를 사용하면 코드 우선 환경에서 패브릭과 Power BI 기능을 쉽게 활용할 수 있습니다.

  • 다양한 시각화 기능: 인기 있는 리치 데이터 프레임 미리 보기 'Table' 함수 및 'Chart' 함수를 제외하고 Matplotlib, Seaborn 및 Plotly와 같은 인기 있는 시각화 라이브러리도 지원합니다. 또한 PowerBIClient는 사용자가 데이터 패턴 및 인사이트를 더 잘 이해할 수 있도록 이러한 라이브러리를 지원합니다.

  • Fabric Notebook의 공통 기능: 모든 노트북 수준 기능은 편집 기능, 자동 저장, 협업, 공유 및 권한 관리, Git 통합, 가져오기/내보내기 등을 포함하여 Python 노트북에 원활하게 적용됩니다.

  • 전체 스택 데이터 과학 기능: 고급 로우 코드 도구 키트 데이터 랭글러, 기계 학습 프레임워크 MLFlow 및 강력한 Copilot는 모두 Python Notebook에서 사용할 수 있습니다.

Python Notebook에 액세스하는 방법

패브릭 Notebook을 연 후, 탭의 언어 드롭다운 메뉴에서 Python으로 전환하여 전체 Notebook 구성을 Python으로 변환할 수 있습니다.

Notebook 언어 메뉴에서 Python으로의 전환을 보여 주는 스크린샷

대부분의 일반적인 기능은 전자 필기장 수준에서 지원됩니다. 자세한 사용 방법을 알아보려면 Microsoft Fabric 전자 필기장을 사용하는 방법Microsoft Fabric 전자 필기장을 개발, 실행 및 관리하는 법을 참조하십시오. 여기서는 Python 시나리오와 관련된 몇 가지 주요 기능을 나열합니다.

파이썬 노트북 실행

Python Notebook은 다음과 같은 여러 작업 실행 방법을 지원합니다.

  • 대화형 실행: 네이티브 Jupyter Notebook처럼 대화형으로 Python Notebook을 실행할 수 있습니다.
  • 예약 실행: 노트북 설정 페이지에서 경량 스케줄러 환경을 사용하여 Python 노트북을 배치 작업으로 실행할 수 있습니다.
  • 파이프라인 실행: Python 노트북을 데이터 파이프라인의 노트북 활동으로 오케스트레이션할 수 있습니다. 스냅샷은 작업 실행 후에 생성됩니다.
  • 참조 실행: 다른 Python 노트북에서 notebookutils.notebook.run() 또는 notebookutils.notebook.runMultiple()을 사용하여 Python 노트북을 실행하고 일괄 작업으로 참조할 수 있습니다. 참조 실행이 완료된 후 스냅샷이 생성됩니다.
  • 공용 API 실행: Python Notebook 실행을 Notebook 실행 공용 API를 사용하여 예약할 수 있습니다. 공용 API 페이로드의 Notebook 메타데이터에 있는 언어 및 커널 속성이 올바르게 설정되었는지 확인하세요.

리본 탭에서 실행 ->모든 실행보기를 통해 Python 노트북 작업의 실행 세부 정보를 모니터링할 수 있습니다.

데이터 상호 작용

Python Notebook에서 Lakehouse, Warehouse, SQL 엔드포인트 및 기본 제공 리소스 폴더와 상호 작용할 수 있습니다.

레이크하우스 상호 작용

Lakehouse를 기본 설정으로 지정하거나 여러 Lakehouse를 추가하여 전자 필기장에서 탐색하고 사용할 수도 있습니다.

데이터 객체를 읽는 것에 익숙하지 않다면, 델타 테이블파일과 델타 테이블을 노트북 캔버스로 끌어다 놓거나, 개체의 드롭다운 메뉴에서 데이터 로드 를 사용해보세요. Notebook은 코드 셀에 코드 조각을 자동으로 삽입하고 대상 데이터 개체를 읽기 위한 코드를 생성합니다.

메모

대량의 데이터를 로드할 때 메모리 부족(OOM)이 발생하는 경우 pandas 대신 DuckDB, Polars 또는 PyArrow 데이터 프레임을 사용해 보세요.

코드 조각 찾아보기 -에서 Lakehouse 쓰기 작업을 찾을 수 있습니다 - 델타 테이블에 데이터 쓰기>.

레이크하우스 쓰기 작업을 보여주는 스크린샷

T-SQL과 웨어하우스 상호 작용 및 혼합 프로그래밍

Notebook의 웨어하우스 탐색기에서 데이터 웨어하우스 또는 SQL 엔드포인트를 추가할 수 있습니다. 마찬가지로 테이블을 Notebook 캔버스로 끌어서 놓거나 테이블 드롭다운 메뉴에서 바로 가기 옵션을 사용할 수 있습니다. Notebook은 당신을 위해 자동으로 코드 스니펫을 생성합니다. notebookutils.data 유틸리티 사용하여 웨어하우스와의 연결을 설정하고 Python 컨텍스트에서 T-SQL 문을 사용하여 데이터를 쿼리할 수 있습니다.

창고 테이블 바로가기를 보여 주는 스크린샷

메모

SQL 엔드포인트는 여기에서 읽기 전용입니다.

노트북 리소스 폴더

기본 제공 리소스 폴더를 Notebook 리소스는 Python Notebook에서 기본적으로 사용할 수 있습니다. 로컬 파일 시스템으로 작업하는 것처럼 Python 코드를 사용하여 기본 제공 리소스 폴더의 파일과 쉽게 상호 작용할 수 있습니다. 현재 환경 리소스 폴더는 지원되지 않습니다.

커널 작업

Python Notebook은 현재 두 개의 기본 제공 커널을 지원하며, Python 3.10, Python 3.11을(를) 지원합니다. 기본적으로 선택된 커널은 Python 3.11입니다. 당신은 쉽게 그들 사이를 전환 할 수 있습니다.

리본 메뉴의 탭에서 커널을 중단, 다시 시작 또는 전환할 수 있습니다. Python Notebook에서 커널을 중단하는 것은 Spark Notebook의 셀을 취소하는 것과 같습니다.

커널 작업을 보여주는 스크린샷

비정상적인 커널 종료로 인해 코드 실행이 중단되고 변수가 손실되지만 Notebook 세션이 중지되지는 않습니다.

커널이 사망할 수 있는 명령이 있습니다. 예를 들어, quit(), exit().

라이브러리 관리

인라인 설치에 %pip%conda 명령을 사용할 수 있으며 명령은 공용 라이브러리와 사용자 지정된 라이브러리를 모두 지원합니다.

사용자 지정된 라이브러리의 경우 lib 파일을 기본 제공 리소스 폴더에 업로드할 수 있습니다. .whl, .jar, .dll, .py등과 같은 여러 형식의 라이브러리를 지원합니다.&끌어서 파일에 놓으면 코드 조각이 자동으로 생성됩니다.

업데이트된 패키지를 사용하려면 커널을 다시 시작해야 할 수 있습니다.

세션 구성 매직 명령어

Notebook에서 Spark 세션 구성 개인 설정과 마찬가지로 Python Notebook에서도 %%configure 사용할 수 있습니다. Python Notebook은 Notebook 세션의 컴퓨팅 노드 크기, 탑재 지점 및 기본 레이크하우스 사용자 지정을 지원합니다. 대화형 노트북 및 파이프라인 노트북 활동 모두에서 사용할 수 있습니다. Notebook의 시작 부분에 %%configure 명령을 사용하는 것이 좋습니다. 또는 설정을 적용하려면 Notebook 세션을 다시 시작해야 합니다.

Python Notebook %%configure지원되는 속성은 다음과 같습니다.

%%configure
{
    "vCores": 4, // Recommended values: [4, 8, 16, 32, 64], Fabric will allocate matched memory according to the specified vCores.
    "defaultLakehouse": {  
        // Will 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>"
        },
    ],
}

Notebook 상태 표시줄에서 컴퓨팅 리소스 업데이트를 보고 컴퓨팅 노드의 CPU 및 메모리 사용량을 실시간으로 모니터링할 수 있습니다.

컴퓨팅 리소스 업데이트를 보여 주는 스크린샷

NotebookUtils

Notebook 유틸리티(NotebookUtils)는 패브릭 Notebook에서 일반적인 작업을 쉽게 수행할 수 있도록 도와주는 기본 제공 패키지입니다. Python 런타임에 미리 설치됩니다. NotebookUtils를 사용하여 파일 시스템과 함께 작업하고, 환경 변수를 얻고, 노트북을 연동하여 작업하고, 외부 스토리지에 액세스하고, 비밀 정보를 관리할 수 있습니다.

사용하여 사용 가능한 API를 나열하고 메서드에 대한 도움말을 보거나 NotebookUtils문서를 참조할 수 있습니다.

데이터 유틸리티

메모

  • 현재 이 기능은 미리 보기로 제공됩니다.
  • API 계약은 가까운 장래에 변경될 수 있습니다.

notebookutils.data 유틸리티를 사용하여 제공된 데이터 원본과의 연결을 설정한 다음 T-SQL 문을 사용하여 데이터를 읽고 쿼리할 수 있습니다.

다음 명령을 실행하여 사용 가능한 메서드에 대한 개요를 가져옵니다.

notebookutils.data.help()

출력:

Help on module notebookutils.data in notebookutils:

NAME
    notebookutils.data - Utility for read/query data from connected data sources in Fabric

FUNCTIONS
    connect_to_artifact(artifact: str, workspace: str = '', artifact_type: str = None) -> pyodbc.Connection
        Establishes and returns an ODBC connection to a specified artifact within a workspace 
        for subsequent data queries using T-SQL.
        
        :param artifact: The name or ID of the artifact to connect to.
        :param workspace:  Optional; The workspace in which the provided artifact is located, if not provided,
                             use the workspace where the current notebook is located.
        :param artifactType: Optional; The type of the artifact, Currently supported type are Lakehouse, Warehouse and MirroredDatabase. 
                                If not provided, the method will try to determine the type automatically.
        :return: A connection object to the specified artifact.
        
        :raises UnsupportedArtifactException: If the specified artifact type is not supported to connect.
        :raises ArtifactNotFoundException: If the specified artifact is not found within the workspace.
        
        Examples:
            sql_query = "SELECT DB_NAME()"
            with notebookutils.data.connect_to_artifact("ARTIFACT_NAME_OR_ID", "WORKSPACE_ID", "ARTIFACT_TYPE") as conn:
                cursor = conn.cursor()
                cursor.execute(sql_query)
                rows = cursor.fetchall()
                for row in rows:
                    print(row)
    
    help(method_name=None)
        Provides help for the notebookutils.data module or the specified method.
        
        Examples:
        notebookutils.data.help()
        notebookutils.data.help("connect_to_artifact")
        :param method_name: The name of the method to get help with.

DATA
    __all__ = ['help', 'connect_to_artifact']

FILE
    /home/trusted-service-user/jupyter-env/python3.11/lib/python3.11/site-packages/notebookutils/data.py

Lakehouse에서 데이터 쿼리

conn = notebookutils.data.connect_to_artifact("lakehouse_name_or_id", "optional_workspace_id", "optional_lakehouse_type")

cursor = conn.cursor()
cursor.execute("SELECT * FROM sys.schemas;")
rows = cursor.fetchall()
for row in rows:
    print(row)

웨어하우스에서 데이터 쿼리

conn = notebookutils.data.connect_to_artifact("warehouse_name_or_id", "optional_workspace_id", "optional_warehouse_type")

cursor = conn.cursor()
cursor.execute("SELECT * FROM sys.schemas;")
rows = cursor.fetchall()
for row in rows:
    print(row)

메모

  • NotebookUtils의 데이터 유틸리티는 현재 Python Notebook에서만 사용할 수 있습니다.
  • 알려진 제한 사항: connect_to_artifact API의 경우 반환된 conn 개체는 내부적으로 PBI 토큰을 초기화하여 데이터 원본에 연결할 때 사용자를 인증합니다. 그러나 토큰 새로 고침은 지원하지 않습니다. 현재 PBI 토큰은 1시간 동안만 유효하며, 1시간을 초과하는 쿼리는 토큰 만료 문제로 인해 실패합니다.

코드 조각 찾아보기

편집 탭에서 유용한 Python 코드 조각을 찾을 수 있습니다.>코드 조각 찾아보기새 Python 샘플을 사용할 수 있습니다. Python 코드 조각을 통해 학습함으로써 노트북 탐색을 시작할 수 있습니다.

Python 코드 조각을 찾아볼 위치를 보여 주는 스크린샷

의미 체계 링크는 기능을 사용하여 의미 체계 모델 Microsoft Fabric의 Synapse Data Science 간에 연결을 설정할 수 있는 기능입니다. 기본적으로 Python Notebook에서 지원됩니다. BI 엔지니어와 Power BI 개발자는 의미 체계 링크 연결을 사용하여 의미 체계 모델을 쉽게 관리할 수 있습니다. 의미 체계 링크에 대한 자세한 내용은 공용 문서 읽어보세요.

시각화

라이브러리를 사용하여 차트를 그리는 것 외에도 기본 제공 시각화 함수를 사용하면 DataFrames를 다양한 형식의 데이터 시각화로 전환할 수 있습니다. 데이터 프레임에서 display() 함수를 사용하여 풍부한 데이터 프레임 테이블 뷰 및 차트 뷰를 생성할 수 있습니다.

Python Notebook의 시각화 환경을 보여 주는 스크린샷

메모

차트 구성은 Python Notebook에 유지됩니다. 즉, 코드 셀을 다시 실행한 후 대상 데이터 프레임 스키마가 변경되지 않은 경우 저장된 차트는 계속 유지됩니다.

코드 인텔리센스

Python Notebook에 통합된 Pylance는 Python 코딩 환경을 향상시킵니다. Pylance는 Visual Studio Code의 Python에 대한 기본 언어 서비스 지원입니다. 키워드 강조 표시, 빠른 정보, 코드 완성, 매개 변수 정보 및 구문 오류 검색과 같은 사용하기 쉬운 함수를 많이 제공합니다. 또한 노트북이 길면 Pylance의 성능이 향상됩니다.

데이터 과학 기능

Microsoft Fabric 데이터 과학 설명서를 방문하여 패브릭의 데이터 과학 및 AI 환경에 대해 자세히 알아보세요. 여기서는 Python Notebook에서 기본적으로 지원되는 몇 가지 주요 데이터 과학 기능을 나열합니다.

  • 데이터 랭글러: 데이터 랭글러는 탐색적 데이터 분석을 위한 몰입형 인터페이스를 제공하는 노트북 기반 도구입니다. 이 기능은 그리드와 유사한 데이터 디스플레이를 동적 요약 통계, 기본 제공 시각화 및 일반적인 데이터 정리 작업의 라이브러리와 결합합니다. 데이터 정리, 데이터 변환 및 통합을 제공하여 데이터 랭글러를 사용하여 데이터 준비를 가속화합니다.

  • MLflow: 기계 학습 실험은 모든 관련 기계 학습 실행에 대한 조직 및 제어의 기본 단위입니다. 실행은 모델 코드의 단일 실행에 해당합니다.

  • Fabric 자동 로깅: Microsoft Fabric의 Synapse 데이터 과학에는 학습 중에 기계 학습 모델의 매개 변수, 메트릭 및 항목을 자동으로 기록하는 데 필요한 코드 양을 크게 줄이는 자동 로깅이 포함됩니다.

    자동 로깅은 MLflow 추적 기능을 확장합니다. 자동 로깅은 정확도, 손실, F1 점수 및 정의한 사용자 지정 메트릭을 비롯한 다양한 메트릭을 캡처할 수 있습니다. 개발자와 데이터 과학자는 자동 로깅을 사용하여 수동 추적 없이 다양한 모델 및 실험의 성능을 쉽게 추적하고 비교할 수 있습니다.

  • Copilot: 데이터 과학 (Data Science) 및 데이터 엔지니어링 (Data Engineering) Notebook용 Copilot은 데이터를 분석하고 시각화하는 데 도움이 되는 AI 도우미입니다. 레이크하우스 테이블, Power BI 데이터 세트 및 pandas/spark 데이터 프레임과 함께 작동하며, 노트북에서 직접 답변과 코드 조각을 제공합니다. Notebook에서 Copilot 채팅 패널과 Char-magics를 사용할 수 있으며, AI가 응답이나 코드를 제공하여 이를 notebook에 복사할 수 있습니다.

공개 미리 보기의 알려진 제한 사항

  • 라이브 풀 환경은 모든 Python Notebook 실행에 대해 보장되지 않습니다. Notebook 실행이 라이브 풀에 적중되지 않는 경우 세션 시작 시간이 최대 3분까지 걸릴 수 있습니다. Python Notebook 사용량이 증가함에 따라 지능형 풀링 방법은 수요를 충족시키기 위해 라이브 풀 할당을 점진적으로 늘릴 것입니다.

  • 환경 통합은 Python Notebook에서 공개 미리 보기로는 사용할 수 없습니다.

  • 지금은 세션 시간 제한을 설정할 수 없습니다.

  • Copilot는 Python Notebook에서 실행되지 않을 수 있는 Spark 문을 생성할 수 있습니다.

  • 현재 Python Notebook의 Copilot는 여러 지역에서 완전히 지원되지 않습니다. 배포 프로세스는 계속 진행 중입니다. 더 많은 지역에서 지원을 계속 롤아웃하므로 계속 지켜봐 주시기 바랍니다.