일반 데이터 로드 관리하기

이 항목에서는 일반 데이터의 로드를 관리하기 위한 모범 사례, 일반 지침 및 중요한 고려 사항에 대해 설명합니다.

이 항목의 내용:

스테이징된 데이터 파일 분할하기

ETL(추출, 변환, 로드) 프로세스 또는 정기적인 시스템 생성 데이터 가져오기와 같은 정기적인 데이터 로드를 계획하는 경우에는 논리적이고 세분화된 경로를 사용하여 내부(예: Snowflake) 스테이지 또는 외부 위치(S3 버킷 또는 Azure 컨테이너)에서 데이터를 분할하는 것이 중요합니다. 데이터가 작성된 날짜와 함께 애플리케이션 또는 위치와 같은 식별 세부 정보를 포함하는 분할 구조를 생성합니다. 그러면 명령 1개를 사용하여 분할된 데이터의 일부를 Snowflake로 복사할 수 있습니다. 처음으로 테이블을 채울 때에는 시간, 일, 월 또는 연도별로 데이터를 Snowflake로 복사할 수 있습니다.

경로를 사용하는 분할된 S3 버킷의 몇 가지 예:

s3://bucket_name/application_one/2016/07/01/11/

s3://bucket_name/application_two/location_one/2016/07/01/14/

여기서:

application_one , application_two , location_one

경로에 있는 모든 데이터의 소스에 대한 세부 정보를 식별합니다. 데이터는 작성된 날짜별로 구성할 수 있습니다. 선택 사항인 24시간 디렉터리는 각 디렉터리의 데이터 양을 줄입니다.

참고

S3는 Snowflake에서 사용하는 각 COPY 문과 함께 디렉터리 목록을 전송하므로 각 디렉터리의 파일 수를 줄이면 COPY 문의 성능이 향상됩니다. 매 시간마다 10~15분 단위로 폴더에 하위 폴더를 생성하는 것을 고려할 수도 있습니다.

유사하게 내부 스테이지에서 파일을 스테이징할 때 경로를 추가할 수도 있습니다. 예:

PUT file:///tmp/file_20160701.11*.csv @my_stage/<application_one>/<location_one>/2016/07/01/11/;
Copy

스테이징된 데이터 로드하기

스테이징된 파일에 대한 정확한 경로를 지정하여 정리된 데이터 파일을 Snowflake 테이블에 로드합니다. 자세한 내용은 경로를 기준으로 데이터 구성하기 섹션을 참조하십시오.

로드한 데이터 파일 삭제하기

스테이징된 파일의 데이터가 로드되면 데이터가 실수로 다시 로드(중복)되지 않도록 스테이징된 파일을 제거하는 것이 좋습니다.

참고

데이터가 성공적으로 로딩될 때까지 스테이징된 파일을 제거하지 마십시오. 데이터가 성공적으로 로딩되었는지 확인하려면 COPY_HISTORY 명령을 사용하십시오. STATUS 열을 확인하여 파일의 데이터가 로딩되었는지 확인하십시오. 상태가 Load in progress 인 경우 스테이징된 파일을 제거하면 부분 로드 및 데이터 손실이 발생할 수 있습니다.

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

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

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

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