내부 스테이지에서 데이터 복사하기

스테이징된 파일에서 대상 테이블로 데이터를 로드합니다.

이 항목의 내용:

데이터 로드하기

COPY INTO <테이블> 을 실행하여 스테이징된 데이터를 대상 테이블에 로드합니다.

참고

데이터를 로드하려면 웨어하우스 가 필요합니다. 자동으로 다시 시작하도록 설정되지 않은 웨어하우스를 사용 중인 경우에는 ALTER WAREHOUSE 를 실행하여 웨어하우스를 재개합니다. 웨어하우스를 시작하기 위해서는 최대 5분이 걸릴 수 있습니다.

ALTER WAREHOUSE mywarehouse RESUME;
Copy

사용자 스테이지

다음 예에서는 데이터 로드 준비하기 에서 생성한 명명된 my_csv_format 파일 형식을 사용하여 사용자 스테이지에서 접두사가 staged 인 모든 파일의 데이터를 로드합니다.

COPY INTO mytable from @~/staged FILE_FORMAT = (FORMAT_NAME = 'my_csv_format');
Copy

테이블 스테이지

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

COPY INTO mytable FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
Copy

테이블 스테이지의 파일에서 데이터를 복사할 때 Snowflake는 테이블 스테이지의 파일을 자동으로 확인하기 때문에 FROM 절을 생략할 수 있습니다.

명명된 스테이지

다음 예에서는 로컬 파일을 위한 내부 스테이지 선택하기 에서 생성된 명명된 my_stage 스테이지에서 모든 파일의 데이터를 로드합니다.

COPY INTO mytable from @my_stage;
Copy

스테이지 정의에 포함되어 있으므로 파일 형식을 지정할 필요가 없습니다.

데이터 유효성 검사하기

데이터를 로드하기 전, 업로드된 파일의 데이터가 올바르게 로드되는지 확인할 수 있습니다.

업로드된 파일 데이터의 유효성을 검사하려면 VALIDATION_MODE 매개 변수를 사용하여 유효성 검사 모드에서 COPY INTO <테이블> 을 실행합니다. VALIDATION_MODE 매개 변수는 파일에서 발생한 모든 오류를 반환합니다. 그런 다음 파일의 데이터를 수정하여 오류 없이 로드할 수 있습니다.

또한, COPY INTO <테이블> 명령에서 ON_ERROR 복사 옵션을 사용하면 로드하는 동안 파일에 오류가 발생한 경우 수행할 작업을 나타냅니다.

내부적으로 스테이징된 파일 모니터링

Snowflake는 내부 저장소(사용자, 테이블 및 스테이지)에 업로드된 각 파일에 대한 자세한 메타데이터를 유지 관리하며, 그러한 메타데이터는 다음과 같습니다.

  • 파일 이름

  • 파일 크기(압축, 업로드 중 압축이 지정된 경우)

  • LAST_MODIFIED 날짜, 즉 데이터 파일이 처음 스테이징된 날짜 또는 파일이 마지막으로 수정된 날짜 중 더 늦은 날짜의 타임스탬프

또한, Snowflake는 이전 14일 이내에 실행된 COPY INTO 명령에 대한 과거 데이터를 유지합니다. 메타데이터는 업로드 완료 후 파일 삭제를 포함하여 로드 프로세스를 모니터링하고 관리하기 위한 용도로 사용할 수 있습니다.

  • LIST 명령을 사용하여 스테이징된 데이터 파일의 상태를 확인합니다.

  • COPY INTO <테이블> 명령의 상태는 Classic Console 의 History History tab 페이지에서 모니터링할 수 있습니다.

  • VALIDATE 함수를 사용하여 로드한 데이터 파일의 유효성을 검사하고 로드하는 동안 발생한 모든 오류를 검색합니다.

  • LOAD_HISTORY Information Schema 뷰를 사용하여 COPY INTO 명령을 통해 테이블에 로드된 데이터 내역을 검색합니다.

데이터 파일 관리하기

스테이징된 파일은 다음 방법을 사용하여 Snowflake 스테이지(사용자 스테이지, 테이블 스테이지 또는 명명된 스테이지)에서 삭제할 수 있습니다.

  • 로드된 파일은 COPY INTO <테이블> 명령에서 PURGE 복사 옵션을 지정하여 로드하는 동안 스테이지에서 삭제할 수 있습니다.

  • 로드가 완료되면 REMOVE 명령을 사용하여 스테이지에서 파일을 제거합니다.

파일을 제거하면 실수로 다시 로드되는 것이 방지됩니다. 또한, COPY 명령이 스테이지의 기존 파일이 이미 로드되었는지 여부를 확인하기 위해 스캔해야 하는 파일 수를 줄이기 때문에 로드 성능이 향상됩니다.