레거시 작업 영역의 Hive 메타스토어에 대해 Hive 메타스토어 페더레이션을 활성화
중요하다
이 기능은 공개 미리보기입니다.
이 문서에서는 조직에서 Unity 카탈로그를 사용하여 Hive 메타스토어 테이블을 사용할 수 있도록 레거시 Azure Databricks Hive 메타스토어를 페더레이션하는 방법을 보여 줍니다.
Hive 메타스토어 페더레이션에 대한 개요는 Hive 메타스토어 페더레이션을 참조하세요. Unity 카탈로그를 사용하여 Hive 메타스토어등록된 테이블을 제어합니다.
시작하기 전에
Hive 메타스토어 페더레이션에서 지원하는 서비스 및 기능 목록(요구 사항, 지원되는 기능 및제한 사항)을 검토합니다.
특정 요구 사항은 아래의 각 단계에 대해 나열됩니다.
1단계: Hive 메타스토어에 Unity 카탈로그 연결
이 단계에서는 데이터베이스 시스템에 액세스하기 위한 경로 및 자격 증명(이 경우 Azure Databricks 작업 영역의 레거시 Hive 메타스토어)을 지정하는 Unity 카탈로그 보안 개체인 연결만듭니다.
요구 사항
- Unity 카탈로그 메타스토어의
CREATE CONNECTION
권한입니다.
연결 만들기
연결은 외부 데이터베이스 시스템에 액세스하기 위한 경로 및 자격 증명을 지정합니다. 연결을 만들려면 Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기 또는 CREATE CONNECTION
SQL 명령을 사용할 수 있습니다.
메모
Databricks REST API 또는 Databricks CLI를 사용하여 연결을 만들 수도 있습니다. POST /api/2.1/unity-catalog/connections 및 Unity Catalog 명령참조하세요.
필요한 권한 : 권한이 있는 Metastore 관리자 또는 사용자 CREATE CONNECTION
.
카탈로그 탐색기
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
빠른 액세스 페이지에서 데이터 추가 > 연결추가를 클릭합니다.
연결 설정 마법사의 연결 기본 페이지에서 사용자에게 친숙한 연결 이름입력합니다.
연결 유형을 Hive Metastore에서 선택하고, 내부의 Metastore 형식을 선택합니다.
(선택 사항) 메모를 추가합니다.
다음클릭합니다.
(선택 사항) 연결 세부 정보 페이지에서 Hive Warehouse 디렉터리의 전체 경로를 입력합니다.
기본 위치를 사용하지 않으려는 경우에만 필요합니다.
연결 만들기을 클릭합니다.
카탈로그 기본 페이지에서 외세 카탈로그의 이름을 입력합니다.
권한 있는 경로경우 카탈로그를 통해 액세스할 수 있는 클라우드 스토리지 경로를 선택합니다. 이러한 경로에 속하는 테이블만 페더레이션 카탈로그를 통해 쿼리할 수 있습니다. 경로는 외부 위치에서 처리해야 합니다. 자세한 내용은 권한 있는 경로란?을 참조하세요..
(선택 사항) Storage 위치경우 선택한 데이터가 이 카탈로그의 테이블에 저장될 클라우드 스토리지의 위치를 선택합니다. 지정하지 않으면 위치는 기본적으로 메타스토어 루트 위치(있는 경우)로 설정됩니다.
카탈로그만들기 클릭하세요.
Access 페이지에서 사용자가 만든 카탈로그에 액세스할 수 있는 작업 영역을 선택합니다. 다음 중 하나를 선택할 수 있습니다: 모든 작업 영역에 액세스또는 작업 영역에 할당을 클릭한 후 작업 영역을 선택하고 할당을 클릭합니다.
카탈로그의 모든 개체에 대한 액세스를 관리할 수 있는 소유자 추가합니다. 텍스트 상자에 사용자 또는 그룹 입력을 시작한 다음 반환된 결과에서 사용자 또는 그룹을 클릭합니다.
카탈로그에 권한을(를) 부여하십시오. 를 클릭하여을 부여합니다.
- 카탈로그의 개체에 액세스할 수 있는 보안 주체 지정합니다. 텍스트 상자에 사용자 또는 그룹 입력을 시작한 다음 반환된 결과에서 사용자 또는 그룹을 클릭합니다.
- 각 사용자 또는 그룹에 부여할 권한 사전 설정 선택합니다. 모든 계정 사용자에게는 기본적으로
BROWSE
부여됩니다.- 드롭다운 메뉴에서 데이터 판독기 선택하여 카탈로그의 개체에
read
권한을 부여합니다. - 드롭다운 메뉴에서 데이터 편집기 선택하여 카탈로그의 개체에
read
및modify
권한을 부여합니다. - 부여할 권한을 수동으로 선택합니다.
- 드롭다운 메뉴에서 데이터 판독기 선택하여 카탈로그의 개체에
- 부여를 클릭합니다.
다음클릭합니다.
메타데이터 페이지에서 태그 키-값 쌍을 지정합니다. 자세한 내용은 Unity Catalog 보안 개체에 태그 적용을 참조하세요.
(선택 사항) 메모를 추가합니다.
저장을 클릭합니다.
SQL
Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 명령을 실행합니다.
CREATE CONNECTION IF NOT EXISTS <connection-name> TYPE hive_metastore
OPTIONS (builtin true);
2단계: 내부 레거시 Hive 메타스토어에서 데이터에 대한 외부 위치 만들기
이 단계에서는 레거시 내부 Hive 메타스토어에 등록된 데이터를 보관하는 클라우드 스토리지 위치에 대한 액세스를 제어하도록 Unity 카탈로그의 외부 위치를 구성합니다.
요구 사항
클라우드 스토리지와 Azure Databricks의 권한 요구 사항에 대한 정보는 클라우드 스토리지를 Azure Databricks에 연결하는 외부 위치 만들기에서 "시작하기 전에"를 참조하세요.
작업 영역의 레거시 DBFS 루트에 대한 외부 위치를 만드는 경우 DBFS 루트데이터에 대한 외부 위치 만들기
외부 위치를 만들기 위한 옵션
Databricks가 Unity 카탈로그에서 외부 위치를 만들기 위해 권장하는 프로세스는 상황에 따라 달라집니다.
DBFS 탑재 또는 DBFS 루트데이터를 저장하는 내부 Databricks Hive 메타스토어를 페더레이션하는 경우 카탈로그 탐색기를 사용하여 외부 위치를 만들고 DBFS 탑재 데이터에 대한 외부 위치 만들기복사 옵션을 사용합니다. 카탈로그 탐색기 사용하여 수동으로 외부 위치 만들기 또는 DBFS 루트지침을 따릅니다. - 그렇지 않으면 카탈로그 탐색기 또는 SQL 명령을 사용할 수 있습니다.
카탈로그 탐색기 사용하여 수동으로 외부 위치 만들기 또는 SQL사용하여 외부 위치 만들기지침을 따릅니다.
외부 위치에서 폴백 모드 활성화
Unity 카탈로그에서 외부 위치를 만드는 즉시 Unity 카탈로그 사용 컴퓨팅(단일 사용자, 공유 또는 SQL 웨어하우스
외부 위치가 대체 모드인 경우 시스템은 먼저 해당 위치에 대한 쿼리 주체의 Unity 카탈로그 권한을 확인하고, 성공하지 못하면 기존 워크로드가 중단 없이 계속 실행되도록 기존 클러스터 또는 Notebook 범위 자격 증명(예: 인스턴스 프로필 또는 Apache Spark 구성 속성)을 사용하는 것으로 대체됩니다.
대체 모드는 레거시 워크로드를 마이그레이션하는 중일 때 편리합니다. Unity 카탈로그 사용 권한을 사용하여 워크로드를 성공적으로 실행하도록 업데이트한 후에는 레거시 클러스터 범위 자격 증명이 Unity 카탈로그 데이터 거버넌스를 우회하는 데 사용되지 않도록 대체 모드를 사용하지 않도록 설정해야 합니다.
카탈로그 탐색기 또는 Unity 카탈로그 외부 위치 REST API를 사용하여 대체 모드를 사용하도록 설정할 수 있습니다.
권한이 필요한: 외부 위치의 소유자.
카탈로그 탐색기
- Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
- 빠른 액세스 페이지에서 외부 데이터 >를 클릭합니다.
- 업데이트할 외부 위치를 선택합니다.
- 대체 모드 토글을 켜고 활성화를 클릭하여 확인합니다.
API
다음 curl 예제에서는 외부 위치를 만들고 기존 외부 위치를 업데이트할 때 대체 모드를 사용하도록 설정하는 방법을 보여 줍니다.
새 외부 위치 만들기:
curl -X POST -H 'Authorization: Bearer <token>' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations \
--data
'{
"name": "fallback_mode_enabled_external_location",
"url": "abfss://container-name@storage-account.dfs.core.windows.net/external_location_container/url",
"credential_name": "external_location_credential",
"fallback": true
"skip_validation": true
}'
외부 위치 업데이트:
curl -X PATCH \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations/<external-location-name> \
--data
'{
"comment": "fallback mode enabled",
"fallback": true
}'
3단계: 페더레이션 카탈로그 만들기
이 단계에서는 1단계에서 만든 연결을 사용하여 2단계에서 만든 외부 위치를 가리키는 페더레이션된 카탈로그를 Unity 카탈로그에 만듭니다. 페더레이션 카탈로그는 외부 데이터 시스템의 데이터베이스 또는 카탈로그를 미러링하는 Unity 카탈로그의 보안 개체인 외국 카탈로그형식으로, Unity 카탈로그에서 관리하는 액세스 권한으로 Azure Databricks 작업 영역에서 해당 데이터에 대한 쿼리를 수행할 수 있습니다. 이 경우 미러된 카탈로그는 Hive 메타스토어에 등록된 데이터입니다.
사용자 또는 워크플로가 페더레이션된 카탈로그와 상호 작용할 때마다 Hive 메타스토어에서 메타데이터가 동기화됩니다.
요구 사항
권한 요구 사항:
외세 카탈로그를 만들려면 다음을 수행합니다.
- Unity Catalog 메타스토어의
CREATE CATALOG
특권입니다. - 연결의 소유권 또는 연결에 대한
CREATE FOREIGN CATALOG
권한 - 외국 카탈로그에 대한 권한 있는 경로를 입력하려면 해당 경로를 포함하는 외부 위치에 대한
CREATE FOREIGN SECURABLE
권한이 있어야 합니다. 외부 위치의 소유자는 기본적으로 이 권한을 가집니다.
외신 카탈로그를 사용하려면 다음을 수행합니다.
- 카탈로그 소유권 또는
USE CATALOG
컴퓨팅 요구 사항:
- 카탈로그 탐색기를 사용하여 카탈로그를 만들려면 컴퓨팅이 필요하지 않습니다.
- SQL: Databricks Runtime 13.3 LTS 이상을 사용하여 카탈로그를 만들려면
- 카탈로그를 사용하려면 Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 이상에서 공유 클러스터를 사용합니다.
외신 카탈로그 만들기
외국 카탈로그를 만들려면 Azure Databricks Notebook 또는 SQL 쿼리 편집기에서 카탈로그 탐색기 또는 CREATE FOREIGN CATALOG
SQL 명령을 사용할 수 있습니다.
메모
Unity 카탈로그 API를 사용할 수도 있습니다. Databricks REST API 참조에서 카탈로그 만들기를 참조하세요.
Azure Databricks 작업 영역에서 을 클릭하여 카탈로그 탐색기를 엽니다.
빠른 액세스 페이지에서 데이터 추가 버튼을 클릭하고 카탈로그 추가를 선택합니다.
카탈로그 이름 입력하고 외신카탈로그 형식 선택합니다.
드롭다운에서 1단계에서 만든 연결을 선택하십시오.
권한 있는 경로 필드에 2단계에서 외부 위치로 정의한 클라우드 스토리지 위치의 경로를 입력합니다. 예를 들어
abfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance
.권한 있는 경로는 페더레이션된 카탈로그에 대해서만 추가된 보안 계층입니다. 권한 있는 경로는 무엇인가요.
만들기를 클릭합니다.
(선택 사항) 구성을 클릭하여 카탈로그에 대한 사용 권한을 부여하고 태그를 추가하는 마법사를 엽니다. 나중에 이러한 단계를 수행할 수도 있습니다.
Unity 카탈로그에서 권한 관리 및 Unity 카탈로그 보안 개체에 태그 적용을 참조하세요.
(선택 사항) 카탈로그를 특정 작업 영역에 바인딩합니다.
기본적으로 Unity 카탈로그 메타스토어에 연결된 모든 작업 영역에서 카탈로그에 액세스할 수 있습니다(사용자 권한으로 제한됨). 특정 작업 영역에서만 액세스를 허용하려면 작업 영역 탭으로 이동하여 작업 영역을 할당합니다. 특정 작업 영역대한 카탈로그 액세스 제한
참조하세요. 페더레이션된 카탈로그를 Hive 메타스토어 메타데이터로 채웁다.
사용자 또는 워크플로가 페더레이션된 카탈로그와 상호 작용할 때마다 Hive 메타스토어에서 메타데이터가 동기화됩니다. 첫 번째 상호 작용은 Unity 카탈로그의 카탈로그를 채우고 카탈로그 탐색기 UI에 해당 콘텐츠를 표시합니다. 카탈로그 탐색기에서 지원되는 컴퓨팅 리소스 선택하고 시작하여 카탈로그를 채울 수 있습니다. 카탈로그를 만든 사람으로서 카탈로그 소유자이거나
USE CATALOG
권한이 있는 사용자여야 합니다.Notebook 또는 SQL 쿼리 편집기에서 다음 SQL 명령을 실행합니다. 대괄호 안에 있는 항목은 선택 사항입니다. 자리 표시자 값을 바꿉다.
-
<catalog-name>
: Azure Databricks에서 카탈로그의 이름입니다. -
<connection-name>
: 1단계에서 만든 연결 개체의 이름입니다. -
<path1>,<path2>
: 2단계에서 외부 위치로 정의한 클라우드 스토리지 위치의 경로입니다. 예를 들어abfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance
. 권한 있는 경로는 페더레이션된 카탈로그에 대해서만 추가된 보안 계층입니다. 권한 있는 경로는 무엇인가요.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name> OPTIONS (authorized_paths '<path1>,<path2>');
사용자 또는 워크플로가 페더레이션된 카탈로그와 상호 작용할 때마다 Hive 메타스토어에서 메타데이터가 동기화됩니다.
-
또한 외국 카탈로그관리 및 작업도 참조하세요.