Share via


서비스 주체와 함께 COPY INTO를 사용하여 데이터 로드

이 문서에서는 이 명령을 사용하여 COPY INTO Azure 계정의 ADLS Gen2(Azure Data Lake Storage Gen2) 컨테이너에서 Databricks SQL의 테이블로 데이터를 로드하는 방법을 설명합니다.

이 문서의 단계에서는 관리자가 ADLS Gen2의 원본 파일에 액세스할 수 있도록 Azure Databricks 서비스 주체를 사용하도록 SQL 웨어하우스를 구성한 것으로 가정합니다. 관리자가 스토리지 자격 증명을 사용하여 Unity 카탈로그 외부 위치를 구성한 경우 대신 Unity 카탈로그 볼륨 또는 외부 위치에서 COPY INTO를 사용하여 데이터 로드를 참조하세요. 관리자가 임시 자격 증명(Blob SAS 토큰)을 제공한 경우 임시 자격 증명과 함께 COPY INTO를 사용하여 데이터 로드의 단계를 수행합니다.

Databricks는 Databricks SQL을 사용하여 증분 및 대량 데이터 로드에 COPY INTO 명령을 사용할 것을 권장합니다.

참고 항목

COPY INTO는 수천 개의 파일이 포함된 데이터 원본에 적합합니다. Databricks는 수백만 개의 파일을 로드할 때 자동 로더를 사용할 것을 권장합니다. 이 기능은 Databricks SQL에서 지원되지 않습니다.

시작하기 전에

Azure Databricks에 데이터를 로드하기 전에 다음이 있는지 확인합니다.

  • ADLS Gen2의 데이터에 액세스합니다. 관리자는 Databricks SQL 웨어하우스에서 원본 파일을 읽을 수 있도록 수집 을 위한 데이터 액세스 구성의 단계를 먼저 완료해야 합니다.
  • Databricks SQL 웨어하우스.
  • SQL 웨어하우스에 대한 권한을 관리할 수 있습니다.
  • ADLS Gen2 컨테이너의 데이터 경로입니다.
  • Databricks SQL 사용자 인터페이스에 익숙합니다.

1단계: 클라우드 스토리지의 데이터에 대한 액세스 확인

클라우드 개체 스토리지에서 올바른 데이터에 액세스할 수 있는지 확인하려면 다음을 수행합니다.

  1. 사이드바에서 만들기 및 쿼리를 클릭합니다.

  2. SQL 편집기 메뉴 모음에서 SQL 웨어하우스를 선택합니다.

  3. SQL 편집기에서 다음 코드를 붙여넣습니다.

    select * from csv.<path>
    

    관리자로부터 받은 ADLS Gen2 컨테이너 경로로 바꿉 <path> 다. 예를 들면 다음과 같습니다 abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>.

  4. 실행을 클릭합니다.

2단계: 테이블 만들기

이 단계에서는 들어오는 데이터를 저장할 테이블을 Azure Databricks 작업 영역에 만드는 방법을 설명합니다.

  1. 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
    );
    
  2. 실행을 클릭합니다.

3단계: 클라우드 스토리지에서 테이블로 데이터 로드

이 단계에서는 ADLS Gen2 컨테이너의 데이터를 Azure Databricks 작업 영역의 테이블로 로드하는 방법을 설명합니다.

  1. 사이드바에서 만들기 및 쿼리를 클릭합니다.

  2. SQL 편집기 메뉴 모음에서 SQL 웨어하우스를 선택하고 SQL 웨어하우스가 실행 중인지 확인합니다.

  3. 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 파일에서 각 필드의 데이터 형식을 자동으로 확인하도록 지시합니다.

  4. 실행을 클릭합니다.

    참고 항목

    실행을 다시 클릭하면 테이블에 새 데이터가 로드되지 않습니다. 이는 COPY INTO 명령이 새 데이터로 간주되는 것만 처리하기 때문입니다.

정리

더 이상 유지하지 않으려면 작업 영역에서 연결된 리소스를 클린 수 있습니다.

테이블 삭제

  1. 사이드바에서 만들기 및 쿼리를 클릭합니다.

  2. SQL 웨어하우스를 선택하고 SQL 웨어하우스가 실행 중인지 확인합니다.

  3. 다음 코드를 붙여넣습니다.

    DROP TABLE <catalog-name>.<schema-name>.<table-name>;
    
  4. 실행을 클릭합니다.

  5. 이 쿼리에 대한 탭 위로 마우스를 가져간 다음 X 아이콘을 클릭합니다.

SQL 편집기에서 쿼리 삭제

  1. 사이드바에서 SQL 편집기를 클릭합니다.
  2. SQL 편집기 메뉴 모음에서 이 자습서에 대해 만든 각 쿼리의 탭을 마우스로 가리킨 다음 X 아이콘을 클릭합니다.

추가 리소스