다음을 통해 공유


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

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

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

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 웨어하우스를 select 하십시오.

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

    select * from csv.<path>
    

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

  4. 실행을 클릭합니다.

2단계: table 만들기

이 단계에서는 들어오는 데이터를 보관하기 위해 Azure Databricks 작업 영역에서 table 만드는 방법을 설명합니다.

  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단계: 클라우드 스토리지에서 데이터를 table로 로드

이 단계에서는 ADLS Gen2 컨테이너에서 Azure Databricks 작업 영역의 table에 데이터를 불러오는 방법을 설명합니다.

  1. 사이드바에서 >를 클릭합니다.

  2. SQL 편집기 메뉴 모음에서 SQL 웨어하우스를 select 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. 실행을 클릭합니다.

    참고 항목

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

정리

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

tables을 삭제하세요

  1. 사이드바에서 >를 클릭합니다.

  2. SQL 웨어하우스 Select 을(를) 사용하고 SQL 웨어하우스가 실행 중인지 확인합니다.

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

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

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

SQL 편집기에서 쿼리 삭제

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

추가 리소스