Unity 카탈로그 볼륨 또는 외부 위치에서 COPY INTO를 사용하여 데이터 로드
COPY INTO에서 지원하는 원본 및 파일 형식에서 Unity 카탈로그 관리 테이블 또는 외부 테이블로 데이터를 수집하는 방법을 COPY INTO
알아봅니다. Unity 카탈로그는 원시 데이터에 대한 보안 액세스를 구성하기 위한 새로운 옵션을 추가합니다. Unity 카탈로그 볼륨 또는 외부 위치를 사용하여 클라우드 개체 스토리지의 데이터에 액세스할 수 있습니다.
Databricks는 볼륨을 사용하여 클라우드 스토리지의 COPY INTO
파일에 액세스하는 것이 좋습니다. 볼륨 및 외부 위치 사용에 대한 권장 사항에 대한 자세한 내용은 Unity 카탈로그 모범 사례를 참조 하세요.
이 문서에서는 이 명령을 사용하여 COPY INTO
Azure 계정의 ADLS Gen2(Azure Data Lake Storage Gen2) 컨테이너에서 Databricks SQL의 테이블로 데이터를 로드하는 방법을 설명합니다.
이 문서의 단계에서는 관리자가 ADLS Gen2의 원본 파일에 액세스할 수 있도록 Unity 카탈로그 볼륨 또는 외부 위치를 구성한 것으로 가정합니다. 관리자가 서비스 주체를 사용하도록 컴퓨팅 리소스를 구성한 경우 서비스 주체와 함께 COPY INTO를 사용하여 데이터 로드 또는 자습서: Spark SQL로 COPY INTO를 대신 참조하세요. 관리자가 임시 자격 증명(Blob SAS 토큰)을 제공한 경우 임시 자격 증명과 함께 COPY INTO를 사용하여 데이터 로드의 단계를 수행합니다.
시작하기 전에
COPY INTO
Unity 카탈로그 볼륨 또는 Unity 카탈로그 외부 위치로 정의된 클라우드 개체 스토리지 경로에서 데이터를 로드하기 전에 다음이 있어야 합니다.
READ VOLUME
볼륨에 대한 권한 또는READ FILES
외부 위치에 대한 권한입니다.볼륨을 만드는 방법에 대한 자세한 내용은 Unity 카탈로그 볼륨이란?을 참조하세요.
외부 위치를 만드는 방법에 대한 자세한 내용은 클라우드 스토리지를 Azure Databricks에 연결하는 외부 위치 만들기를 참조하세요.
클라우드 개체 스토리지 URL 또는 볼륨 경로 형식의 원본 데이터에 대한 경로입니다.
클라우드 개체 스토리지 URL 예:
abfss://container@storageAccount.dfs.core.windows.net/raw-data/json
.볼륨 경로 예제:
/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data/json
.USE SCHEMA
대상 테이블을 포함하는 스키마에 대한 권한입니다.USE CATALOG
부모 카탈로그에 대한 권한입니다.
Unity 카탈로그 권한에 대한 자세한 내용은 Unity 카탈로그 권한 및 보안 개체를 참조 하세요.
볼륨에서 데이터 로드
Unity 카탈로그 볼륨에서 데이터를 로드하려면 권한이 있어야 합니다 READ VOLUME
. 볼륨 권한은 지정된 볼륨 아래의 모든 중첩된 디렉터리에 적용됩니다.
예를 들어 경로 /Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/
가 있는 볼륨에 액세스할 수 있는 경우 다음 명령이 유효합니다.
COPY INTO landing_table
FROM '/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data'
FILEFORMAT = PARQUET;
COPY INTO json_table
FROM '/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data/json'
FILEFORMAT = JSON;
필요에 따라 dbfs 스키마와 함께 볼륨 경로를 사용할 수도 있습니다. 예를 들어 다음 명령도 유효합니다.
COPY INTO landing_table
FROM 'dbfs:/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data'
FILEFORMAT = PARQUET;
COPY INTO json_table
FROM 'dbfs:/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data/json'
FILEFORMAT = JSON;
외부 위치를 사용하여 데이터 로드
다음 예제에서는 Unity 카탈로그 외부 위치를 사용하여 ADLS Gen2의 데이터를 테이블로 로드하여 소스 코드에 대한 액세스를 제공합니다.
COPY INTO my_json_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/jsonData'
FILEFORMAT = JSON;
외부 위치 권한 상속
외부 위치 권한은 지정된 위치 아래의 모든 중첩된 디렉터리에 적용됩니다.
예를 들어 URL abfss://container@storageAccount.dfs.core.windows.net/raw-data
로 정의된 외부 위치에 액세스할 수 있으면 다음 명령이 유효합니다.
COPY INTO landing_table
FROM 'abfss://container@storageAccount.dfs.core.windows.net/raw-data'
FILEFORMAT = PARQUET;
COPY INTO json_table
FROM 'abfss://container@storageAccount.dfs.core.windows.net/raw-data/json'
FILEFORMAT = JSON;
이러한 외부 위치에 대한 권한은 지정된 위치의 상위 또는 평행한 위치에 있는 디렉터리에 대해 어떠한 권한도 부여하지 않습니다. 예를 들어 다음 명령 중 어느 것도 유효하지 않습니다.
COPY INTO parent_table
FROM 's3://landing-bucket'
FILEFORMAT = PARQUET;
COPY INTO sibling_table
FROM 's3://landing-bucket/json-data'
FILEFORMAT = JSON;
대상 테이블의 3개 수준 네임스페이스
3계층 식별자(<catalog_name>.<database_name>.<table_name>
)를 사용하여 Unity 카탈로그 테이블을 대상으로 지정할 수 있습니다. USE CATALOG <catalog_name>
및 USE <database_name>
명령을 사용하여 현재 쿼리 및 Notebook에 대해 기본 카탈로그 및 데이터베이스를 설정할 수 있습니다.