Google Cloud Storage 스테이지에서 데이터 복사하기

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

이 항목의 내용:

데이터 로드하기

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

참고

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

ALTER WAREHOUSE mywarehouse RESUME;
Copy

중요

외부 스테이지에 대해 반환된 오브젝트의 목록에는 1개 이상의 《디렉터리 blob》가 포함될 수 있으며, 이는 기본적으로 슬래시 문자(/)로 끝나는 경로입니다. 예를 들면 다음과 같습니다.

LIST @my_gcs_stage;

+---------------------------------------+------+----------------------------------+-------------------------------+
| name                                  | size | md5                              | last_modified                 |
|---------------------------------------+------+----------------------------------+-------------------------------|
| my_gcs_stage/load/                    |  12  | 12348f18bcb35e7b6b628ca12345678c | Mon, 11 Sep 2019 16:57:43 GMT |
| my_gcs_stage/load/data_0_0_0.csv.gz   |  147 | 9765daba007a643bdff4eae10d43218y | Mon, 11 Sep 2019 18:13:07 GMT |
+---------------------------------------+------+----------------------------------+-------------------------------+
Copy

Google에서 제공하는 다른 도구를 사용하지 않고 Google Cloud Platform 콘솔에서 디렉터리를 만들 때 이러한 blob이 나열됩니다.

오브젝트 목록에 디렉터리 blob이 포함되면 스테이지를 참조하는 COPY 문이 실패할 수 있습니다. 오류를 방지하려면 스테이지의 파일 목록에 디렉터리 blob이 포함된 경우 파일 패턴(즉, PATTERN 절) 일치를 사용하여 포함할 파일을 식별하는 것이 좋습니다. 예는 이 항목의 패턴 일치를 사용하여 데이터 로드하기 섹션을 참조하십시오. 또는 COPY 문에 ON_ERROR = SKIP_FILE을 설정합니다.

패턴 일치를 사용하여 데이터 로드하기

다음 예에서는 Google Cloud Storage용 통합 구성하기 에서 생성된 my_gcs_stage 스테이지의 파일에서 데이터를 로드합니다. 이 명령은 패턴 일치를 사용하여 이름이 sales 문자열로 시작하는 파일만 로드합니다.

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

명명된 파일 형식이 스테이지 정의에 포함되어 있으므로 파일 형식 옵션이 지정되지 않습니다.

경로/접두사를 사용하여 데이터 로드하기

다음 예에서는 데이터 로드 준비하기 에서 생성된 명명된 my_csv_format 파일 형식을 사용하여 클라우드 저장소 버킷에서 data/files 경로(즉, 접두사)가 포함된 모든 파일을 로드합니다. 경로는 패턴 일치와 조합하여 사용할 수 있습니다.

COPY INTO mytable
  FROM @my_gcs_stage/mybucket/data/files
  FILE_FORMAT = (FORMAT_NAME = my_csv_format);
Copy

임시 파일 형식 옵션을 사용하여 데이터 로드하기

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

임시 데이터 로딩, 즉, COPY 문이 스테이지를 참조하지 않을 때는 저장소 통합 참조가 필요합니다.

COPY INTO mytable
  FROM 'gcs://mybucket/data/files'
  STORAGE_INTEGRATION = myint
  FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
Copy

데이터 유효성 검사하기

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

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

또한, COPY INTO <테이블> 은 ON_ERROR 복사 옵션을 제공하여 로드 중 파일에 오류가 발생하는 경우 수행할 작업을 지정할 수 있습니다.

데이터 로드 모니터링하기

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

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

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