COPY 문을 사용하여 웨어하우스에 데이터 수집

적용 대상:✅ Microsoft Fabric 내 웨어하우스

COPY 문은 웨어하우스 테이블에 데이터를 수집하는 기본 방법입니다. COPY는 원본 파일 형식 옵션, 거부된 행을 저장할 위치, 헤더 행 건너뛰기 및 기타 옵션을 유연하게 구성하여 외부 Azure Storage 계정에서 높은 처리량 데이터 수집을 수행합니다.

이 자습서에서는 T-SQL COPY 문을 사용하는 웨어하우스 테이블에 대한 데이터 수집 예제를 보여 줍니다. Azure Open Datasets의 Bing COVID-19 샘플 데이터를 사용합니다. 스키마 및 사용 권한을 포함하여 이 데이터에 대한 자세한 내용은 Bing COVID-19를 참조하세요.

참고 항목

더 많은 예제 및 전체 구문을 포함하여 T-SQL COPY 문에 대한 자세한 내용은 COPY(Transact-SQL)를 참조하세요.

테이블 만들기

COPY 문을 사용하려면 대상 테이블을 만들어야 합니다. 이 샘플의 대상 테이블을 만들려면 다음 단계를 사용합니다.

  1. Microsoft Fabric 작업 영역에서 웨어하우스를 찾아 엽니다.

  2. 탭으로 전환하여 새 SQL 쿼리를 선택합니다.

    새 SQL 쿼리 단추를 보여 주는 사용자 작업 영역의 위쪽 섹션 스크린샷

  3. 이 자습서에서 대상으로 사용되는 테이블을 만들려면 다음 코드를 실행합니다.

    CREATE TABLE [dbo].[bing_covid-19_data]
    (
        [id] [int] NULL,
        [updated] [date] NULL,
        [confirmed] [int] NULL,
        [confirmed_change] [int] NULL,
        [deaths] [int] NULL,
        [deaths_change] [int] NULL,
        [recovered] [int] NULL,
        [recovered_change] [int] NULL,
        [latitude] [float] NULL,
        [longitude] [float] NULL,
        [iso2] [varchar](8000) NULL,
        [iso3] [varchar](8000) NULL,
        [country_region] [varchar](8000) NULL,
        [admin_region_1] [varchar](8000) NULL,
        [iso_subdivision] [varchar](8000) NULL,
        [admin_region_2] [varchar](8000) NULL,
        [load_time] [datetime2](6) NULL
    );
    

COPY 문을 사용하여 Parquet 데이터 수집

첫 번째 예제에서는 Parquet 원본을 사용하여 데이터를 로드합니다. 이 데이터는 공개적으로 사용할 수 있으며 인증이 필요하지 않으므로 원본과 대상을 지정하여 이 데이터를 쉽게 복사할 수 있습니다. 인증 세부 정보가 필요하지 않습니다. FILE_TYPE 인수만 지정하면 됩니다.

Parquet 원본을 사용하여 COPY 문을 실행하려면 다음 코드를 사용합니다.

COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet'
WITH (
    FILE_TYPE = 'PARQUET'
);

COPY 문을 사용하여 CSV 데이터 수집 및 헤더 행 건너뛰기

CSV(쉼표로 구분된 값) 파일에는 CSV 파일의 테이블을 나타내는 열 이름을 제공하는 헤더 행이 있는 것이 일반적입니다. COPY 문은 CSV 파일에서 데이터를 복사하고 원본 파일 헤더에서 하나 이상의 행을 건너뛸 수 있습니다.

이전 예제를 실행하여 Parquet에서 데이터를 로드한 경우 테이블에서 모든 데이터를 삭제하는 것이 좋습니다.

DELETE FROM [dbo].[bing_covid-19_data];

헤더 행을 건너뛰는 CSV 파일에서 데이터를 로드하려면 다음 코드를 사용합니다.

COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv'
WITH (
    FILE_TYPE = 'CSV', 
    FIRSTROW = 2
);

결과 확인

COPY 문은 새 테이블에 4,766,736개의 행을 수집하여 완료됩니다. 테이블의 총 행 수를 반환하는 쿼리를 실행하여 작업이 성공적으로 실행되었는지 확인할 수 있습니다.

SELECT COUNT(*) FROM [dbo].[bing_covid-19_data];

실행 사이에 있는 행을 삭제하지 않고 두 예제를 모두 실행한 경우 두 배의 행이 있는 이 쿼리의 결과가 표시됩니다. 이 경우 데이터 수집에 적합하지만 이 데이터를 추가로 실험하려는 경우 모든 행을 삭제하고 데이터를 한 번만 수집하는 것이 좋습니다.