적용 대상:✅ Microsoft Fabric의 데이터 엔지니어링 및 데이터 과학
Lakehouse를 만들어 패브릭 데이터 엔지니어링용 Livy API를 시작합니다. Microsoft Entra 토큰으로 인증; Livy API 엔드포인트를 검색합니다. 원격 클라이언트에서 Fabric Spark 컴퓨팅으로 일괄 처리 또는 세션 작업을 제출합니다. 및 결과를 모니터링합니다.
중요합니다
이 기능은 프리뷰 상태입니다.
필수 조건
LakeHouse를 사용하는 패브릭 프리미엄 또는 평가판 용량
Livy API(미리 보기)를 위한 테넌트 관리자 설정 활성화
Jupyter Notebook을 지원하는 Visual Studio Code, PySpark 및 Python용 MSAL(Microsoft 인증 라이브러리)과 같은 원격 클라이언트
Microsoft Entra 앱 토큰 중 하나. Microsoft ID 플랫폼을 사용하여 애플리케이션 등록
또는 Microsoft Entra SPN 토큰입니다. Microsoft Entra ID에서 애플리케이션 자격 증명 추가 및 관리
REST API 클라이언트 선택
다양한 프로그래밍 언어 또는 GUI 클라이언트를 사용하여 REST API 엔드포인트와 상호 작용할 수 있습니다. 이 글에서는 Visual Studio Code
Entra SPN 토큰을 사용하여 Livy API 요청에 권한을 부여하는 방법
Livy API를 포함한 패브릭 API를 사용하려면, 먼저 Microsoft Entra 애플리케이션을 만들고 비밀 키를 생성한 뒤, 코드에서 해당 비밀 키를 사용해야 합니다. Fabric에 대한 API 호출을 수행하려면 애플리케이션을 등록하고 적절하게 구성해야 합니다. 자세한 내용은 Microsoft Entra ID에서 애플리케이션 자격 증명 추가 및 관리를 참조하세요.
앱 등록을 만든 후 클라이언트 암호를 만듭니다.
클라이언트 암호를 만들 때 값을 복사해야 합니다. 코드의 뒷부분에서 이 값이 필요하며 비밀을 다시 볼 수 없습니다. 또한 코드의 비밀 외에도 애플리케이션(클라이언트) ID와 디렉터리(테넌트 ID)가 필요합니다.
다음으로 작업 영역에 클라이언트 비밀을 추가해야 합니다.
Entra 클라이언트 암호를 검색하고 해당 비밀을 작업 영역에 추가하고 새로 추가된 비밀에 관리자 권한이 있는지 확인합니다.
Entra 앱 토큰을 사용하여 Livy API 요청에 권한을 부여하는 방법
Livy API를 포함한 패브릭 API를 사용하려면 먼저 Microsoft Entra 애플리케이션을 만들고 토큰을 가져와야 합니다. Fabric에 대한 API 호출을 수행하려면 애플리케이션을 등록하고 적절하게 구성해야 합니다. 자세한 내용은 Microsoft ID 플랫폼을 사용하여 애플리케이션 등록을 참조하세요.
Livy 작업을 실행하는 데 필요한 많은 Microsoft Entra 범위 권한이 있습니다. 이 예제에서는 간단한 Spark 코드 + 스토리지 액세스 + SQL을 사용합니다.
Code.AccessAzureDataExplorer.All
코드.AccessAzureDataLake.전체
코드.액세스Azure키보관소.전체
Code.AccessFabric.All
코드.액세스저장소.모두
아이템.읽기쓰기.전체
레이크하우스.실행.전체
작업 공간. 읽기쓰기. 전체
참고
공개 미리 보기 중에 몇 가지 세부적인 범위를 추가하면 이러한 범위가 변경 될 수 있습니다. 이러한 범위 변경이 발생하면 Livy 앱이 중단되었을 수 있습니다. 이 목록은 추가 범위로 업데이트되므로 확인합니다.
일부 고객은 이전 목록보다 더 세부적인 권한을 원합니다. Item.ReadWrite.All을 제거하고 이러한 보다 세부적인 범위 권한으로 바꿀 수 있습니다.
- Code.AccessAzureDataExplorer.All
- 코드.AccessAzureDataLake.전체
- 코드.액세스Azure키보관소.전체
- Code.AccessFabric.All
- 코드.액세스저장소.모두
- 레이크하우스.실행.전체
- Lakehouse.ReadWrite.All
- 작업 공간. 읽기쓰기. 전체
- Notebook.ReadWrite.All (노트북 읽기 및 쓰기 권한 전체)
- SparkJobDefinition.ReadWrite.All
- MLModel.ReadWrite.All
- MLExperiment.ReadWrite.All
- 데이터셋.읽기쓰기.전체
애플리케이션을 등록할 때 애플리케이션(클라이언트) ID와 디렉터리(테넌트) ID가 모두 필요합니다.
Livy API를 호출하는 인증된 사용자는 API 및 데이터 원본 항목이 참가자 역할과 함께 있는 작업 영역 멤버여야 합니다. 자세한 내용은 사용자에게 작업 영역에 대한 액세스 권한 부여를 참조하세요.
Fabric Livy API 엔드포인트를 검색하는 방법
Livy 엔드포인트에 액세스하려면 Lakehouse 아티팩트가 필요합니다. Lakehouse가 만들어지면 설정 패널 내에 Livy API 엔드포인트를 배치할 수 있습니다.
Livy API의 엔드포인트는 다음 패턴을 따릅니다.
https://api.fabric.microsoft.com/v1/workspaces/><ws_id>/lakehouses/<lakehouse_id>/livyapi/versions/2023-12-01/
URL에는 선택한 항목에 따라 세션< 또는 배치>가 덧붙여집니다.
Livy API Swagger 파일 다운로드
Livy API의 전체 swagger 파일은 여기에서 확인할 수 있습니다.
Livy API 작업 제출
이제 Livy API 설정이 완료되었으므로 일괄 처리 또는 세션 작업을 제출하도록 선택할 수 있습니다.
패브릭 환경과 통합
기본적으로 이 Livy API 세션은 작업 영역에 대한 기본 시작 풀에 대해 실행됩니다. 또는 패브릭 환경 만들기, 구성 및 Microsoft Fabric의 환경을 사용하여 Livy API 세션에서 이러한 Spark 작업에 사용하는 Spark 풀을 사용자 지정할 수 있습니다.
Livy Spark 세션에서 패브릭 환경을 사용하려면 이 페이로드를 포함하도록 json을 업데이트하기만 하면됩니다.
create_livy_session = requests.post(livy_base_url, headers = headers, json={
"conf" : {
"spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID""}"}
}
)
Livy Spark 일괄 처리 세션에서 패브릭 환경을 사용하려면 아래와 같이 json 페이로드를 업데이트하기만 하면됩니다.
payload_data = {
"name":"livybatchdemo_with"+ newlakehouseName,
"file":"abfss://YourABFSPathToYourPayload.py",
"conf": {
"spark.targetLakehouse": "Fabric_LakehouseID",
"spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID"\"}" # remove this line to use starter pools instead of an environment, replace "EnvironmentID" with your environment ID
}
}
요청 기록을 모니터링하는 방법
모니터링 허브를 사용하여 이전 Livy API 제출을 확인하고 제출 오류를 디버그할 수 있습니다.