파이프라인을 사용하여 작업 영역 간 통신을 설정할 수 있습니다. 즉, 열린 작업 영역과 인바운드 공용 액세스를 제한하는 작업 영역 사이에서 이렇게 할 수 있습니다. 예를 들어 열려 있는 작업 영역에서 파이프라인을 만들어 인바운드 제한된 작업 영역의 레이크하우스에 액세스할 수 있습니다. 이 설정을 사용하면 작업 영역 1의 Notebook이 공용 액세스에 노출하지 않고도 Lakehouse에 안전하게 액세스하고 작업 영역 2의 Delta Lake 테이블을 읽을 수 있습니다.
1단계: 작업 영역 만들기
열려 있는 작업 영역과 제한된 작업 영역이 모두 필요합니다. 이 문서에서는 다음과 같이 작업 영역을 참조합니다.
- 원본 작업 영역은 공용 액세스 제한 없이 열린 작업 영역입니다. 파이프라인을 만드는 위치입니다.
- 대상 작업 영역은 인바운드 공용 액세스 제한이 있는 제한된 작업 영역입니다. 레이크하우스를 만드는 곳입니다.
작업 영역을 만들려면 다음 단계를 수행합니다.
Microsoft Fabric에서 두 개의 작업 영역을 만듭니다. 자세한 내용은 작업 영역 만들기를 참조하세요.
테넌트 설정에서 작업 영역 수준 인바운드 액세스 보호를 사용하도록 설정합니다.
대상 작업 영역의 경우 작업 영역 수준 프라이빗 링크를 설정합니다.
2단계: 제한된 작업 영역에서 레이크하우스 만들기
다음 Lakehouse 만들기 API를 사용하여 대상(제한된) 작업 영역에 Lakehouse를 만듭니다.
POST https://{workspaceid}.z{xy}.w.api.fabric.microsoft.com/workspaces/{workspaceID}/lakehouses
3단계: 관리되는 프라이빗 엔드포인트 만들기
원본(열린) 작업 영역에서 관리형 프라이빗 엔드포인트를 만듭니다. 포털 또는 다음 API에서 작업 영역 설정을 사용합니다.
POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/managedPrivateEndpoints
이 코드에서는 {workspaceFQDN} .입니다 {workspaceID}.z{xy}.w.api.fabric.microsoft.com.
예: POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/managedPrivateEndpoints.
targetPrivateLinkResourceId 매개 변수는 제한된 작업 영역에서 Azure Private Link 서비스의 리소스 ID입니다. 대상 작업 영역에 관리되는 프라이빗 엔드포인트를 만들려면 이 리소스 ID가 필요합니다.
작업 영역에 대한 리소스 JSON을 확인하여 Azure에서 이 리소스 ID를 찾을 수 있습니다. JSON의 작업 영역 ID가 의도한 대상 작업 영역과 일치하는지 확인합니다.
작업 영역 2의 Private Link 서비스 소유자는 Azure 프라이빗 링크 센터>보류 중인 연결에서 관리되는 프라이빗 엔드포인트에 대한 요청을 승인해야 합니다.
4단계: 레이크하우스에 Delta Lake 테이블 업로드
Azure Storage Explorer를 사용하여 Delta Lake 테이블의 폴더를 제한된 레이크하우스의 관리 스토리지에 업로드합니다.
Storage Explorer로 이동하여 왼쪽 메뉴에서 연결 아이콘을 선택한 다음 , ADLS Gen2 컨테이너 또는 디렉터리를 선택합니다.
OAuth를 사용하여 로그인합니다.
스토리지의 표시 이름을 입력하고 다음 형식으로 Blob 컨테이너 URL을 입력합니다.
https://{workspaceID}.z{xy}.onelake.fabric.microsoft.com/{workspaceID}/{lakehouseID}이 코드
workspaceID에서는 대시가 없는 작업 영역 ID이며{xy}작업 영역 ID의 처음 두 문자입니다.연결을 선택합니다. 이제 스토리지가 탐색기 보기에 표시됩니다.
테이블 폴더에서 사용하려는 Delta Lake 테이블을 업로드합니다. 이 예제에서는 고객 테이블을 사용합니다.
5단계: 제한된 작업 영역에서 Notebook 만들기
테이블에서 읽고 새 테이블에 쓰는 Notebook을 만듭니다. 이렇게 하려면 UI를 사용하여 열려 있는 작업 영역에서 Notebook을 만듭니다.
열린 작업 공간에서 UI를 사용하여 동일한 테이블과 유사한 노트북을 통해 레이크하우스를 만드세요.
Notebook에서 Lakehouse를 연결하고 새 테이블을 만들기 위한 스크립트를 실행합니다.
df = spark("SELECT * FROM Lakehouse_Open.customers") display(df) df.write.mode("overwrite").saveAsTable("Lakehouse_Open.customersnew")전자 필기장을 저장합니다.
API를 통해 Notebook 정의를 검색하고 위치 결과를 가져옵니다.
Get Notebook Definition API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks/getDefinition Get location API: GET {location}/resultBase64에서 JSON으로
notebook-content.py을 변환하고, 변환된 콘텐츠를 복사한 다음 제한된 레이크하우스의 값으로 다음 값을 업데이트한 후 콘텐츠를 JSON에서 Base64로 다시 변환합니다.업데이트된 요청 본문을 사용하여 정의가 포함된 Notebook을 만듭니다.
Create Notebook API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks Get location API: GET {location}/result
6단계: 열려 있는 작업 영역에서 파이프라인 만들기
열려 있는 작업 영역에서 패브릭 포털 또는 API를 사용하여 파이프라인을 만듭니다.
노트북 활동을 추가하세요.
설정에서 연결을 만듭니다.
제한된 작업 영역을 선택합니다.
Notebook ID를 매개 변수로 추가합니다.
@pipeline().parameters.notebookId파이프라인 매개 변수에 제한된 작업 영역의 실제 Notebook ID를 입력합니다.
파이프라인을 저장하고 파이프라인 ID를 복사합니다.
7단계: API를 통해 파이프라인 실행
API를 사용하여 파이프라인을 트리거합니다. 예를 들어 Bruno를 사용합니다.
파이프라인 실행에 대한 API 엔드포인트의 형식은 다음과 같습니다.
https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{openWsId}/items/{pipelineId}/jobs/instances?jobType=Pipeline` Get location API: GET {location}실행 상태가 완료되기를 기다립니다. 패브릭 포털의 모니터 페이지에서 상태를 확인할 수 있습니다.
8단계: 테이블 만들기 확인
제한된 작업 영역의 레이크하우스에서 Storage Explorer를 엽니다.
새 테이블이 만들어졌는지 확인합니다.
테이블 목록 API를 사용하여 레이크하우스 테이블을 가져옵니다.
List Tables API: GET https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/tables