Staging data

Staging data (데이터 스테이징)

이 주제는 로딩을 위한 데이터 파일을 준비하기 위한 모범 사례, 일반 지침, 중요한 고려 사항을 제공해요.

출처: Snowflake Documentation

본문

경로별 데이터 조직

내부(즉, 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');

내부 사용자·테이블 스테이지에 파일을 스테이징할 때도 경로를 추가할 수 있어요. 예를 들어 t1 테이블 스테이지의 특정 경로에 mydata.csv를 스테이징해요:

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

스테이징된 데이터를 로드할 때는 데이터 로드 성능을 위해 데이터를 포함하는 가장 세분화된 수준으로 경로를 좁혀요.

다음 옵션 중 하나를 사용해 로드할 파일 목록을 더 제한해요:

  • 파일 이름이 접미사나 확장자를 제외하고 일치한다면 파일 이름의 일치하는 부분을 경로에 포함해요. 예:
COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/mydata;
COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/
  FILES=('mydata1.csv', 'mydata2.csv');

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

더 알아보기 (Learn more)