주요 컨텐츠로 이동
제품

Lakehouse 업그레이드: Unity Catalog 관리 테이블로 변환하는 방법 안내

UC 외부 테이블에서 UC 관리형 테이블로 전환하여 쿼리 속도를 높이고 비용을 절감하세요

작성자: 엘리자베스 보먼 , Amit Vaswani

• Unity Catalog(UC) 외부 테이블을 UC 관리형 테이블로 원활하게 전환하여 다운타임을 최소화하고 테이블 구성 및 기록을 보존하는 방법을 알아보세요.
• Unity Catalog 관리형 테이블을 사용하여 쿼리 성능을 20배 향상하고 비용을 50% 이상 절감하며 고급 기능을 활용하세요.
• 데이터의 물리적 위치를 제어하고, 대량 전환을 수행하고, 롤백을 처리하고, 여정을 계획하는 방법을 알아보세요.

새로운 SET MANAGED 명령은 원활한 메커니즘을 제공하여 UC 외부 테이블을 UC 관리 테이블로 변환합니다. 이 과정에서 다운타임을 최소화하고 동시 쓰기를 처리하며 테이블 구성을 유지하고, 가능한 경우 테이블 기록을 보존합니다. 이 문서는 일반적으로 사용 가능한(GA) 명령을 사용하는 모범 사례와 단계별 가이드를 공유합니다.

UC 관리 테이블로 변환해야 하는 이유

Unity Catalog를 진실 공급원으로 사용하면 관리 테이블은 성능, 거버넌스 및 사용 편의성을 향상시키는 고유한 기능을 제공하며, 상호 운용성과 이식성을 유지합니다.

주요 이점은 다음과 같습니다.

  • 쿼리 성능을 20배 향상하고 스토리지 비용을 50% 이상 절감할 수 있는 자동 최적화(자세한 내용은 여기 참조).
  • 삭제된 데이터에 대한 자동 정리로 비용을 절감하고 UNDROP을 지원하는 간소화된 데이터 관리.
  • 데이터 계보, 세분화된 액세스 제어 및 Unity Catalog의 모든 읽기/쓰기 감독을 통한 안전한 테이블 액세스를 포함하는 향상된 거버넌스.
  • 자동 행 삭제(Auto-TTL) 및 행 수준 수집(Zerobus ingest)과 같은 미래 기능의 기반.
  • 상호 운용성: 변환된 테이블은 모든 타사 클라이언트의 읽기를 지원합니다(자세한 내용은 여기 참조).

SET MANAGED 변환 명령은 어떻게 도움이 될까요?

SET MANAGED 명령은 외부 테이블을 관리 테이블로 변환하는 것을 더 쉽게 만듭니다.

기능

SET MANAGED 명령의 이점

다운타임 최소화

Databricks Runtime 16.1 이상을 사용하여 테이블을 온라인 상태로 유지하고 읽기 가능하게 하며, 쓰기 다운타임을 몇 분으로 최소화합니다(또는 Databricks Runtime 15.4 이하에서는 읽기 다운타임). 다운타임.

ID 보존

테이블 이름, 권한, 태그 및 모든 테이블 설정, 테이블 기록(Delta 테이블의 경우)이 모두 유지됩니다.

동시성 처리

SET MANAGED 명령은 변환 중에 발생할 수 있는 동시 쓰기를 안전하게 처리합니다.

안전 장치로서의 "실행 취소"

UNSET MANAGED라는 다른 명령을 사용하면 안전망으로 14일 이내에 변환된 테이블을 UC 외부로 롤백할 수 있습니다.

외부 테이블에서 관리 테이블로 변환하는 방법은 무엇인가요?

변환을 위한 실무자를 위한 단계별 가이드

SET MANAGED 명령은 테이블 변환을 간단하게 만듭니다. 단계별 가이드에서는 외부 테이블에서 관리 테이블로 원활하게 전환할 수 있도록 주요 팁을 간략하게 설명했습니다.

1단계: 변환할 외부 테이블 선택

먼저 Unity Catalog 외부 테이블 몇 개를 UC 관리 테이블로 변환하여 팀이 프로세스, 사전 요구 사항 및 변환 후 단계를 숙지하도록 하세요.

예를 들어, Databricks 클라이언트에서만 읽고 쓰는 몇 개의 테이블에서 이 명령을 먼저 사용해 볼 수 있습니다(아래 "단계적 여정 계획" 섹션 참조).

2단계: 사전 점검 목록

테이블 읽기 및 쓰기 프로그램의 생태계가 변경 준비가 되었는지 확인하세요. 선택한 각 UC 외부 테이블 및 관련 워크로드에 대해 다음을 수행해야 합니다.

  1. 이름 기반 액세스 사용으로 업데이트: 작업, 노트북 및 쿼리를 확인하여 경로 기반 액세스(예: SELECT * FROM delta.'s3://path/to/table') 대신 세 부분으로 된 이름(catalog.schema.table)을 사용하여 테이블에 액세스하는지 확인합니다. Databricks Labs는 IDE 터미널에서 다음 Databricks Labs UCX lint-local-code를 실행하여 로컬 머신의 코드 디렉터리(.py 또는 .sql 파일)를 분석하는 데 도움이 되는 UCX 도구를 개발했습니다.
    1. test123
    2. 경로 기반 리디렉션은 이름 기반 액세스로 업데이트하는 것이 불가능한 경우 레거시 코드를 처리하는 데 사용할 수도 있습니다.
  2. 모든 유지 관리 작업 취소: 충돌을 방지하려면 변환 프로세스 중에 OPTIMIZE, ZORDER 또는 CLUSTER BY 작업이 실행 중이거나 실행되도록 예약되어 있지 않은지 확인합니다(DESCRIBE HISTORY를 사용하여 확인할 수 있음). 변환 후 Predictive Optimization이 최적화 작업을 자동으로 처리합니다.
  3. [선택 사항] Databricks Runtime 버전 업그레이드: 테이블을 읽거나 쓰는 모든 Databricks 클러스터는 Delta 테이블의 전체 테이블 기록을 유지하기 위해 Databricks Runtime 15.4 LTS 이상을 사용하는 것이 이상적입니다. Databricks Runtime 16.1 이상을 사용하면 판독기 다운타임을 완전히 제거할 수 있습니다.

3단계: 변환 명령 실행

다음 변환 명령을 사용하여 변환을 실행합니다.

참고: UniForm이 활성화된 테이블의 경우 SET MANAGED TRUNCATE UNIFORM HISTORY를 사용합니다.

4단계: 결과 확인

명령이 완료된 후 테이블 메타데이터를 확인하여 변환이 성공했는지 확인합니다.

이 명령의 출력에서 “Type” 속성이 이제 “MANAGED”로 표시되어야 합니다. Catalog Explorer의 “테이블 정보” 섹션에서도 동일한 정보를 볼 수 있습니다.

5단계: 변환 후 정리

변환이 성공적으로 완료된 후 다음 최종 단계를 완료하여 원활한 전환을 보장합니다.

  • 일시 중지된 경우 테이블을 사용하는 스트리밍 읽기 또는 쓰기 작업을 다시 시작합니다.
  • 새로 관리되는 테이블에서 모든 읽기 및 쓰기 프로그램이 예상대로 작동하는지 확인하기 위해 주요 쿼리를 실행하여 기능 테스트를 수행합니다.
  • 예측 최적화가 이제 테이블에 대해 활성화되었는지 확인하여 자동 유지 관리의 이점을 누리십시오(자동 액체 클러스터링을 위해 자동 클러스터링을 활성화하거나 활성화되었는지 확인할 수도 있습니다).
  • 단계별 전환 계획

    모든 테이블을 UC 관리형으로 성공적으로 전환하는 것은 여정입니다. 단계적 접근 방식을 채택하고 미리 계획하면 원활한 전환을 보장하는 데 도움이 될 수 있습니다.

    1. Databricks 전용 테이블 변환: Databricks 클라이언트에서만 읽고 쓰는 테이블을 우선적으로 변환하십시오. 실험적인 도구인 Access Insights를 사용하여 "Databricks 리더 및 작성자만" 대 "Databricks 외부 리더" 또는 "Databricks 외부 작성자"가 있는 테이블을 식별하는 데 도움을 받을 수 있습니다.
    2. 지원되는 외부 도구가 있는 테이블 변환: UC 관리형 테이블에서 기본적으로 읽기를 지원하는 타사 도구에 의해 액세스되는 테이블을 결정하고 다음으로 변환하십시오. 타사 액세스는 변환 후에도 계속 작동합니다.
    3. 복잡한 사례는 마지막에 처리: 지원되지 않는 레거시 도구로 액세스되는 테이블의 경우 읽기용으로 호환성 모드와 같은 솔루션을 사용하는 것을 계획하십시오. 타사 쓰기가 필요한 경우 이러한 테이블을 다시 만들고 미리 보기에서 UC 관리형 테이블에 대한 쓰기를 활성화하십시오.

    추가 고려 사항

    변환 명령에 관한 다음 세부 정보는 미리 알아두면 유용할 수 있습니다.

    • 롤백 시간 제한: 롤백 안전망을 사용하려면 변환 후 14일 이내에 UC 관리형 테이블에서 UNSET MANAGED를 실행해야 합니다. 그 후에는 스토리지 비용을 절감하기 위해 원본 외부 데이터가 영구적으로 삭제됩니다.
    • 시간 여행 미묘한 차이: 클라이언트를 15.4 LTS 이상으로 업그레이드하면 도움이 될 수 있습니다. Databricks Runtime 14.3 LTS 이하에서 실행되는 클러스터의 경우 또는 롤백을 위해 UNSET MANAGED 명령을 사용하는 경우 변환 후 타임스탬프가 아닌 버전 번호로만 이전 커밋으로 시간 여행할 수 있습니다.
    • 작성자를 위한 다운타임 최소화: 이 명령은 다운타임을 최소화하도록 설계되었습니다. 작성자는 테이블 위치가 새 관리형 위치로 전환되는 최종 단계에서 잠시 중단(1~5분 예상)을 경험할 수 있습니다.
    • 임시 Delta Sharing 중단: 변환 중에 Delta Sharing이 일시적으로 중단되지만 프로세스가 완료되면 다시 제대로 작동합니다.

    프로 팁: 대량 변환으로 확장

    특정 스키마 내에서 수백 또는 수천 개의 Unity Catalog 외부 테이블을 대량으로 변환하려면 다음 간단한 SQL 스크립트를 사용할 수 있습니다.

    참고: 이 스크립트는 실시간 수정을 수행합니다. 프로덕션에서 실행하기 전에 개발 환경에서 철저히 테스트하는 것이 좋습니다.

    데이터의 물리적 위치 제어

    Unified Catalog(UC) 관리형 테이블은 고객 관리 스토리지에 상주하며 개방형 카탈로그 API를 통해 액세스할 수 있습니다. 데이터가 물리적으로 저장되는 방식에 대한 더 많은 제어를 원하거나 데이터를 분리하려는 경우 카탈로그 또는 스키마 수준에서 관리형 스토리지 위치를 정의할 수 있습니다. 해당 카탈로그 또는 스키마에서 생성된 모든 새 관리형 테이블은 해당 지정된 위치에 자동으로 구성됩니다.

    기존 외부 테이블의 경우 관리형 스토리지 위치를 설정한 다음 SET MANAGED 명령을 사용하여 UC 관리형 테이블로 변환할 수 있습니다. 변환 중에 시스템은 정의한 관리형 위치를 존중하여 클라우드 스토리지에서 데이터의 물리적 레이아웃을 제어할 수 있습니다. 지금 바로 비공개 미리 보기에서 이 기능을 사용하려면 계정 팀에 문의하십시오.

    지금 외부 테이블에서 관리형 테이블로 변환

    공개 미리 보기 이후 불과 몇 달 만에 수백 명의 고객이 SET MANAGED를 사용하여 수천 개의 테이블을 성공적으로 변환했습니다.

    여기에 설명된 모든 내용은 이제 GA이므로 지금 바로 사용해보고 Unity Catalog 관리형 테이블의 성능, 거버넌스 및 단순성을 활용하십시오.

    (이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

    최신 게시물을 이메일로 받아보세요

    블로그를 구독하고 최신 게시물을 이메일로 받아보세요.