데이터 스테이징

이 항목에서는 데이터 파일의 로드를 준비하기 위한 모범 사례, 일반 지침 및 중요한 고려 사항을 제공합니다.

이 항목의 내용:

경로를 기준으로 데이터 구성하기

내부(예: Snowflake) 및 외부(Amazon S3, Google Cloud Storage 또는 Microsoft Azure) 스테이지 참조에는 경로(또는 AWS 용어의 접두사)가 포함될 수 있습니다. 일반 데이터 세트를 스테이징할 때 데이터를 생성한 날짜와 함께 지리적 위치 또는 기타 소스 식별자와 같은 식별 세부 정보를 포함하는 논리적 경로로 데이터를 분할하는 것이 좋습니다.

경로를 기준으로 데이터 파일을 구성하면 단일 명령으로 분할된 데이터의 일부를 Snowflake로 복사할 수 있습니다. 이를 통해 병렬 작업을 사용하여 파일의 하위 세트과 일치하는 동시 COPY 문을 실행할 수 있습니다.

예를 들어, 지리적 위치를 기준으로 북미 회사의 데이터를 저장하는 경우 데이터 쓰기 날짜와 함께 경로에 대륙, 국가 및 도시와 같은 식별자를 포함할 수 있습니다.

  • Canada/Ontario/Toronto/2016/07/10/05/

  • United_States/California/Los_Angeles/2016/06/01/11/

  • United_States/New York/New_York/2016/12/21/03/

  • United_States/California/San_Francisco/2016/08/03/17/

이름이 지정된 스테이지를 생성할 때 경로의 모든 부분을 지정할 수 있습니다. 예를 들어, 위의 예시 경로 중 하나를 사용하여 외부 스테이지를 생성합니다.

CREATE STAGE my_stage URL='s3://mybucket/United_States/California/Los_Angeles/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');
Copy

내부 사용자 또는 테이블 스테이지에서 파일을 스테이징할 때 경로를 추가할 수도 있습니다. 예를 들어, t1 테이블 스테이지의 특정 경로에 있는 mydata.csv 스테이지:

PUT file:///data/mydata.csv @%t1/United_States/California/Los_Angeles/2016/06/01/11/
Copy

스테이징된 데이터를 로드할 때 데이터를 포함하는 가장 세부적인 수준으로 경로를 좁혀 데이터 로드 성능을 향상해야 합니다.

로드할 파일 목록을 추가로 제한하려면 다음 옵션 중 하나를 사용하십시오.

  • 접미사 또는 확장자를 제외하고 파일 이름이 일치하는 경우 경로에 파일 이름의 일치하는 부분을 포함합니다. 예:

    COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/mydata;
    
    Copy
  • FILES 또는 PATTERN 옵션을 추가합니다(스테이징된 데이터 파일 선택 옵션 참조). 예:

    COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/
      FILES=('mydata1.csv', 'mydata1.csv');
    
    COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/
      PATTERN='.*mydata[^[0-9]{1,3}$$].csv';
    
    Copy