다음을 통해 공유


Hive 테이블과 뷰를 Unity 카탈로그로 업그레이드하기

이 문서에서는 기존 작업 영역-로컬 Hive 메타스토어에 등록된 테이블 및 뷰를 Unity 카탈로그로 업그레이드하는 방법을 설명합니다.

참고 항목

이 문서에 설명된 테이블 마이그레이션 프로세스 대신 Hive 메타스토어 페더레이션을 사용하여 Hive 메타스토어를 미러링하는 카탈로그를 Unity 카탈로그에 만들 수 있습니다. Hive 메타스토어 페더레이션을 참조하십시오. Unity 카탈로그를 사용하여 Hive 메타스토어에 등록된 테이블을 관리할 수 있도록 활성화합니다.

Hive 테이블을 Unity 카탈로그의 관리되는 테이블 또는 외부 테이블로 업그레이드할 수 있습니다.

  • 관리되는 테이블 은 Unity 카탈로그에서 테이블을 만드는 기본 방법입니다. Unity 카탈로그는 수명 주기, 파일 레이아웃 및 스토리지를 완전히 관리합니다. Unity 카탈로그는 성능도 자동으로 최적화합니다. 관리되는 테이블은 항상 델타 테이블 형식을 사용합니다.

    관리되는 테이블은 Unity 카탈로그를 위해 예약하는 관리되는 스토리지 위치에 상주합니다. 이 스토리지 요구 사항으로 인해 기존 Hive 테이블을 Unity 카탈로그에 관리되는 테이블로 복사하려면 CLONE 또는 CTAS(CREATE TABLE AS SELECT)를 사용해야 합니다.

  • 외부 테이블 은 데이터 수명 주기, 파일 레이아웃 및 스토리지 위치가 Unity 카탈로그에서 관리되지 않는 테이블입니다. 외부 테이블에 대해 여러 데이터 형식이 지원됩니다.

    일반적으로 Databricks가 아닌 컴퓨팅을 사용하여 데이터에 직접 액세스해야 하는 경우에만 외부 테이블을 사용합니다(즉, Databricks 클러스터 또는 Databricks SQL 웨어하우스를 사용하지 않음). 외부 테이블은 데이터를 복사하지 않고도 Unity 카탈로그에 기존 데이터를 빠르게 등록할 수 있으므로 마이그레이션 시나리오에서도 편리합니다. 이는 외부 테이블의 데이터가 예약된 관리되는 스토리지에 상주할 필요가 없기 때문이다.

Unity 카탈로그의 관리 테이블 및 외부 테이블에 대한 자세한 내용은 테이블 및 뷰란?을 참조하세요.

Hive에서 Unity 카탈로그로 마이그레이션 옵션

Hive 테이블을 Unity 카탈로그로 마이그레이션할 준비가 되면 사용 사례에 따라 몇 가지 옵션이 있습니다.

마이그레이션 도구 설명 Hive 테이블 요구 사항 Unity 카탈로그 테이블 생성됨 왜 사용해야 하나요?
UCX Unity 카탈로그 마이그레이션에 대한 작업 영역의 준비 상태를 평가하고 ID, 권한, 스토리지 위치 및 테이블을 Unity 카탈로그로 마이그레이션하는 워크플로를 수행하는 포괄적인 명령줄 유틸리티 및 기타 도구 집합입니다. UCX는 Databrickslabs/ucx의 GitHub에서 사용할 수 있습니다. 관리형 또는 외부 Hive 테이블 관리 또는 외부 Hive 테이블을 Unity 카탈로그로 업그레이드하는 것 이상의 포괄적인 작업 영역 업그레이드 계획 도구를 원합니다. Hive 메타스토어에 많은 양의 데이터가 있는 작업 영역을 업그레이드하려고 합니다. 스크립트를 실행하는 것이 편합니다. Hive 테이블을 Unity 카탈로그 관리형 테이블로 대량 업그레이드하려는 경우 이것이 유일한 옵션입니다. UCX는 모든 Databricks Labs 프로젝트와 마찬가지로 공용 GitHub 리포지토리이며 Databricks에서 직접 지원되지 않습니다.
Unity 카탈로그 업그레이드 마법사 Hive 메타스토어에서 Unity 카탈로그 메타스토어로 전체 스키마(데이터베이스) 및 여러 관리형 및 외부 테이블을 외부 테이블로 대량 복사할 수 있는 카탈로그 탐색기 기능입니다. 업그레이드 마법사는 선택한 테이블에서 명령을 수행 SYNC 하여 원래 Hive 테이블을 그대로 유지합니다. 원본 Hive 테이블의 변경 내용을 선택하기 위해 정기적인 업그레이드를 예약하는 옵션이 있습니다. 관리형 또는 외부 Hive 테이블 외부만 Hive 테이블을 Unity 카탈로그의 외부 테이블로 빠르게 업그레이드하려고 하며 시각적 인터페이스를 선호합니다. 원본 Hive 테이블이 변경되면 일반 동기화를 예약할 수 있으므로 Unity 카탈로그로 전환하는 동안 "하이브리드" Hive 및 Unity 카탈로그 작업 영역을 관리하는 데 유용한 도구입니다.
SYNC SQL 명령 SYNC 를 사용하면 Hive 메타스토어에서 외부 테이블 및 관리 테이블(관리 테이블이 Databricks 작업 영역 스토리지 외부에 저장되는 경우,DBFS 루트라고도 함)을 Unity 카탈로그의 외부 테이블에 복사할 수 있습니다. 개별 테이블 또는 전체 스키마를 동기화할 수 있습니다.

SYNC 은 Hive 메타스토어의 새 변경 내용을 선택하고 Unity 카탈로그에 동기화하기 위해 일정에 따라 실행되도록 설계되었습니다.
관리형 또는 외부 Hive 테이블 외부만 Hive 테이블을 Unity 카탈로그의 외부 테이블로 빠르게 업그레이드하려고 하며 시각적 인터페이스 대신 SQL 명령을 사용하는 것이 좋습니다.

원본 Hive 테이블이 변경될 때 기존 Unity 카탈로그 테이블을 업데이트하기 위해 일반 SYNC 실행을 예약하면 Unity 카탈로그로 전환하는 동안 "하이브리드" Hive 및 Unity 카탈로그 작업 영역을 관리하는 데 유용한 도구입니다.

Databricks 작업 영역 스토리지에 있는 관리되는 테이블을 업그레이드하는 데 사용할 SYNC 수 없으므로 해당 테이블에 CREATE TABLE CLONE을 사용합니다.
CREATE TABLE CLONE SQL 명령 CREATE TABLE CLONE 를 사용하면 Hive 메타스토어의 관리 테이블을 Unity 카탈로그의 관리되는 테이블로 업그레이드할 수 있습니다. 개별 테이블을 복제할 수 있습니다.

딥 클론에서 원본 테이블 데이터 및 메타데이터를 복제 대상에 복사합니다.
델타 형식의 관리형 Hive 테이블입니다. 관리 전용 Unity 카탈로그 데이터 거버넌스를 최대한 활용하기 위해 Hive 관리 테이블을 Unity 카탈로그 관리 테이블로 마이그레이션하려고 하며 Hive 테이블은 "Hive 테이블 요구 사항" 셀에 나열된 조건을 충족합니다.

Hive 테이블이 "Hive 테이블 요구 사항"을 충족하지 않는 경우 CREATE TABLE AS SELECT SQL 명령을 사용하여 Hive 테이블을 Unity 카탈로그 관리 테이블로 업그레이드할 수 있습니다. 그러나 CLONE 거의 항상 선호됩니다. 복제는 CREATE TABLE AS SELECT원본 테이블에서 복제되므로 분할, 형식, 고정, null 허용 여부, COPY INTO스트림 및 기타 메타데이터를 지정할 필요가 없습니다.

이 문서에서는 UCX 기반 업그레이드 프로세스를 제외한 모든 작업을 수행하는 방법을 설명합니다. Databricks는 대부분의 작업 영역 업그레이드 시나리오에 UCX를 권장합니다. 그러나 더 간단한 사용 사례의 경우 여기에 설명된 도구 중 하나 이상을 선호할 수 있습니다.

시작하기 전에

이 섹션에서는 사용 권한 및 컴퓨팅 요구 사항과 함께 준비해야 하는 마이그레이션의 영향 중 일부에 대해 설명합니다.

영향 이해

새 Unity 카탈로그 테이블을 사용하도록 워크로드를 수정할 때 몇 가지 동작을 변경해야 할 수 있습니다.

  • Unity 카탈로그는 Hive와 다른 방식으로 파티션을 관리합니다. 파티션을 직접 조작하는 Hive 명령은 Unity 카탈로그에서 관리하는 테이블에서 지원되지 않습니다.
  • 를 실행할 CREATE TABLE CLONE때 테이블 기록이 마이그레이션되지 않습니다. Unity 카탈로그에 복제하는 Hive 메타스토어의 모든 테이블은 새 테이블로 처리됩니다. Delta Lake 시간 이동 또는 마이그레이션 전 기록을 사용하는 다른 작업을 수행할 수 없습니다.

자세한 내용은 Unity 카탈로그 및 레거시 Hive 메타스토어 작업을 참조 하세요.

요구 사항

마이그레이션을 수행하려면 다음이 있어야 합니다.

  • Unity 카탈로그 메타스토어와 하나 이상의 Unity 카탈로그 카탈로그가 있는 작업 영역입니다. Unity 카탈로그 설정 및 관리를 참조하세요.

  • 테이블을 마이그레이션할 Unity 카탈로그 카탈로그에 대한 권한입니다. 이러한 권한 요구 사항은 이 문서에서 다루는 각 절차의 시작 부분에 열거됩니다.

  • Unity 카탈로그 외부 테이블로 마이그레이션하는 경우: 스토리지 자격 증명 및 Unity 카탈로그에 정의된 외부 위치 및 CREATE EXTERNAL TABLE 외부 위치에 대한 권한입니다.

  • 다음 요구 사항을 모두 충족하는 Azure Databricks 컴퓨팅에 액세스합니다.

    • Unity 카탈로그(단일 사용자 또는 공유 액세스 모드를 사용하는 SQL 웨어하우스 또는 컴퓨팅 리소스)를 지원합니다.
    • Hive 메타스토어의 테이블에 액세스할 수 있습니다.

    공유 액세스 모드를 사용하는 컴퓨팅 리소스는 기본적으로 레거시 테이블 액세스 제어에 사용할 수 있으므로 해당 액세스 모드를 사용하는 경우 마이그레이션하는 Hive 메타스토어에 대한 테이블 액세스 제어 권한이 있어야 합니다. 다음 SQL 명령을 사용하여 자신에게 액세스 권한을 부여할 수 있습니다.

    GRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`
    

    또는 단일 사용자 액세스 모드에서 컴퓨팅 리소스를 사용할 수 있습니다.

Hive 메타스토어의 개체에 대한 권한 관리에 대한 자세한 내용은 Hive 메타스토어 권한 및 보안 개체(레거시)를 참조하세요. Unity 카탈로그 메타스토어의 개체에 대한 권한 관리에 대한 자세한 내용은 Unity 카탈로그의 권한 관리를 참조하세요.

Hive 메타스토어에서 관리되는 테이블 식별

테이블이 현재 Unity 카탈로그에 등록되어 있는지 확인하려면 카탈로그 이름을 확인합니다. 카탈로그 hive_metastore 의 테이블은 작업 영역-로컬 Hive 메타스토어에 등록됩니다. 나열된 다른 모든 카탈로그는 Unity 카탈로그에서 관리합니다.

카탈로그 탐색기를 사용하여 카탈로그의 테이블을 보려면 다음을 hive_metastore 수행합니다.

  1. 사이드바에서 카탈로그 아이콘카탈로그를 클릭합니다.
  2. 카탈로그 창에서 카탈로그로 이동하여 hive_metastore 스키마 노드를 확장합니다.

카탈로그 창에서 필터 필드를 사용하여 특정 테이블을 검색할 수도 있습니다.

업그레이드 마법사를 사용하여 Hive 메타스토어에서 Unity 카탈로그 외부 테이블로 스키마 또는 여러 테이블 업그레이드

카탈로그 탐색기 업그레이드 마법사를 사용하여 Azure Databricks 기본 Hive 메타스토어에서 Unity 카탈로그 메타스토어로 전체 스키마(데이터베이스) 및 여러 외부 또는 관리 테이블을 복사할 수 있습니다. 업그레이드된 테이블은 Unity 카탈로그의 외부 테이블입니다.

업그레이드 마법사를 사용할 시기를 결정하는 데 도움이 필요한 경우 Hive에서 Unity 카탈로그로 마이그레이션 옵션을 참조 하세요.

요구 사항

데이터 형식 요구 사항:

  • 외부 테이블 작업을 참조하세요.

컴퓨팅 요구 사항:

  • Unity 카탈로그를 지원하는 컴퓨팅 리소스입니다. 시작하기 전에 참조하세요.

Unity 카탈로그 개체 및 권한 요구 사항:

Hive 테이블 액세스 요구 사항:

  • 컴퓨팅에서 공유 액세스 모드를 사용하는 경우 레거시 테이블 액세스 제어를 사용하여 부여된 Hive 메타스토어의 테이블에 액세스해야 합니다. 시작하기 전에 참조하세요.

업그레이드 프로세스

  1. 사이드바에서 카탈로그를 클릭하여 카탈로그 아이콘카탈로그 탐색기를 엽니다.

  2. 카탈로그로 선택하고 hive_metastore 업그레이드할 스키마(데이터베이스)를 선택합니다.

    데이터베이스 선택

  3. 스키마 세부 정보 보기의 오른쪽 위에서 업그레이드를 클릭합니다.

  4. 업그레이드할 테이블을 모두 선택하고, 다음을 클릭합니다.

    Unity 카탈로그에서 지원하는 형식의 외부 테이블만 업그레이드 마법사를 사용하여 업그레이드할 수 있습니다. 외부 테이블 작업을 참조하세요.

  5. 각 테이블에 대한 대상 카탈로그, 스키마(데이터베이스) 및 소유자를 설정합니다.

    사용자는 카탈로그 및 스키마에 대한 권한의 컨텍스트에서 새로 만든 테이블에 액세스할 수 있습니다.

    테이블 소유자는 테이블에 대한 모든 권한(포함 SELECTMODIFY.)을 갖습니다. 소유자를 선택하지 않으면 관리되는 테이블이 소유자로 만들어집니다. Databricks는 일반적으로 그룹에 테이블 소유권을 부여하는 것이 좋습니다. Unity 카탈로그의 개체 소유권에 대한 자세한 내용은 Unity 카탈로그 개체 소유권 관리를 참조 하세요.

    동일한 카탈로그와 스키마를 여러 테이블에 할당하려면 테이블을 선택하고 대상 설정 단추를 클릭합니다.

    동일한 소유자를 여러 테이블에 할당하려면 테이블을 선택하고 소유자 설정 단추를 클릭합니다.

  6. 테이블 구성을 검토합니다. 수정하려면 이전 단추를 클릭합니다.

  7. 업그레이드 쿼리 만들기를 클릭합니다.

    생성된 SQL 문과 함께 쿼리 편집기가 표시됩니다.

  8. 쿼리를 실행합니다.

    쿼리가 완료되면 각 테이블의 메타데이터가 Hive 메타스토어에서 Unity 카탈로그로 복사됩니다. 이러한 테이블은 업그레이드 마법사에서 '업그레이드됨'으로 표시됩니다.

  9. 각 새 테이블의 권한 탭을 사용하여 세분화된 액세스 제어를 정의합니다.

  10. (선택 사항) 업그레이드된 각 Hive 테이블에 새 Unity 카탈로그 테이블을 가리키는 주석을 추가합니다.

    카탈로그의 원래 테이블 hive.metastore 로 돌아가서 테이블 주석을 추가합니다.

    테이블 주석에서 다음 구문을 사용하는 경우 사용되지 않는 Hive 테이블을 참조하는 Notebook 및 SQL 쿼리 편집기 쿼리는 취소선 텍스트를 사용하여 사용되지 않는 테이블 이름을 표시하고, 주석을 경고로 표시하고, 새 테이블을 참조하도록 코드를 업데이트할 수 있는 Databricks Assistant에 대한 빠른 수정 링크를 제공합니다.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Hive 테이블이 마이그레이션되었음을 나타내려면 주석 추가를 참조하세요.

  11. 새 테이블을 사용하도록 워크로드를 수정합니다.

    이전 선택적 단계에 나열된 것과 같은 주석을 원래 Hive 테이블에 추가한 경우 빠른 수정 링크 및 Databricks Assistant를 사용하여 워크로드를 찾고 수정할 수 있습니다.

업그레이드 마법사를 사용하여 단일 Hive 테이블을 Unity 카탈로그 외부 테이블로 업그레이드

카탈로그 탐색기의 업그레이드 마법사 를 사용하여 기본 Hive 메타스토어에서 Unity 카탈로그 메타스토어로 단일 테이블을 복사할 수 있습니다.

업그레이드 마법사를 사용할 시기를 결정하는 데 도움이 필요한 경우 Hive에서 Unity 카탈로그로 마이그레이션 옵션을 참조 하세요.

요구 사항

데이터 형식 요구 사항:

  • 외부 테이블 작업을 참조하세요.

컴퓨팅 요구 사항:

  • Unity 카탈로그를 지원하는 컴퓨팅 리소스입니다. 시작하기 전에 참조하세요.

Unity 카탈로그 개체 및 권한 요구 사항:

업그레이드 프로세스

외부 테이블을 업그레이드하려면 다음을 수행합니다.

  1. 사이드바에서 카탈로그를 클릭하여 카탈로그 아이콘카탈로그 탐색기를 엽니다.

  2. 업그레이드할 데이터베이스를 선택한 다음 테이블을 선택합니다.

  3. 테이블 세부 정보 보기의 오른쪽 위 모서리에서 업그레이드를 클릭합니다.

  4. 업그레이드할 테이블을 선택하고 다음을 클릭합니다.

  5. 대상 카탈로그, 스키마(데이터베이스) 및 소유자를 선택합니다.

    사용자는 카탈로그 및 스키마에 대한 권한의 컨텍스트에서 새로 만든 테이블에 액세스할 수 있습니다.

    테이블 소유자는 테이블에 대한 모든 권한(포함 SELECTMODIFY.)을 갖습니다. 소유자를 선택하지 않으면 관리되는 테이블이 소유자로 만들어집니다. Databricks는 일반적으로 그룹에 테이블 소유권을 부여하는 것이 좋습니다. Unity 카탈로그의 개체 소유권에 대한 자세한 내용은 Unity 카탈로그 개체 소유권 관리를 참조 하세요.

  6. 테이블 세부 정보 보기의 오른쪽 위 모서리에서 업그레이드를 클릭합니다.

  7. 업그레이드할 테이블을 선택하고 다음을 클릭합니다.

    이제 테이블 메타데이터가 Unity 카탈로그에 복사되고 새 테이블이 만들어졌습니다. 이제 사용 권한 탭을 사용하여 세분화된 액세스 제어를 정의할 수 있습니다.

  8. 사용 권한 탭을 사용하여 세분화된 액세스 제어를 정의합니다.

  9. (선택 사항) 사용자를 새 Unity 카탈로그 테이블로 가리키는 주석을 Hive 테이블에 추가합니다.

    카탈로그의 원래 테이블 hive.metastore 로 돌아가서 테이블 주석을 추가합니다.

    테이블 주석에서 다음 구문을 사용하는 경우 사용되지 않는 Hive 테이블을 참조하는 Notebook 및 SQL 쿼리 편집기 쿼리는 취소선 텍스트를 사용하여 사용되지 않는 테이블 이름을 표시하고, 주석을 경고로 표시하고, 새 테이블을 참조하도록 코드를 업데이트할 수 있는 Databricks Assistant에 대한 빠른 수정 링크를 제공합니다.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Hive 테이블이 마이그레이션되었음을 나타내려면 주석 추가를 참조하세요.

  10. 새 테이블을 사용하도록 기존 워크로드를 수정합니다.

    이전 선택적 단계에 나열된 것과 같은 주석을 원래 Hive 테이블에 추가한 경우 빠른 수정 링크 및 Databricks Assistant를 사용하여 워크로드를 찾고 수정할 수 있습니다.

    참고 항목

    이전 테이블이 더 이상 필요하지 않은 경우 Hive 메타스토어에서 삭제할 수 있습니다. 외부 테이블을 삭제해도 클라우드 테넌트의 데이터 파일은 수정되지 않습니다.

SYNC를 사용하여 Hive 테이블을 Unity 카탈로그 외부 테이블로 업그레이드

SQL 명령을 사용하여 SYNC Hive 메타스토어의 외부 테이블을 Unity 카탈로그의 외부 테이블에 복사할 수 있습니다. 개별 테이블 또는 전체 스키마를 동기화할 수 있습니다.

Databricks 작업 영역 스토리지(DBFS 루트라고도 함) 외부에 저장된 Hive 관리 테이블을 Unity 카탈로그의 외부 테이블에 복사하는 데 사용할 SYNC 수도 있습니다. 작업 영역 스토리지에 저장된 Hive 관리 테이블을 복사하는 데 사용할 수 없습니다. 해당 테이블을 복사하려면 CREATE TABLE CLONE을 대신 사용합니다.

SYNC 명령은 업그레이드하는 각 원본 테이블에 쓰기 작업을 수행하여 대상 Unity 카탈로그 외부 테이블의 레코드를 포함하여 부기용 테이블 속성을 추가합니다.

SYNC 는 Hive 메타스토어의 원본 테이블이 변경될 때 기존 Unity 카탈로그 테이블을 업데이트하는 데 사용할 수도 있습니다. 이렇게 하면 Unity 카탈로그로 점진적으로 전환하기에 좋은 도구입니다.

자세한 내용은 SYNC를 참조하세요. 업그레이드 마법사를 사용할 시기를 결정하는 데 도움이 필요한 경우 Hive에서 Unity 카탈로그로 마이그레이션 옵션을 참조 하세요.

요구 사항

데이터 형식 요구 사항:

  • 외부 테이블 작업을 참조하세요.

컴퓨팅 요구 사항:

  • Unity 카탈로그를 지원하는 컴퓨팅 리소스입니다. 시작하기 전에 참조하세요.

Unity 카탈로그 개체 및 권한 요구 사항:

Hive 테이블 액세스 요구 사항:

  • 컴퓨팅에서 공유 액세스 모드를 사용하는 경우 레거시 테이블 액세스 제어를 사용하여 부여된 Hive 메타스토어의 테이블에 액세스해야 합니다. 시작하기 전에 참조하세요.

업그레이드 프로세스

다음을 사용하여 SYNCHive 메타스토어의 테이블을 Unity 카탈로그 외부 테이블로 업그레이드하려면:

  1. Notebook 또는 SQL 쿼리 편집기에서 다음 중 하나를 실행합니다.

    외부 Hive 테이블 동기화:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    외부 Hive 스키마와 모든 테이블을 동기화합니다.

    SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    

    Databricks 작업 영역 스토리지 외부에 저장된 관리형 Hive 테이블을 동기화합니다.

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Databricks 작업 영역 스토리지 외부에 저장된 관리형 Hive 테이블이 포함된 스키마를 동기화합니다.

    SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    
  2. 계정 수준의 사용자 또는 그룹에 대한 액세스 권한을 새 테이블에 부여합니다. Unity Catalog에서 권한 관리를 참조하세요.

  3. (선택 사항) 사용자를 새 Unity 카탈로그 테이블로 가리키는 주석을 원래 Hive 테이블에 추가합니다.

    카탈로그의 원래 테이블 hive.metastore 로 돌아가서 테이블 주석을 추가합니다. 카탈로그 탐색기를 사용하여 테이블 주석을 추가하는 방법을 알아보려면 데이터 및 AI 자산에 주석 추가를 참조 하세요. Notebook 또는 SQL 쿼리 편집기에서 SQL 문을 사용하여 테이블 주석을 추가하는 방법을 알아보려면 COMMENT ON을 참조하세요.

    테이블 주석에서 다음 구문을 사용하는 경우 사용되지 않는 Hive 테이블을 참조하는 Notebook 및 SQL 쿼리 편집기 쿼리는 취소선 텍스트를 사용하여 사용되지 않는 테이블 이름을 표시하고, 주석을 경고로 표시하고, 새 테이블을 참조하도록 코드를 업데이트할 수 있는 Databricks Assistant에 대한 빠른 수정 링크를 제공합니다.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Hive 테이블이 마이그레이션되었음을 나타내려면 주석 추가를 참조하세요.

  4. 테이블을 마이그레이션한 후 사용자는 새 테이블을 사용하도록 기존 쿼리 및 워크로드를 업데이트해야 합니다.

    이전 선택적 단계에 나열된 것과 같은 주석을 원래 Hive 테이블에 추가한 경우 빠른 수정 링크 및 Databricks Assistant를 사용하여 워크로드를 찾고 수정할 수 있습니다.

  5. 이전 테이블을 삭제하기 전에 해당 테이블에 대한 액세스 권한을 철회하고 관련 쿼리 및 워크로드를 다시 실행하여 종속성을 테스트합니다.

    이전 테이블을 참조하는 기존 코드를 찾고 업데이트하는 데 도움이 되는 사용 중단 주석을 계속 사용하는 경우 이전 테이블을 삭제하지 마세요. 마찬가지로 원래 동기화 SYNC 이후 해당 테이블이 변경된 경우 이전 테이블을 삭제하지 마세요. 원본 Hive 테이블의 변경 내용으로 기존 Unity 카탈로그 테이블을 업데이트하는 데 사용할 수 있습니다.

CLONE을 사용하여 Hive 관리 테이블을 Unity 카탈로그 관리 테이블로 업그레이드

Hive 메타스토어의 관리되는 델타 테이블을 Unity 카탈로그의 관리되는 테이블로 업그레이드하는 데 사용합니다 CREATE TABLE CLONE . 개별 테이블을 복제할 수 있습니다. 레거시 Hive 메타스토어에서 Unity 카탈로그로 테이블을 복제할 때는 딥 클론을 사용해야 합니다.

사용 CLONE시기를 결정하는 데 도움이 되도록 Hive에서 Unity 카탈로그로 마이그레이션 옵션을 참조 하세요. 자세한 CLONE내용은 Azure Databricks에서 테이블 복제를 참조 하세요.

요구 사항

데이터 형식 요구 사항:

  • 델타 형식의 관리형 Hive 테이블입니다.

컴퓨팅 요구 사항:

  • Unity 카탈로그를 지원하는 컴퓨팅 리소스입니다. 시작하기 전에 참조하세요.

사용 권한 요구 사항:

  • USE CATALOG 스키마와 함께 USE SCHEMA 테이블을 추가하는 카탈로그 및 스키마에 대한 권한 또는 CREATE TABLE 카탈로그 또는 스키마의 소유자여야 합니다. Unity 카탈로그 권한 및 보안 개체를 참조하세요.
  • 컴퓨팅에서 공유 액세스 모드를 사용하는 경우 레거시 테이블 액세스 제어를 사용하여 부여된 Hive 메타스토어의 테이블에 액세스해야 합니다. 시작하기 전에 참조하세요.

업그레이드 프로세스

Hive 메타스토어의 관리 테이블을 Unity 카탈로그의 관리되는 테이블로 업그레이드하려면 다음을 수행합니다.

  1. Notebook 또는 SQL 쿼리 편집기에서 다음 중 하나를 실행합니다.

    Hive 메타스토어에서 관리되는 테이블을 심층 복제합니다.

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    DEEP CLONE hive_metastore.<source-schema>.<source-table>;
    

    테이블 속성을 포함한 추가 매개 변수에 대한 자세한 내용은 CREATE TABLE CLONE을 참조하세요.

  2. 계정 수준의 사용자 또는 그룹에 대한 액세스 권한을 새 테이블에 부여합니다. Unity Catalog에서 권한 관리를 참조하세요.

  3. (선택 사항) 사용자를 새 Unity 카탈로그 테이블로 가리키는 주석을 원래 Hive 테이블에 추가합니다.

    카탈로그의 원래 테이블 hive.metastore 로 돌아가서 테이블 주석을 추가합니다. 카탈로그 탐색기를 사용하여 테이블 주석을 추가하는 방법을 알아보려면 데이터 및 AI 자산에 주석 추가를 참조 하세요. Notebook 또는 SQL 쿼리 편집기에서 SQL 문을 사용하여 테이블 주석을 추가하는 방법을 알아보려면 COMMENT ON을 참조하세요.

    테이블 주석에서 다음 구문을 사용하는 경우 사용되지 않는 Hive 테이블을 참조하는 Notebook 및 SQL 쿼리 편집기 쿼리는 취소선 텍스트를 사용하여 사용되지 않는 테이블 이름을 표시하고, 주석을 경고로 표시하고, 새 테이블을 참조하도록 코드를 업데이트할 수 있는 Databricks Assistant에 대한 빠른 수정 링크를 제공합니다.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Hive 테이블이 마이그레이션되었음을 나타내려면 주석 추가를 참조하세요.

  4. 테이블을 마이그레이션한 후 사용자는 새 테이블을 사용하도록 기존 쿼리 및 워크로드를 업데이트해야 합니다.

    이전 선택적 단계에 나열된 것과 같은 주석을 원래 Hive 테이블에 추가한 경우 빠른 수정 링크 및 Databricks Assistant를 사용하여 워크로드를 찾고 수정할 수 있습니다.

  5. 이전 테이블을 삭제하기 전에 해당 테이블에 대한 액세스 권한을 철회하고 관련 쿼리 및 워크로드를 다시 실행하여 종속성을 테스트합니다.

    이전 테이블을 참조하는 기존 코드를 찾고 업데이트하는 데 도움이 되는 사용 중단 주석을 계속 사용하는 경우 이전 테이블을 삭제하지 마세요. 마찬가지로 단순 클론을 수행한 경우 이전 테이블을 삭제하지 마세요. 단순 클론은 원본 Hive 테이블의 데이터를 참조합니다.

CREATE TABLE AS SELECT를 사용하여 Hive 테이블을 Unity 카탈로그 관리 테이블로 업그레이드

Hive 메타스토어의 테이블을 Unity 카탈로그의 관리되는 테이블로 마이그레이션하는 데 사용할 수 없거나 사용하지 CREATE TABLE CLONE 않으려는 경우 다음을 사용하여 CREATE TABLE AS SELECTHive 테이블을 쿼리하여 Unity 카탈로그에서 새 관리형 테이블을 만들 수 있습니다. 차이점 CREATE TABLE CLONECREATE TABLE AS SELECT에 대한 자세한 내용은 Hive에서 Unity 카탈로그로 마이그레이션 옵션을 참조 하세요.

요구 사항

컴퓨팅 요구 사항:

  • Unity 카탈로그를 지원하는 컴퓨팅 리소스입니다. 시작하기 전에 참조하세요.

사용 권한 요구 사항:

  • USE CATALOG 스키마와 함께 USE SCHEMA 테이블을 추가하는 카탈로그 및 스키마에 대한 권한 또는 CREATE TABLE 카탈로그 또는 스키마의 소유자여야 합니다. Unity 카탈로그 권한 및 보안 개체를 참조하세요.
  • 컴퓨팅에서 공유 액세스 모드를 사용하는 경우 레거시 테이블 액세스 제어를 사용하여 부여된 Hive 메타스토어의 테이블에 액세스해야 합니다. 시작하기 전에 참조하세요.

업그레이드 프로세스

다음을 사용하여 CREATE TABLE AS SELECTHive 메타스토어의 테이블을 Unity 카탈로그의 관리되는 테이블로 업그레이드하려면:

  1. 기존 테이블을 쿼리하여 새 Unity 카탈로그 테이블을 만듭니다. 자리 표시자 값을 바꿉니다.

    • <uc-catalog>: 새 테이블의 Unity 카탈로그 카탈로그입니다.
    • <uc-schema>: 새 테이블의 Unity 카탈로그 스키마입니다.
    • <new-table>: Unity 카탈로그 테이블의 이름입니다.
    • <source-schema>: Hive 테이블의 스키마(예: default.)
    • <source-table>: Hive 테이블의 이름입니다.

    SQL

    CREATE TABLE <uc-catalog>.<new-schema>.<new-table>
    AS SELECT * FROM hive_metastore.<source-schema>.<source-table>;
    

    Python

    df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      name = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    R

    %r
    library(SparkR)
    
    df = tableToDF("hive_metastore.<source-schema>.<source-table>")
    
    saveAsTable(
      df = df,
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Scala

    val df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    일부 열 또는 행만 마이그레이션하려면 SELECT 문을 수정합니다.

    참고 항목

    여기에 제공된 명령은 데이터가 전용 관리되는 스토리지 위치에 복사되는 관리되는 테이블을 만듭니다. 클라우드 스토리지에서 데이터를 이동하지 않고 테이블이 Unity 카탈로그에 등록된 외부 테이블을 만들려는 경우 업그레이드 마법사를 사용하여 단일 Hive 테이블을 Unity 카탈로그 외부 테이블로 업그레이드를 참조하세요. Unity 카탈로그에서 관리되는 스토리지 위치 지정도 참조하세요.

  2. 계정 수준의 사용자 또는 그룹에 대한 액세스 권한을 새 테이블에 부여합니다. Unity Catalog에서 권한 관리를 참조하세요.

  3. (선택 사항) 사용자를 새 Unity 카탈로그 테이블로 가리키는 주석을 원래 Hive 테이블에 추가합니다.

    카탈로그의 원래 테이블 hive.metastore 로 돌아가서 테이블 주석을 추가합니다. 카탈로그 탐색기를 사용하여 테이블 주석을 추가하는 방법을 알아보려면 데이터 및 AI 자산에 주석 추가를 참조 하세요. Notebook 또는 SQL 쿼리 편집기에서 SQL 문을 사용하여 테이블 주석을 추가하는 방법을 알아보려면 COMMENT ON을 참조하세요.

    테이블 주석에서 다음 구문을 사용하는 경우 사용되지 않는 Hive 테이블을 참조하는 Notebook 및 SQL 쿼리 편집기 쿼리는 취소선 텍스트를 사용하여 사용되지 않는 테이블 이름을 표시하고, 주석을 경고로 표시하고, 새 테이블을 참조하도록 코드를 업데이트할 수 있는 Databricks Assistant에 대한 빠른 수정 링크를 제공합니다.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Hive 테이블이 마이그레이션되었음을 나타내려면 주석 추가를 참조하세요.

  4. 테이블을 마이그레이션한 후 사용자는 새 테이블을 사용하도록 기존 쿼리 및 워크로드를 업데이트해야 합니다.

    이전 선택적 단계에 나열된 것과 같은 주석을 원래 Hive 테이블에 추가한 경우 빠른 수정 링크 및 Databricks Assistant를 사용하여 워크로드를 찾고 수정할 수 있습니다.

  5. 이전 테이블을 삭제하기 전에 해당 테이블에 대한 액세스 권한을 철회하고 관련 쿼리 및 워크로드를 다시 실행하여 종속성을 테스트합니다.

    이전 테이블을 참조하는 기존 코드를 찾고 업데이트하는 데 도움이 되는 사용 중단 주석을 계속 사용하는 경우 이전 테이블을 삭제하지 마세요.

뷰를 Unity 카탈로그로 업그레이드

보기의 참조된 모든 테이블이 동일한 Unity 카탈로그 메타스토어로 업그레이드되면 새 테이블을 참조하는 새 보기를 만들 수 있습니다.

Hive 테이블이 마이그레이션되었음을 나타내는 주석 추가

사용자를 새 Unity 카탈로그 테이블로 가리키는 사용되지 않는 Hive 테이블에 주석을 추가하면 사용되지 않는 Hive 테이블을 참조하는 Notebook 및 SQL 쿼리 편집기 쿼리에서 취소선 텍스트를 사용하여 사용되지 않는 테이블 이름을 표시하고, 주석을 경고로 표시하고, 새 테이블을 참조하도록 코드를 업데이트할 수 있는 Databricks Assistant에 대한 빠른 수정 링크를 제공합니다.

Hive 테이블 사용 중단 경고

주석은 다음 형식을 사용해야 합니다.

This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

카탈로그 탐색기를 사용하여 테이블 주석을 추가하는 방법을 알아보려면 데이터 및 AI 자산에 주석 추가를 참조 하세요. Notebook 또는 SQL 쿼리 편집기에서 SQL 문을 사용하여 테이블 주석을 추가하는 방법을 알아보려면 COMMENT ON을 참조하세요.

Databricks Assistant를 사용하여 사용되지 않는 테이블 참조 업데이트

SQL 쿼리 편집기에서 Notebook 셀 또는 문의 테이블 이름에 취소선 텍스트가 표시되면 테이블 이름을 마우스로 가리켜 경고 알림을 표시합니다. 해당 경고 알림에서 테이블을 더 이상 사용되지 않는 것으로 설명하고 새 테이블 이름을 표시하는 경우 빠른 수정을 클릭한 다음 사용 중단 수정을 클릭합니다. 더 이상 사용되지 않는 테이블 이름을 새 Unity 카탈로그 테이블 이름으로 바꿀 수 있는 Databricks Assistant가 열립니다. 프롬프트에 따라 작업을 완료합니다.

Databricks Assistant를 사용하여 Hive 테이블 업데이트를 보여 주는 비디오

Databricks 길잡이 사용도 참조하세요.