다음을 통해 공유


Unity 카탈로그에서 관리하는 데이터에 대한 경로는 어떻게 작동합니까?

이 문서에서는 Unity 카탈로그의 경로 겹침에 대한 제한 사항을 설명하고, Unity 카탈로그 개체의 데이터 파일에 대한 경로 기반 액세스 패턴을 자세히 설명하고, Unity 카탈로그가 테이블 및 볼륨의 경로를 관리하는 방법을 설명합니다.

참고 항목

볼륨은 Databricks Runtime 13.3 LTS 이상에서만 지원됩니다. Databricks Runtime 12.2 LTS 이하에서는 경로에 대한 /Volumes 작업이 성공할 수 있지만 예상대로 Unity 카탈로그 볼륨에 데이터를 유지하는 대신 컴퓨팅 클러스터에 연결된 임시 스토리지 디스크에 데이터를 쓸 수 있습니다.

Unity 카탈로그 개체의 경로는 겹칠 수 없습니다.

Unity 카탈로그는 데이터의 관리되는 디렉터리를 겹치지 않도록 하여 데이터 거버넌스를 적용합니다. Unity 카탈로그는 다음 규칙을 적용합니다.

  • 외부 위치는 다른 외부 위치와 겹칠 수 없습니다.
  • 테이블 및 볼륨은 외부 위치 또는 메타스토어 루트 위치에 데이터 파일을 저장합니다.
  • 볼륨은 다른 볼륨과 겹칠 수 없습니다.
  • 테이블은 다른 테이블과 겹칠 수 없습니다.
  • 테이블과 볼륨은 서로 겹칠 수 없습니다.
  • 관리되는 스토리지 위치는 서로 겹칠 수 없습니다. Unity 카탈로그에서 관리되는 스토리지 위치 지정을 참조하세요.
  • 외부 볼륨은 관리되는 스토리지 위치와 겹칠 수 없습니다.
  • 외부 테이블은 관리되는 스토리지 위치와 겹칠 수 없습니다.

이러한 규칙은 Unity 카탈로그에 다음과 같은 제한이 있음을 의미합니다.

  • 다른 외부 위치 내에서는 외부 위치를 정의할 수 없습니다.
  • 다른 볼륨 내에서 볼륨을 정의할 수 없습니다.
  • 다른 테이블 내에는 테이블을 정의할 수 없습니다.
  • 볼륨 내의 데이터 파일 또는 디렉터리에는 테이블을 정의할 수 없습니다.
  • 테이블 내의 디렉터리에 볼륨을 정의할 수 없습니다.

참고 항목

항상 경로 기반 액세스를 사용하여 Delta Lake를 비롯한 볼륨에서 데이터 파일을 쓰거나 읽을 수 있습니다. 이러한 데이터 파일은 Unity 카탈로그 메타스토어에서 테이블로 등록할 수 없습니다.

관리되는 테이블 및 관리되는 볼륨에 대한 경로는 Unity 카탈로그에서 완전히 관리됩니다.

관리되는 테이블 또는 관리되는 볼륨을 만들 때 Unity 카탈로그는 포함된 스키마와 연결된 Unity 카탈로그 구성 스토리지 위치에 새 디렉터리를 만듭니다. 이 디렉터리의 이름은 이미 있는 다른 디렉터리와의 잠재적 충돌을 방지하기 위해 임의로 생성됩니다.

이 동작은 Hive metastore가 관리되는 테이블을 만드는 방법과 다릅니다. Databricks는 항상 볼륨 경로를 사용하여 테이블 이름 및 Unity 카탈로그 관리 볼륨을 사용하여 Unity 카탈로그 관리 테이블과 상호 작용하는 것이 좋습니다.

외부 테이블 및 외부 볼륨에 대한 경로는 Unity 카탈로그에 의해 관리됩니다.

외부 테이블 또는 외부 볼륨을 만들 때 Unity 카탈로그가 관리하는 외부 위치 내의 경로를 지정합니다.

Important

Databricks는 외부 위치의 루트에 외부 볼륨 또는 외부 테이블을 만들지 않는 것이 좋습니다. 대신 외부 위치 내의 하위 디렉터리에 외부 볼륨 및 외부 테이블을 만듭니다. 이러한 권장 사항은 실수로 겹치는 경로를 방지하는 데 도움이 됩니다. Unity 카탈로그 개체의 경로가 겹칠 수 없음을 참조하세요.

Databricks는 사용 편의성을 위해 볼륨 경로를 사용하여 테이블 이름 및 Unity 카탈로그 외부 볼륨을 사용하여 Unity 카탈로그 외부 테이블과 상호 작용하는 것이 좋습니다.

또는 해당 Unity 카탈로그 개체에 대한 충분한 권한이 있는 사용자는 정규화된 클라우드 개체 스토리지 경로를 사용하여 외부 테이블 또는 외부 볼륨의 데이터에 액세스할 수 있습니다.

Important

Unity 카탈로그는 외부 테이블 또는 외부 볼륨과 연결된 데이터에 클라우드 URI를 사용하여 액세스하기 위한 모든 권한을 관리합니다. 이러한 권한은 외부 위치와 연결된 모든 권한을 재정의합니다. Unity 카탈로그 권한 및 보안 개체 참조

Unity 카탈로그의 데이터에 액세스하려면 어떻게 해야 하나요?

Unity 카탈로그 개체는 개체 식별자, 볼륨 경로 또는 클라우드 URI를 통해 데이터에 대한 액세스를 제공합니다. 이러한 값을 사용하여 볼륨 및 테이블과 연결된 데이터에 액세스할 수 있습니다.

Unity 카탈로그 테이블은 다음 패턴의 3계층 식별자를 사용하여 액세스됩니다.

<catalog_name>.<schema_name>.<table_name>

Unity 카탈로그의 볼륨 파일 경로란?

볼륨은 다음 패턴으로 데이터 파일에 액세스하는 파일 경로를 제공합니다.

/Volumes/<catalog_name>/<schema_name>/<volume_name>/<path_to_file>

클라우드 URI를 사용하려면 다음 예제와 같이 사용자가 드라이버, 스토리지 컨테이너 식별자 및 대상 파일에 대한 전체 경로를 제공해야 합니다.

abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>

다음 표에서는 Unity 카탈로그 개체에 허용되는 액세스 방법을 보여 줍니다.

Object 개체 식별자 파일 경로 클라우드 URI
외부 위치 아니요 아니요
관리되는 테이블 no 아니요
외부 테이블 아니요
관리되는 볼륨 아니요 아니요
외부 볼륨 아니요

참고 항목

Unity 카탈로그 볼륨은 관리 명령(예 CREATE VOLUME : 및 DROP VOLUME)에 대해 다음 패턴의 3계층 개체 식별자를 사용합니다.

<catalog_name>.<schema_name>.<volume_name>

실제로 볼륨의 파일을 사용하려면 경로 기반 액세스를 사용해야 합니다.