다음을 통해 공유


Databricks Unity Catalog와 OneLake 통합

이 시나리오는 바로 가기를 사용하여 Unity Catalog 외부 델타 테이블을 OneLake에 통합하는 방법을 보여줍니다. 이 자습서를 완료하면 Unity Catalog 외부 델타 테이블을 Microsoft Fabric 레이크하우스에 자동으로 동기화할 수 있습니다.

필수 조건

연결하려면 다음 항목이 있어야 합니다.

클라우드 스토리지 연결 설정

먼저 Unity Catalog 테이블에서 사용 중인 ADLS Gen2(Azure Data Lake Storage Gen2)의 스토리지 위치를 검사합니다. 이 클라우드 스토리지 연결은 OneLake 바로 가기에서 사용됩니다. 적절한 Unity Catlog 스토리지 위치에 대한 클라우드 연결을 만들려면 다음을 수행합니다.

  1. Unity Catalog 테이블에서 사용하는 클라우드 스토리지 연결을 만듭니다. ADLS Gen2 연결을 설정하는 방법을 참조하세요.

  2. 연결을 만든 후에는 설정>연결 및 게이트웨이 관리>연결>설정을 선택하여 연결 ID를 가져옵니다.

ADLS Gen2 연결 ID를 보여 주는 스크린샷입니다.

참고 항목

사용자에게 ADLS Gen2의 외부 위치 스토리지에 대한 직접 스토리지 수준 액세스 권한을 부여해도 Unity Catalog에서 부여된 권한 또는 유지 관리하는 감사는 적용되지 않습니다. 직접 액세스는 액세스 제어 및 권한을 포함하여 Unity Catalog의 감사, 계보 및 기타 보안/모니터링 기능을 건너뜁니다. ADLS Gen2를 통해 직접 스토리지 액세스를 관리하고 사용자에게 Fabric을 통해 부여된 적절한 권한이 있는지 확인할 책임이 있습니다. Databricks 관리형 테이블을 저장하는 버킷에 대해 직접 스토리지 수준 쓰기 액세스 권한을 부여하는 모든 시나리오를 방지합니다. 원래 Unity Catalog에서 관리했던 스토리지를 통해 개체를 직접 수정, 삭제 또는 발전시키면 데이터가 손상될 수 있습니다.

노트북 실행

클라우드 연결 ID를 가져오면 다음과 같이 Unity Catalog 테이블을 Fabric 레이크하우스에 통합합니다.

Unity Catalog에서 Fabric으로의 바로 가기 흐름을 보여 주는 스크린샷입니다.

  1. Fabric 작업 영역으로 동기화 노트북을 불러옵니다. 이 노트북 은 메타스토어에 지정된 Catalog 및 스키마에서 모든 Unity Catalog 테이블 메타데이터를 내보냅니다.

  2. 노트북의 첫 번째 셀에 있는 매개 변수를 구성하여 Unity Catalog 테이블을 통합합니다. PAT 토큰을 통해 인증된 Databricks API는 Unity Catalog 테이블을 내보내는 데 활용됩니다. 다음 코드 조각은 원본(Unity Catalog) 및 대상(OneLake) 매개 변수를 구성하는 데 사용됩니다. 변수를 나만의 값으로 대체해야 합니다.

    # Databricks workspace
    dbx_workspace = "<databricks_workspace_url>"
    dbx_token = "<pat_token>"
    # Unity Catalog
    dbx_uc_catalog = "catalog1"
    dbx_uc_schemas = '["schema1", "schema2"]'
    
    # Fabric
    fab_workspace_id = "<workspace_id>"
    fab_lakehouse_id = "<lakehouse_id>"
    fab_shortcut_connection_id = "<connection_id>"
    # If True, UC table renames and deletes will be considered
    fab_consider_dbx_uc_table_changes = True
    
  3. 노트북의 모든 셀을 실행해 바로 가기를 사용하여 Unity Catalog 델타 테이블을 OneLake에 동기화하기 시작합니다. 노트북이 완료되면 레이크하우스, SQL 분석 엔드포인트 및 의미 체계 모델에서 Unity Catalog 델타 테이블에 대한 바로 가기를 사용할 수 있습니다.

노트북 예약

수동으로 다시 동기화/다시 실행하지 않고 정기적으로 Notebook을 실행하여 Unity 카탈로그 델타 테이블을 OneLake에 통합하려는 경우 Notebook을 예약 하거나 Fabric Data Factory 내의 파이프라인에서 Notebook 작업을 활용할 수 있습니다.

후자의 시나리오에서 파이프라인에서 매개 변수를 전달하려는 경우 Notebook의 첫 번째 셀 을 토글 매개 변수 셀 로 지정하고 파이프라인에 적절한 매개 변수를 제공합니다.

노트북 활동 매개 변수를 보여 주는 스크린샷입니다.

기타 고려 사항

  • 프로덕션 시나리오의 경우 인증에 Databricks OAuth를 사용하고 Azure Key Vault를 사용하여 비밀을 관리하는 것이 좋습니다. 예를 들어 MSSparkUtils 자격 증명 유틸리티를 사용하여 Key Vault 비밀에 액세스할 수 있습니다.
  • 노트북은 Unity Catalog 외부 델타 테이블에서 작동합니다. Unity Catalog 테이블에 여러 개의 클라우드 스토리지 위치(예: 둘 이상의 ADLS Gen2)를 사용하고 있다면 각 클라우드 연결을 통해 노트북을 별도로 실행하는 것이 좋습니다.
  • Unity Catalog 관리형 델타 테이블, 보기, 구체화된 보기, 스트리밍 테이블 및 비델타 테이블은 지원되지 않습니다.
  • 열 추가/삭제와 같은 Unity Catalog 테이블 스키마의 변경 내용은 바로 가기에 자동으로 반영됩니다. 그러나 Unity Catalog 테이블 이름 바꾸기 및 삭제와 같은 일부 업데이트에는 노트북 재동기화/재실행이 필요합니다. fab_consider_dbx_uc_table_changes 매개 변수가 이를 취급합니다.
  • 시나리오 작성의 경우 여러 컴퓨팅 엔진에서 동일한 스토리지 계층을 사용하면 의도하지 않은 결과가 발생할 수 있습니다. 다른 Apache Spark 컴퓨팅 엔진 및 런타임 버전을 사용할 때 영향을 파악해야 합니다.