Copy data from an Azure stage

Copy data from an Azure stage (Azure 스테이지에서 데이터 복사)

스테이징된 파일에서 대상 테이블로 데이터를 로드해요.

출처: Snowflake Documentation

본문

데이터 로드

COPY INTO

을 실행해 데이터를 대상 테이블로 로드해요.

Note

데이터 로딩에는 웨어하우스가 필요해요. 자동 재개(auto resume)로 구성되지 않은 웨어하우스를 사용한다면 ALTER WAREHOUSE를 실행해 웨어하우스를 재개해요. 웨어하우스 시작은 최대 5분이 걸릴 수 있어요.

ALTER WAREHOUSE mywarehouse RESUME;

다음 예는 Azure 스테이지 생성에서 만든 my_azure_stage라는 이름의 스테이지에 있는 파일에서 데이터를 로드해요. 패턴 매칭을 사용해, 문은 이름이 sales 문자열로 시작하는 파일만 로드해요:

COPY INTO mytable
  FROM @my_azure_stage
  PATTERN='.*sales.*.csv';

명명된 파일 형식이 스테이지 정의에 포함되었으므로 파일 형식 옵션이 지정되지 않았음을 주목해요.

다음 예는 데이터 로드 준비에서 만든 my_csv_format 명명 파일 형식을 사용해 Azure 컨테이너의 data/files 프리픽스가 붙은 모든 파일을 로드해요:

COPY INTO mytable
  FROM 'azure://myaccount.blob.core.windows.net/mycontainer/data/files'
  CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=abcDEFGHIjklmNOPqrsTUVwxyZ123456789%3D')
  ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'aBcDeFGHI0jklMnoP0QrsTUVWXyz1234567891abcDEFG=')
  FILE_FORMAT = (FORMAT_NAME = my_csv_format);

다음 임시(ad hoc) 예는 Azure 컨테이너의 모든 파일에서 데이터를 로드해요. COPY 명령은 명명된 파일 형식을 참조하는 대신 파일 형식 옵션을 지정해요. 이 예는 파이프(|) 필드 구분 기호가 있는 CSV 파일을 로드해요. COPY 명령은 데이터 파일의 첫 줄을 건너뜁니다:

COPY INTO mytable
  FROM 'azure://myaccount.blob.core.windows.net/mycontainer/data/files'
  CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=abcDEFGHIjklmNOPqrsTUVwxyZ123456789%3D')
  ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'aBcDeFGHI0jklMnoP0QrsTUVWXyz1234567891abcDEFG=')
  FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);

데이터 검증

데이터를 로드하기 전에 업로드된 파일의 데이터가 올바르게 로드될지 검증할 수 있어요.

업로드된 파일의 데이터를 검증하려면 VALIDATION_MODE 파라미터를 사용해 검증 모드로 COPY INTO

을 실행해요. VALIDATION_MODE 파라미터는 파일에서 마주친 오류를 반환해요. 그런 다음 파일의 데이터를 수정해 오류 없이 로드되도록 할 수 있어요.

또한 COPY INTO

은 로드 중에 파일에서 오류가 발견되면 수행할 작업을 지정하는 ON_ERROR 복사 옵션을 제공해요.

Note

Azure 저장소 계정은 MD5 파일 검증 기능을 지원하지만, Azure는 100MB보다 큰 파일에 대해 MD5 해시 값을 계산하지 않아요. 자세한 내용은 대용량 파일의 MD5 해시 계산을 참고해요.

데이터 로드 모니터링

Snowflake는 이전 14일 내에 실행된 COPY INTO 명령에 대한 과거 데이터를 보존해요. 이 메타데이터는 업로드 완료 후 파일 삭제를 포함한 로딩 과정을 모니터링하고 관리하는 데 사용될 수 있어요.

  • Snowsight의 Query History 페이지에서 각 COPY INTO
명령의 상태를 모니터링해요.
  • LOAD_HISTORY Information Schema 뷰를 사용해 COPY INTO 명령으로 테이블에 로드된 데이터의 기록을 검색해요.
  • 한 스테이지에서 다른 스테이지로 파일 복사

    COPY FILES 명령을 사용해 한 명명된 스테이지에서 다른 스테이지로 파일을 복사해 데이터를 단일 위치로 조직해요.

    다음 예는 소스 스테이지(src_stage)에서 대상 스테이지(trg_stage)로 모든 파일을 복사해요:

    COPY FILES
      INTO @trg_stage
      FROM @src_stage;
    

    복사할 파일 이름 목록을 지정하거나 패턴 매칭으로 파일을 복사할 수도 있어요. 정보는 COPY FILES 예제를 참고해요.

    더 알아보기 (Learn more)

    — COPY 명령