서비스 주체와 함께 COPY INTO 사용하여 데이터 로드
이 문서에서는 COPY INTO
명령을 사용하여 Azure 계정의 ADLS Gen2(Azure Data Lake Storage Gen2) 컨테이너에서 데이터를 Databricks SQL의 table로 로드하는 방법을 설명합니다.
이 문서의 단계에서는 관리자가 ADLS Gen2의 원본 파일에 액세스할 수 있도록 Azure Databricks 서비스 주체를 사용하도록 SQL 웨어하우스를 구성한 것으로 가정합니다. 관리자가 스토리지 자격 증명을 사용하여 Unity
Databricks는 Databricks SQL을 사용하여 증분 및 대량 데이터 로드에 COPY INTO 명령을 사용하는 것이 좋습니다.
참고 항목
COPY INTO
는 수천 개의 파일이 포함된 데이터 원본에 적합합니다. Databricks는 수백만 개의 파일을 로드할 때 자동 로더를 사용할 것을 권장합니다. 이 기능은 Databricks SQL에서 지원되지 않습니다.
시작하기 전에
Azure Databricks에 데이터를 로드하기 전에 다음이 있는지 확인합니다.
- ADLS Gen2의 데이터에 액세스합니다. 관리자는 Databricks SQL 웨어하우스에서 원본 파일을 읽을 수 있도록 수집 을 위한 데이터 액세스 구성의 단계를 먼저 완료해야 합니다.
- Databricks SQL 웨어하우스.
- SQL 웨어하우스에 대한 권한을 관리할 수 있습니다.
- ADLS Gen2 컨테이너의 데이터 경로입니다.
- Databricks SQL 사용자 인터페이스에 익숙합니다.
1단계: 클라우드 스토리지의 데이터에 대한 액세스 확인
클라우드 개체 스토리지에서 올바른 데이터에 액세스할 수 있는지 확인하려면 다음을 수행합니다.
사이드바에서 >를 클릭합니다.
SQL 편집기 메뉴 모음에서 SQL 웨어하우스를 select 하십시오.
SQL 편집기에서 다음 코드를 붙여넣습니다.
select * from csv.<path>
관리자로부터 받은 ADLS Gen2 컨테이너 경로로 바꿉
<path>
다. 예를 들면 다음과 같습니다abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>
.실행을 클릭합니다.
2단계: table 만들기
이 단계에서는 들어오는 데이터를 보관하기 위해 Azure Databricks 작업 영역에서 table 만드는 방법을 설명합니다.
SQL 편집기에서 다음 코드를 붙여넣습니다.
CREATE TABLE <catalog_name>.<schema_name>.<table_name> ( tpep_pickup_datetime TIMESTAMP, tpep_dropoff_datetime TIMESTAMP, trip_distance DOUBLE, fare_amount DOUBLE, pickup_zip INT, dropoff_zip INT );
실행을 클릭합니다.
3단계: 클라우드 스토리지에서 데이터를 table로 로드
이 단계에서는 ADLS Gen2 컨테이너에서 Azure Databricks 작업 영역의 table에 데이터를 불러오는 방법을 설명합니다.
사이드바에서 >를 클릭합니다.
SQL 편집기 메뉴 모음에서 SQL 웨어하우스를 select SQL 웨어하우스가 실행 중인지 확인합니다.
SQL 편집기에서 다음 코드를 붙여넣습니다. 이 코드에서 다음을 수행합니다.
-
<container>
스토리지 계정 내에서 ADLS Gen2 컨테이너의 이름을 사용합니다. -
<storage-account>
을 ADLS Gen2 스토리지 계정 이름으로 바꿉니다. -
<folder>
데이터를 포함하는 폴더의 이름으로 지정합니다. -
<blob-sas-token>
관리자로부터 받은 Blob SAS 토큰의 값과 함께 사용합니다.
COPY INTO <catalog-name>.<schema-name>.<table-name> FROM 'abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>' FILEFORMAT = CSV FORMAT_OPTIONS ( 'header' = 'true', 'inferSchema' = 'true' ); SELECT * FROM <catalog-name>.<schema-name>.<table-name>;
참고 항목
FORMAT_OPTIONS
은(는)FILEFORMAT
와(과) 다릅니다. 이 경우header
옵션은 Azure Databricks에 CSV 파일의 첫 번째 행을 헤더로 처리하도록 지시하고,inferSchema
옵션은 Azure Databricks가 CSV 파일에서 각 필드의 데이터 형식을 자동으로 확인하도록 지시합니다.-
실행을 클릭합니다.
참고 항목
실행을 다시 클릭하면 새 데이터가 table로드되지 않습니다. 이는
COPY INTO
명령이 새 데이터로 간주되는 것만 처리하기 때문입니다.
정리
더 이상 유지하지 않으려면 작업 영역에서 연결된 리소스를 정리할 수 있습니다.
tables을 삭제하세요
사이드바에서 >를 클릭합니다.
SQL 웨어하우스 Select 을(를) 사용하고 SQL 웨어하우스가 실행 중인지 확인합니다.
다음 코드를 붙여넣습니다.
DROP TABLE <catalog-name>.<schema-name>.<table-name>;
실행을 클릭합니다.
이 쿼리에 대한 탭 위로 마우스를 가져간 다음 X 아이콘을 클릭합니다.
SQL 편집기에서 쿼리 삭제
- 사이드바에서 SQL 편집기를 클릭합니다.
- SQL 편집기 메뉴 모음에서 이 자습서에 대해 만든 각 쿼리의 탭을 마우스로 가리킨 다음 X 아이콘을 클릭합니다.
추가 리소스
- COPY INTO 참조 문서