Snowflake❄️의 Data Warehousing Workshop을 진행하면서 작업한 내용을 정리하고자 합니다.
Badge 1: 데이터 웨어하우징 워크샵 - KR
이번 내용은 Lesson 5: File Formats & the Load Wizard 과정을 진행하면서 작성한 내용입니다.
📓 Preparing Data for Loading
📓 Vegetable Details Table Data
ROOT_DEPTH
열을 다음과 같이 바꾸고, CSV 파일로 출력하기로 합니다. 하지만 CSV를 로드할 수 없는데요, 이유가 무엇일까요?
🥋 Create a Vegetable Details Table
워크시트 컨텍스트를 GARDEN_PLANTS.VEGGIES
로 설정해야합니다.
create table vegetable_details
(
plant_name varchar(25)
, root_depth_code varchar(1)
);
🥋 Massaging Data Prior to Load
📓 Uncle Yer Tries Out Different Data Options
📓 Uncle Yer Can Create File Formats to Match the Versions/Variations He Wants to Load
- pipe/vertical bar(
|
)로 구분된 값 - tab(
)으로 구분된 값
- 큰 따옴표(
"
)로 묶여진 값
🥋 Setting Up File Formats
🥋 Create Two File Formats
마법사 기반 파일 형식 생성은 Classic Console
에서만 생성 가능합니다.AppUI
에서는 SQL 문 파일 형식 생성만 가능합니다.
마법사로 생성하면 왼쪽 하단 모서리에 Show SQL
버튼이 있고, 이를 클릭하면, SQL로 파일 형식을 생성할 수 있습니다.
1. PIPECOLSEP_ONEHEADROW
|
로 구분된 파일
ALTER FILE FORMAT "GARDEN_PLANTS"."VEGGIES".PIPECOLSEP_ONEHEADROW
SET COMPRESSION = 'AUTO'
FIELD_DELIMITER = '|'
RECORD_DELIMITER = '\n'
SKIP_HEADER = 1
FIELD_OPTIONALLY_ENCLOSED_BY = 'NONE'
TRIM_SPACE = FALSE
ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE
ESCAPE = 'NONE'
ESCAPE_UNENCLOSED_FIELD = '\134'
DATE_FORMAT = 'AUTO'
TIMESTAMP_FORMAT = 'AUTO'
NULL_IF = ('\\N');
2. COMMASEP_DBLQUOT_ONEHEADROW
,
와 "
로 구분된 파일
ALTER FILE FORMAT "GARDEN_PLANTS"."VEGGIES".COMMASEP_DBLQUOT_ONEHEADROW
SET COMPRESSION = 'AUTO'
FIELD_DELIMITER = ',' RECORD_DELIMITER = '\n'
SKIP_HEADER = 1
FIELD_OPTIONALLY_ENCLOSED_BY = '\042'
TRIM_SPACE = FALSE
ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE
ESCAPE = 'NONE'
ESCAPE_UNENCLOSED_FIELD = '\134'
DATE_FORMAT = 'AUTO'
TIMESTAMP_FORMAT = 'AUTO'
NULL_IF = ('\\N');
🥋 🎯 Loading the Table Using the Load Wizard
🥋 Load the Comma Separated, Double-Quote Enclosed Data
1. warehouse 선택
2. source files : veggies_root_depth_comma_opt_enclosed.txt
3. File Format : COMMASEP_DBLQUOT_ONEHEADROW
4. Load Results
🎯 Attempt to Load the Pipe Delimited Data, Edit the File Format, Load the Data
파이프로 구분된 파일인 veggies_root_depth_pipe.txt
를 업로드 해보면 아래와 같은 에러가 발생합니다.
데이터를 살펴보면, S
앞에 공백이 있습니다.
File Format을 수정하여, 값 주변의 공백을 제거하는 옵션을 선택하면 됩니다.
업로드 성공 !
🎯 Viewing Our Table Data
1. 데이터셋 살펴보기
select * from vegetable_details;
2. 두 번 나타나는 식물 이름 확인하기
Spinach
의 count가 2개인 것을 알 수 있습니다.
3. 제거하는 방법 찾기
ROOT_DEPTH_CODE
가 S
와 D
로 두 개 입니다.
select * from vegetable_details
where plant_name = 'Spinach';
ROOT_DEPTH_CODE
열에 D
인 행 하나를 삭제합니다.
delete from vegetable_details
where plant_name = 'Spinach'
and root_depth_code = 'D';
4. 최종 확인
💯 Lesson 5: File Formats & the Load Wizard 완료!