CustomSeparated 형식
CustomSeparated 형식
CustomSeparated 형식은 Template과 유사하지만, 모든 컬럼 이름과 타입을 출력하거나 읽으며 format_custom_escaping_rule 설정의 이스케이프 규칙과 커스텀 구분자 설정들을 사용해요. 사용자가 원하는 대로 행과 필드 구분자를 지정할 수 있는 유연한 형식입니다.
출처: 문서
본문
| Input | Output | Alias |
|---|---|---|
| ✔ | ✔ |
설명 (Description)
Template과 유사하지만 모든 컬럼 이름과 타입을 출력하거나 읽으며, format_custom_escaping_rule 설정의 이스케이프 규칙과 다음 설정들의 구분자를 사용합니다:
- format_custom_field_delimiter
- format_custom_row_before_delimiter
- format_custom_row_after_delimiter
- format_custom_row_between_delimiter
- format_custom_result_before_delimiter
- format_custom_result_after_delimiter
format 문자열의 이스케이프 규칙 설정과 구분자는 사용하지 않아요. TemplateIgnoreSpaces와 유사한 CustomSeparatedIgnoreSpaces 형식도 있습니다.
사용 예시 (Example usage)
데이터 삽입 (Inserting data)
football.txt라는 이름의 다음 txt 파일을 사용합니다:
row('2022-04-30';2021;'Sutton United';'Bradford City';1;4),row('2022-04-30';2021;'Swindon Town';'Barrow';2;1),row('2022-04-30';2021;'Tranmere Rovers';'Oldham Athletic';2;0),row('2022-05-02';2021;'Salford City';'Mansfield Town';2;2),row('2022-05-02';2021;'Port Vale';'Newport County';1;2),row('2022-05-07';2021;'Barrow';'Northampton Town';1;3),row('2022-05-07';2021;'Bradford City';'Carlisle United';2;0),row('2022-05-07';2021;'Bristol Rovers';'Scunthorpe United';7;0),row('2022-05-07';2021;'Exeter City';'Port Vale';0;1),row('2022-05-07';2021;'Harrogate Town A.F.C.';'Sutton United';0;2),row('2022-05-07';2021;'Hartlepool United';'Colchester United';0;2),row('2022-05-07';2021;'Leyton Orient';'Tranmere Rovers';0;1),row('2022-05-07';2021;'Mansfield Town';'Forest Green Rovers';2;2),row('2022-05-07';2021;'Newport County';'Rochdale';0;2),row('2022-05-07';2021;'Oldham Athletic';'Crawley Town';3;3),row('2022-05-07';2021;'Stevenage Borough';'Salford City';4;2),row('2022-05-07';2021;'Walsall';'Swindon Town';0;3)
커스텀 구분자 설정을 구성합니다:
SET format_custom_row_before_delimiter = 'row(';
SET format_custom_row_after_delimiter = ')';
SET format_custom_field_delimiter = ';';
SET format_custom_row_between_delimiter = ',';
SET format_custom_escaping_rule = 'Quoted';
데이터를 삽입합니다:
INSERT INTO football FROM INFILE 'football.txt' FORMAT CustomSeparated;
데이터 읽기 (Reading data)
커스텀 구분자 설정을 구성합니다:
SET format_custom_row_before_delimiter = 'row(';
SET format_custom_row_after_delimiter = ')';
SET format_custom_field_delimiter = ';';
SET format_custom_row_between_delimiter = ',';
SET format_custom_escaping_rule = 'Quoted';
CustomSeparated 형식을 사용하여 데이터를 읽습니다:
SELECT *
FROM football
FORMAT CustomSeparated
출력은 구성된 커스텀 형식이 됩니다:
row('2022-04-30';2021;'Sutton United';'Bradford City';1;4),row('2022-04-30';2021;'Swindon Town';'Barrow';2;1),row('2022-04-30';2021;'Tranmere Rovers';'Oldham Athletic';2;0),row('2022-05-02';2021;'Port Vale';'Newport County';1;2),row('2022-05-02';2021;'Salford City';'Mansfield Town';2;2),row('2022-05-07';2021;'Barrow';'Northampton Town';1;3),row('2022-05-07';2021;'Bradford City';'Carlisle United';2;0),row('2022-05-07';2021;'Bristol Rovers';'Scunthorpe United';7;0),row('2022-05-07';2021;'Exeter City';'Port Vale';0;1),row('2022-05-07';2021;'Harrogate Town A.F.C.';'Sutton United';0;2),row('2022-05-07';2021;'Hartlepool United';'Colchester United';0;2),row('2022-05-07';2021;'Leyton Orient';'Tranmere Rovers';0;1),row('2022-05-07';2021;'Mansfield Town';'Forest Green Rovers';2;2),row('2022-05-07';2021;'Newport County';'Rochdale';0;2),row('2022-05-07';2021;'Oldham Athletic';'Crawley Town';3;3),row('2022-05-07';2021;'Stevenage Borough';'Salford City';4;2),row('2022-05-07';2021;'Walsall';'Swindon Town';0;3)
형식 설정 (Format settings)
추가 설정:
| Setting | Description | Default |
|---|---|---|
| input_format_custom_detect_header | 이름과 타입이 있는 헤더가 있으면 자동 감지 활성화. | true |
| input_format_custom_skip_trailing_empty_lines | 파일 끝의 뒤따르는 빈 줄 건너뜀. | false |
| input_format_custom_allow_variable_number_of_columns | CustomSeparated 형식에서 가변 컬럼 수 허용, 추가 컬럼 무시하고 누락 컬럼에 기본값 사용. | false |