CSVWithNamesAndTypes 형식
CSVWithNamesAndTypes 형식
CSVWithNamesAndTypes 형식은 CSV 형식에 컬럼 이름과 타입을 포함한 두 개의 헤더 행을 함께 출력해요. TabSeparatedWithNamesAndTypes와 유사하며, 버전 23.1부터는 CSV 형식에서 헤더를 자동 감지하므로 반드시 쓸 필요는 없어요.
출처: 문서
본문
| Input | Output | Alias |
|---|---|---|
| ✔ | ✔ |
설명 (Description)
TabSeparatedWithNamesAndTypes와 유사하게 컬럼 이름과 타입이 있는 두 개의 헤더 행도 출력합니다.
사용 예시 (Example usage)
데이터 삽입 (Inserting data)
버전 23.1부터 ClickHouse는 CSV 형식을 사용할 때 CSV 파일의 헤더를 자동으로 감지하므로, CSVWithNames나 CSVWithNamesAndTypes를 사용할 필요가 없어요.
football_types.csv라는 이름의 다음 CSV 파일을 사용합니다:
date,season,home_team,away_team,home_team_goals,away_team_goals
Date,Int16,LowCardinality(String),LowCardinality(String),Int8,Int8
2022-04-30,2021,Sutton United,Bradford City,1,4
2022-04-30,2021,Swindon Town,Barrow,2,1
2022-04-30,2021,Tranmere Rovers,Oldham Athletic,2,0
2022-05-02,2021,Salford City,Mansfield Town,2,2
2022-05-02,2021,Port Vale,Newport County,1,2
2022-05-07,2021,Barrow,Northampton Town,1,3
2022-05-07,2021,Bradford City,Carlisle United,2,0
2022-05-07,2021,Bristol Rovers,Scunthorpe United,7,0
2022-05-07,2021,Exeter City,Port Vale,0,1
2022-05-07,2021,Harrogate Town A.F.C.,Sutton United,0,2
2022-05-07,2021,Hartlepool United,Colchester United,0,2
2022-05-07,2021,Leyton Orient,Tranmere Rovers,0,1
2022-05-07,2021,Mansfield Town,Forest Green Rovers,2,2
2022-05-07,2021,Newport County,Rochdale,0,2
2022-05-07,2021,Oldham Athletic,Crawley Town,3,3
2022-05-07,2021,Stevenage Borough,Salford City,4,2
2022-05-07,2021,Walsall,Swindon Town,0,3
테이블을 만듭니다:
CREATE TABLE football
(
`date` Date,
`season` Int16,
`home_team` LowCardinality(String),
`away_team` LowCardinality(String),
`home_team_goals` Int8,
`away_team_goals` Int8
)
ENGINE = MergeTree
ORDER BY (date, home_team);
CSVWithNamesAndTypes 형식을 사용하여 데이터를 삽입합니다:
INSERT INTO football FROM INFILE 'football_types.csv' FORMAT CSVWithNamesAndTypes;
데이터 읽기 (Reading data)
CSVWithNamesAndTypes 형식을 사용하여 데이터를 읽습니다:
SELECT *
FROM football
FORMAT CSVWithNamesAndTypes
출력은 컬럼 이름과 타입을 위한 두 개의 헤더 행이 있는 CSV가 됩니다:
"date","season","home_team","away_team","home_team_goals","away_team_goals"
"Date","Int16","LowCardinality(String)","LowCardinality(String)","Int8","Int8"
"2022-04-30",2021,"Sutton United","Bradford City",1,4
"2022-04-30",2021,"Swindon Town","Barrow",2,1
"2022-04-30",2021,"Tranmere Rovers","Oldham Athletic",2,0
"2022-05-02",2021,"Port Vale","Newport County",1,2
"2022-05-02",2021,"Salford City","Mansfield Town",2,2
"2022-05-07",2021,"Barrow","Northampton Town",1,3
"2022-05-07",2021,"Bradford City","Carlisle United",2,0
"2022-05-07",2021,"Bristol Rovers","Scunthorpe United",7,0
"2022-05-07",2021,"Exeter City","Port Vale",0,1
"2022-05-07",2021,"Harrogate Town A.F.C.","Sutton United",0,2
"2022-05-07",2021,"Hartlepool United","Colchester United",0,2
"2022-05-07",2021,"Leyton Orient","Tranmere Rovers",0,1
"2022-05-07",2021,"Mansfield Town","Forest Green Rovers",2,2
"2022-05-07",2021,"Newport County","Rochdale",0,2
"2022-05-07",2021,"Oldham Athletic","Crawley Town",3,3
"2022-05-07",2021,"Stevenage Borough","Salford City",4,2
"2022-05-07",2021,"Walsall","Swindon Town",0,3
형식 설정 (Format settings)
input_format_with_names_use_header 설정이 1로 설정되면 입력 데이터의 컬럼이 이름으로 테이블의 컬럼에 매핑되며, input_format_skip_unknown_fields 설정이 1로 설정되면 이름을 알 수 없는 컬럼은 건너뜁니다. 그렇지 않으면 첫 행이 건너뜁니다.
input_format_with_types_use_header 설정이 1로 설정되면 입력 데이터의 타입이 테이블의 해당 컬럼 타입과 비교됩니다. 그렇지 않으면 두 번째 행이 건너뜁니다.