Unity 카탈로그 메타스토어 만들기

이 문서에서는 Unity 카탈로그 메타스토어를 만들고 작업 영역에 연결하는 방법을 보여 줍니다.

Important

Unity 카탈로그에 대해 자동으로 사용하도록 설정된 작업 영역의 경우 이 문서의 지침이 필요하지 않습니다. Databricks는 2023년 11월 9일에 자동으로 Unity 카탈로그에 새 작업 영역을 사용하도록 설정하기 시작했으며, 계정 간에 점진적으로 롤아웃이 진행되었습니다. 작업 영역이 있고 작업 영역 지역에 메타스토어가 아직 없는 경우에만 이 문서의 지침을 따라야 합니다. 메타스토어가 해당 지역에 이미 있는지 확인하려면 Unity 카탈로그의 자동 사용 설정을 참조하세요.

메타스토어는 Unity 카탈로그에서 데이터에 대한 최상위 컨테이너입니다. Unity 카탈로그 메타스토어에서는 보안 개체(예: 테이블, 볼륨, 외부 위치 및 공유)와 액세스 권한을 제어하는 권한에 대한 메타데이터를 등록합니다. 각 메타스토어는 데이터를 구성할 수 있는 3단계 네임스페이스(catalog.schema.table)를 노출합니다. 조직이 운영되는 각 지역에 대해 하나의 메타스토어가 있어야 합니다. Unity 카탈로그를 사용하려면 사용자가 해당 지역의 메타스토어에 연결된 작업 영역에 있어야 합니다.

metastore를 만들려면 다음을 수행합니다.

  1. Azure 계정에서 필요에 따라 관리되는 테이블 및 볼륨의 메타스토어 수준 스토리지에 대한 스토리지 위치를 만듭니다.

    메타스토어 수준 스토리지가 필요한지 여부를 결정하는 데 도움이 되는 자세한 내용은 (선택 사항) 메타스토어 수준 스토리지 만들기 및 데이터가 스토리지에 물리적으로 분리되어 있는지를 참조하세요.

  2. Azure 계정에서 해당 스토리지 위치에 대한 액세스를 제공하는 Azure 관리 ID를 만듭니다.

  3. Azure Databricks에서 metastore를 만들고, 스토리지 위치를 연결하고, 작업 영역을 metastore에 할당합니다.

참고 항목

이 문서에 설명된 방법 외에도 Databricks Terraform 공급자, 특히 databricks_metastore 리소스를 사용하여 메타스토어를 만들 수도 있습니다. Unity 카탈로그가 메타스토어에 액세스할 수 있도록 하려면 databricks_metastore_data_access를 사용합니다. 작업 영역을 메타스토어에 연결하려면 databricks_metastore_assignment를 사용합니다.

시작하기 전에

시작하기 전에 메타스토어 및 관리 스토리지를 비롯한 기본 Unity 카탈로그 개념을 숙지해야 합니다. Unity 카탈로그란?을 참조하세요.

또한 모든 설정 단계에 대해 다음 요구 사항을 충족하는지 확인해야 합니다.

  • Azure Databricks 계정 관리자여야 합니다.

    첫 번째 Azure Databricks 계정 관리자는 Azure Databricks 계정 콘솔에 처음 로그인할 때 Microsoft Entra ID(이전의 Azure Active Directory) Global 관리istrator여야 합니다. 처음 로그인하면 해당 사용자는 Azure Databricks 계정 관리자가 되며 더 이상 Azure Databricks 계정에 액세스하기 위해 Microsoft Entra ID Global 관리istrator 역할이 필요하지 않습니다. 첫 번째 계정 관리자는 Microsoft Entra ID 테넌트에서 사용자를 추가 계정 관리자(더 많은 계정 관리자를 할당할 수 있는 사용자)로 할당할 수 있습니다. 추가 계정 관리자는 Microsoft Entra ID에서 특정 역할이 필요하지 않습니다.

  • metastore에 연결하는 작업 영역은 Azure Databricks Premium 플랜에 있어야 합니다.

  • 메타스토어 수준 루트 스토리지를 설정하려면 Azure 테넌트에서 다음을 만들 수 있는 권한이 있어야 합니다.

    • Data Lake Storage Gen2에서 사용할 스토리지 계정을 만듭니다. Data Lake Storage Gen2에서 사용할 스토리지 계정 만들기를 참조하세요.
    • 시스템이 할당한 관리 ID를 보유할 새 리소스 이렇게 하려면 테넌트에 있는 모든 구독에서 리소스 그룹의 기여자 또는 소유자여야 합니다.

1단계(선택 사항): 메타스토어 수준 관리 스토리지에 대한 스토리지 컨테이너 만들기

선택 사항인 이 단계에서는 메타스토어 수준에서 관리되는 테이블 및 볼륨 데이터를 저장할 스토리지 계정 및 컨테이너를 만듭니다. 메타스토어 수준 스토리지가 필요한지 여부를 확인하려면 (선택 사항) 메타스토어 수준 스토리지 만들기를 참조하세요.

  1. Azure Data Lake Storage Gen2용 스토리지 계정을 만듭니다.

    이 스토리지 계정에는 Unity 카탈로그 관리 테이블 및 볼륨이 포함됩니다. Azure Databricks 작업 영역과 동일한 지역에 있는 Azure Data Lake Storage Gen2 계정이어야 합니다. Data Lake Storage Gen2에서 사용할 스토리지 계정 만들기를 참조하세요.

  2. 메타스토어 수준에서 관리되는 테이블 및 볼륨 데이터를 저장할 스토리지 컨테이너를 만듭니다.

    지역당 하나의 메타스토어만 만들 수 있습니다. 메타스토어 및 스토리지 컨테이너에 대해 동일한 지역을 사용해야 합니다.

    이 메타스토어 수준 기본 스토리지 위치는 카탈로그 및 스키마 수준에서 재정의할 수 있습니다. 관리되는 스토리지를 참조하세요.

    다음 형식의 컨테이너에 대한 ADLSv2 URI를 기록해 둡니다.

    abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<metastore-name>
    

    다음 단계에서 <storage-container>를 이 URI로 바꿉니다.

2단계(선택 사항): 관리되는 스토리지 위치에 액세스하는 관리 ID 만들기

1단계를 완료한 경우에만 필요한 이 단계에서는 관리 ID를 보유하는 Azure Databricks 액세스 커넥터를 만들고 스토리지 컨테이너에 대한 액세스 권한을 부여합니다.

Unity 카탈로그에서 Azure 관리 ID를 사용하여 스토리지에 액세스하는 방법에 대한 지침을 따릅니다.

참고 항목

Azure 관리 ID 또는 서비스 주체를 메타스토어의 스토리지 컨테이너에 대한 액세스 권한을 부여하는 ID로 사용할 수 있습니다. Databricks는 자격 증명을 기본 획득하거나 비밀을 회전할 필요가 없으며 스토리지 방화벽으로 보호되는 Azure Data Lake Storage Gen2 계정에 연결할 수 있으므로 관리 ID를 강력하게 권장합니다. 서비스 주체를 사용하려면 서비스 주체(레거시)를 사용하여 Unity 카탈로그 관리 스토리지 만들기를 참조하세요.

3단계: 메타스토어 만들기 및 작업 영역 연결

각 Azure Databricks 지역에는 자체 Unity 카탈로그 메타스토어가 필요합니다.

조직이 운영되는 각 지역에 대한 메타스토어를 만듭니다. 이러한 지역 메타스토어를 해당 지역에 있는 원하는 수의 작업 영역에 연결할 수 있습니다. 연결된 각 작업 영역은 메타스토어의 데이터에 대해 동일한 보기를 가지며, 작업 영역에서 데이터 액세스 제어를 관리할 수 있습니다. 델타 공유를 사용하여 다른 메타스토어의 데이터에 액세스할 수 있습니다.

메타스토어 수준 스토리지를 만들기로 선택한 경우 metastore는 이전 단계에서 만든 스토리지 컨테이너 및 Azure 관리 ID를 사용합니다.

메타스토어를 만들려면 다음을 수행합니다.

  1. 메타스토어 수준 스토리지를 만들기로 선택한 경우 스토리지 컨테이너에 대한 경로와 이전 작업에서 만든 Azure Databricks 액세스 커넥터의 리소스 ID가 있는지 확인합니다.

  2. 계정 관리자로 작업 영역에 로그인합니다.

  3. Azure Databricks 작업 영역의 상단 표시줄에서 사용자 이름을 클릭하고 계정 관리를 선택합니다.

  4. Azure Databricks 계정 콘솔에 로그인합니다.

  5. 카탈로그를 클릭합니다카탈로그 아이콘.

  6. 메타스토어 만들기를 클릭합니다.

  7. 다음을 입력합니다.

    • 메타스토어의 이름

    • 메타스토어가 배포될 지역.

      데이터에 액세스하는 데 사용하려는 작업 영역과 동일한 지역에 있어야 합니다. 메타스토어 수준 스토리지에 대한 스토리지 컨테이너를 만들기로 선택한 경우 해당 지역도 동일해야 합니다.

    • (선택 사항) ADLS Gen 2 경로: 메타스토어의 루트 스토리지로 사용할 스토리지 컨테이너의 경로를 입력합니다.

      abfss:// 접두사가 자동으로 추가됩니다.

    • (선택 사항) 액세스 커넥트or ID: Azure Databricks 액세스 커넥터의 리소스 ID를 형식으로 입력합니다.

      /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
      
  8. 만들기를 클릭합니다.

  9. 메시지가 표시되면 메타스토어에 연결할 작업 영역을 선택합니다.

    자세한 내용은 Unity 카탈로그에 대한 작업 영역 사용을 참조 하세요.

  10. metastore 관리자 역할을 그룹으로 전송합니다.

    메타스토어를 만드는 사용자는 소유자이며, 메타스토어 관리자라고도 합니다. 메타스토어 관리자는 메타스토어에서 카탈로그와 같은 최상위 개체를 만들 수 있으며 테이블 및 기타 개체에 대한 액세스를 관리할 수 있습니다. Databricks는 메타스토어 관리자 역할을 그룹에 다시 할당하는 것이 좋습니다. 메타스토어 관리자 할당을 참조하세요.

  11. 관리되는 볼륨에 대한 업로드의 Azure Databricks 관리를 사용하도록 설정합니다.

    Azure Databricks는 CORS(원본 간 리소스 공유)를 사용하여 Unity 카탈로그의 관리되는 볼륨에 데이터를 업로드합니다 . CORS용 Unity 카탈로그 스토리지 계정 구성을 참조하세요.

다음 단계

기존 메타스토어에 관리형 스토리지 추가

메타스토어 수준 관리 스토리지는 선택 사항이며 자동으로 생성된 메타스토어에는 포함되지 않습니다. 여러 작업 영역의 데이터를 중앙에 저장하는 데이터 격리 모델을 선호하는 경우 metastore 수준 스토리지를 메타스토어에 추가할 수 있습니다. 델타 공유를 사용하여 Notebook을 공유하거나 개인 스테이징 위치를 사용하는 Azure Databricks 파트너인 경우 메타스토어 수준 스토리지가 필요합니다.

관리되는 스토리지참조하세요.

요구 사항

  • Unity 카탈로그 메타스토어에 하나 이상의 작업 영역이 연결되어 있어야 합니다.
  • Azure Databricks 권한이 필요합니다.
    • 외부 위치를 만들려면 메타스토어 관리자이거나 권한이 있는 CREATE EXTERNAL LOCATIONCREATE STORAGE CREDENTIAL 사용자여야 합니다.
    • 메타스토어 정의에 스토리지 위치를 추가하려면 계정 관리자여야 합니다. 계정에서 계정 관리자 역할을 사용하도록 설정하는 방법에 대한 지침은 첫 번째 계정 관리자 설정을 참조하세요.
  • Azure 테넌트 권한이 필요합니다.
    • Azure Data Lake Storage Gen2와 함께 사용할 스토리지 계정을 만들 수 있는 권한입니다. 이 스토리지 계정에는 계층 구조 네임스페이스가 있어야 합니다. Data Lake Storage Gen2에서 사용할 스토리지 계정 만들기를 참조하세요.
    • 시스템 할당 관리 ID를 보유할 새 리소스를 만들 수 있는 권한입니다. 이렇게 하려면 테넌트에 있는 모든 구독에서 리소스 그룹의 기여자 또는 소유자여야 합니다.

1단계: 스토리지 위치 만들기

1단계(선택 사항): 메타스토어 수준 관리 스토리지용 스토리지 컨테이너 만들기 및 2단계(선택 사항): 관리되는 스토리지 위치에 액세스하는 관리 ID를 만들어 Azure Data Lake Storage Gen2에 스토리지 컨테이너를 만들고 스토리지 컨테이너에 액세스할 수 있는 관리 ID를 보유하는 Azure Databricks 액세스 커넥터를 만듭니다.

2단계: Unity 카탈로그에서 외부 위치 만들기

이 단계에서는 방금 만든 ADLS Gen 2 경로를 참조하는 외부 위치를 Unity 카탈로그에 만듭니다.

  1. 스토리지 자격 증명을 만듭니다.

    스토리지 자격 증명은 1단계: 스토리지 위치 만들기에서 만든 Azure 관리 ID를 나타냅니다.

    Azure Data Lake Storage Gen2연결하기 위한 스토리지 자격 증명 만들기의 지침을 따릅니다.

  2. 이전 단계에서 만든 스토리지 자격 증명을 참조하는 외부 위치와 1단계에서 만든 ADLS Gen 2 스토리지 컨테이너를 만듭니다. 스토리지 위치를 만듭니다.

    외부 위치 만들기의 지침에 따라 클라우드 스토리지를 Azure Databricks에 연결합니다.

  3. 외부 위치에 대한 권한을 자신에게 CREATE MANAGED STORAGE 부여합니다.

    1. 외부 위치 이름을 클릭하여 세부 정보 창을 엽니다.
    2. 사용 권한 탭에서 권한 부여를 클릭합니다.
    3. 권한 부여 대화<external location>상자에서 보안 주체 필드에서 자신을 선택하고 선택합니다CREATE MANAGED STORAGE.
    4. 부여를 클릭합니다.

3단계: metastore에 스토리지 위치 추가

메타스토어 스토리지 버킷을 나타내는 외부 위치를 만든 후에는 metastore에 추가할 수 있습니다.

  1. 계정 관리자 권한으로 계정 콘솔에 로그인합니다.

  2. 카탈로그를 클릭합니다카탈로그 아이콘.

  3. 메타스토어 이름을 클릭합니다.

  4. Metastore 관리 확인합니다.

    그렇지 않은 경우 편집을 클릭하고 자신을 metastore 관리자로 할당합니다. 이 절차를 완료하면 직접 할당을 취소할 수 있습니다.

  5. 구성 탭의 ADLS Gen 2 경로 옆에 있는 [설정]을 클릭합니다.

  6. 메타스토어 루트 설정 대화 상자에서 외부 위치를 만드는 데 사용한 ADLS Gen 2 경로를 입력하고 업데이트를 클릭합니다.

    설정한 후에는 이 경로를 수정할 수 없습니다.

메타스토어 삭제

Azure Databricks 계정을 닫거나 Unity 카탈로그 메타스토어에서 관리하는 데이터에 대한 액세스를 삭제할 다른 이유가 있는 경우 메타스토어를 삭제할 수 있습니다.

Warning

메타스토어에서 관리하는 모든 개체는 Azure Databricks 작업 영역을 사용하여 액세스할 수 없게 됩니다. 이 작업은 취소할 수 없습니다.

관리되는 테이블 데이터 및 메타데이터는 30일 후에 자동으로 삭제됩니다. 클라우드 스토리지의 외부 테이블 데이터는 메타스토어 삭제의 영향을 받지 않습니다.

메타스토어를 삭제하려면 다음을 수행합니다.

  1. 메타스토어 관리자로서 계정 콘솔에 로그인합니다.
  2. 카탈로그를 클릭합니다카탈로그 아이콘.
  3. 메타스토어 이름을 클릭합니다.
  4. 구성 탭의 오른쪽 맨 위에 있는 세 개의 단추 메뉴를 클릭하고 삭제를 선택합니다.
  5. 확인 대화 상자에서 메타스토어의 이름을 입력하고 삭제를 클릭합니다.