데이터 로드 준비
데이터 로드 준비
이 주제는 지원되는 데이터 파일 형식과 데이터 압축에 대한 개요를 제공해요. 데이터의 구조에 따라 로드 전에 데이터를 준비해야 할 수도 있어요.
출처: Documentation
본문
지원되는 데이터 유형
Snowflake가 지원하는 데이터 유형에 대한 설명은 SQL 데이터 유형 참조를 참고해요.
데이터 파일 압축
대규모 데이터 세트를 로드할 때는 데이터 파일을 압축하는 것을 권장해요. 각 데이터 유형에 지원되는 압축 알고리즘은 CREATE FILE FORMAT을 참고해요.
압축된 데이터를 로드할 때 Snowflake는 데이터 파일의 파일 및 코덱 압축 방법을 자동으로 결정해요. COMPRESSION 파일 형식 옵션은 데이터 파일이 스테이지에서 이미 어떻게 압축되어 있는지 설명해요. COMPRESSION 옵션을 다음 중 한 가지 방법으로 설정해요.
- COPY INTO <table> 문에 직접 지정된 파일 형식 옵션으로서.
- 이름이 있는 파일 형식 또는 스테이지 객체에 대해 지정된 파일 형식 옵션으로서. 그런 다음 COPY INTO <table> 문에서 이름이 있는 파일 형식/스테이지 객체를 참조할 수 있어요.
지원되는 파일 형식
다음 파일 형식이 지원돼요.
| 구조적/반구조적 | 유형 | 비고 |
|---|---|---|
| 구조적 | 구분 기호(Delimited, CSV, TSV 등) | 유효한 단일 바이트 구분 기호를 모두 지원하며, 기본값은 쉼표(즉, CSV)예요. |
| 반구조적 | JSON | |
| Avro | 압축된 Avro 파일의 자동 감지 및 처리를 포함해요. | |
| ORC | 압축된 ORC 파일의 자동 감지 및 처리를 포함해요. | |
| Parquet | 압축된 Parquet 파일의 자동 감지 및 처리를 포함해요. 현재 Snowflake는 Parquet writer v1로 생성된 Parquet 파일의 스키마를 지원해요. writer v2로 생성된 파일은 지원되지 않아요. | |
| XML |
파일 형식 옵션은 파일에 포함된 데이터의 유형과 데이터 형식에 대한 기타 관련 특성을 지정해요. 지정할 수 있는 파일 형식 옵션은 로드할 계획인 데이터 유형에 따라 달라져요. Snowflake는 전체 파일 형식 옵션 기본값 집합을 제공해요.
반구조적 파일 형식
Snowflake는 반구조적 데이터를 네이티브로 지원하므로, 반구조적 데이터를 사전에 스키마를 정의하지 않고 관계형 테이블에 로드할 수 있어요. Snowflake는 VARIANT 유형의 컬럼에 반구조적 데이터를 직접 로드하는 것을 지원해요(자세한 내용은 반구조적 데이터 유형 참고).
현재 지원되는 반구조적 데이터 형식에는 JSON, Avro, ORC, Parquet 또는 XML이 있어요.
- JSON, Avro, ORC, Parquet 데이터의 경우 각 최상위 완전 객체가 테이블의 별도 행으로 로드돼요. 각 객체는 유효하기만 하면 줄바꿈 문자와 공백을 포함할 수 있어요.
- XML 데이터의 경우 각 최상위 요소가 테이블의 별도 행으로 로드돼요. 요소는 같은 이름의 시작 태그와 종료 태그로 식별돼요.
일반적으로 반구조적 데이터를 저장하는 테이블은 단일 VARIANT 컬럼으로 구성돼요. 데이터가 로드되면 구조적 데이터와 유사하게 데이터를 조회할 수 있어요. 배열에서 값과 객체를 추출하는 것 같은 다른 작업을 수행할 수도 있어요. 자세한 내용은 FLATTEN 테이블 함수를 참고해요.
참고 — 반구조적 데이터는 여러 컬럼이 있는 테이블에 로드할 수 있지만, 반구조적 데이터는 구조적 파일(예: CSV 파일)의 필드로 저장되어야 해요. 그런 다음 데이터를 테이블의 지정된 컬럼에 로드할 수 있어요.
이름이 있는 파일 형식
Snowflake는 필요한 모든 형식 정보를 캡슐화하는 데이터베이스 객체인 이름이 있는 파일 형식 만들기를 지원해요. 이름이 있는 파일 형식은 개별 파일 형식 옵션을 지정할 수 있는 모든 위치에서 입력으로 사용할 수 있어, 비슷하게 형식이 지정된 데이터의 로드 프로세스를 간소화해요.
이름이 있는 파일 형식은 선택 사항이지만, 비슷하게 형식이 지정된 데이터를 정기적으로 로드할 계획이라면 권장돼요.
이름이 있는 파일 형식 만들기
Snowsight 또는 SQL을 사용해 파일 형식을 만들 수 있어요.
- Snowsight: 탐색 메뉴에서 Catalog » Explorer를 선택하고, 파일 형식을 추가할 스키마가 있는 데이터베이스를 찾아 스키마를 선택한 다음, Create » File Format을 선택해요. SQL 문을 완료하고 Create File Format을 선택해요.
- SQL: CREATE FILE FORMAT
모든 파일 형식 옵션과 기본값에 대한 설명은 CREATE FILE FORMAT을 참고해요.
지원되는 복사 옵션
복사 옵션은 오류 처리, 최대 데이터 크기 등에 관한 데이터 로드의 동작을 결정해요.
모든 복사 옵션과 기본값에 대한 설명은 COPY INTO <table>을 참고해요.
기본 파일 형식 및 복사 옵션 재정의
다음 위치 중 하나에서 원하는 로드 동작(즉, 기본 설정 재정의)을 지정할 수 있어요.
- 테이블 정의에서: 권장하지 않음.
- 이름이 있는 스테이지 정의에서: 권장하지 않음.
- 데이터를 로드할 때 COPY INTO TABLE 문에 직접: 옵션을 명시적으로 개별 설정해요. 자세한 내용은 COPY INTO <table>을 참고해요.
참고 — CREATE STAGE, ALTER STAGE, CREATE TABLE 또는 ALTER TABLE 명령으로 복사 옵션을 지정하지 마세요. 복사 옵션을 지정하려면 COPY INTO <table> 명령을 사용할 것을 권장해요.
파일 형식 옵션이나 복사 옵션이 여러 위치에 지정된 경우 로드 작업은 다음 우선 순위로 옵션을 적용해요.
- COPY INTO TABLE 문.
- 스테이지 정의.
- 테이블 정의.
참고
- 여러 위치에 설정된 파일 형식 옵션은 누적되지 않아요. 한 위치에 설정된 옵션은 우선 순위가 낮은 위치에 설정된 모든 옵션(같은 옵션이든 다른 옵션이든)을 재정의해요.
- 여러 위치에 설정된 복사 옵션은 누적돼요. 한 위치에 설정된 개별 옵션은 우선 순위가 낮은 위치에 설정된 같은 옵션을 재정의해요.