JSONColumns 형식
JSONColumns 형식
JSONColumns 형식은 모든 데이터를 단일 JSON 객체로 표현해요. 출력은 ClickHouse 필드 이름과 그 필드의 각 행 내용을 제공하며, 시각적으로 데이터가 왼쪽으로 90도 회전된 형태예요. JSONColumns 형식은 모든 데이터를 메모리에 버퍼링한 뒤 단일 블록으로 출력해서 메모리 소비가 높아질 수 있습니다.
출처: 문서
본문
| Input | Output | Alias |
|---|---|---|
| ✔ | ✔ |
설명 (Description)
JSONColumns* 형식의 출력은 ClickHouse 필드 이름과 그 필드에 대한 테이블의 각 행 내용을 제공합니다. 시각적으로 데이터가 왼쪽으로 90도 회전된 형태입니다. 이 형식에서는 모든 데이터가 단일 JSON Object로 표현됩니다.
JSONColumns 형식은 모든 데이터를 메모리에 버퍼링한 뒤 단일 블록으로 출력하므로 메모리 소비가 높아질 수 있습니다.
사용 예시 (Example usage)
데이터 삽입 (Inserting data)
football.json이라는 이름의 JSON 파일에 다음 데이터가 있다고 가정해 볼게요:
{
"date": ["2022-04-30", "2022-04-30", "2022-04-30", "2022-05-02", "2022-05-02", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07"],
"season": [2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021],
"home_team": ["Sutton United", "Swindon Town", "Tranmere Rovers", "Port Vale", "Salford City", "Barrow", "Bradford City", "Bristol Rovers", "Exeter City", "Harrogate Town A.F.C.", "Hartlepool United", "Leyton Orient", "Mansfield Town", "Newport County", "Oldham Athletic", "Stevenage Borough", "Walsall"],
"away_team": ["Bradford City", "Barrow", "Oldham Athletic", "Newport County", "Mansfield Town", "Northampton Town", "Carlisle United", "Scunthorpe United", "Port Vale", "Sutton United", "Colchester United", "Tranmere Rovers", "Forest Green Rovers", "Rochdale", "Crawley Town", "Salford City", "Swindon Town"],
"home_team_goals": [1, 2, 2, 1, 2, 1, 2, 7, 0, 0, 0, 0, 2, 0, 3, 4, 0],
"away_team_goals": [4, 1, 0, 2, 2, 3, 0, 0, 1, 2, 2, 1, 2, 2, 3, 2, 3]
}
데이터를 삽입합니다:
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONColumns;
데이터 읽기 (Reading data)
JSONColumns 형식을 사용하여 데이터를 읽습니다:
SELECT *
FROM football
FORMAT JSONColumns
출력은 JSON 형식이 됩니다:
{
"date": ["2022-04-30", "2022-04-30", "2022-04-30", "2022-05-02", "2022-05-02", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07", "2022-05-07"],
"season": [2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021],
"home_team": ["Sutton United", "Swindon Town", "Tranmere Rovers", "Port Vale", "Salford City", "Barrow", "Bradford City", "Bristol Rovers", "Exeter City", "Harrogate Town A.F.C.", "Hartlepool United", "Leyton Orient", "Mansfield Town", "Newport County", "Oldham Athletic", "Stevenage Borough", "Walsall"],
"away_team": ["Bradford City", "Barrow", "Oldham Athletic", "Newport County", "Mansfield Town", "Northampton Town", "Carlisle United", "Scunthorpe United", "Port Vale", "Sutton United", "Colchester United", "Tranmere Rovers", "Forest Green Rovers", "Rochdale", "Crawley Town", "Salford City", "Swindon Town"],
"home_team_goals": [1, 2, 2, 1, 2, 1, 2, 7, 0, 0, 0, 0, 2, 0, 3, 4, 0],
"away_team_goals": [4, 1, 0, 2, 2, 3, 0, 0, 1, 2, 2, 1, 2, 2, 3, 2, 3]
}
형식 설정 (Format settings)
가져오기 중 이름을 알 수 없는 컬럼은 input_format_skip_unknown_fields를 1로 설정하면 건너뜁니다. 블록에 없는 컬럼은 기본값으로 채워집니다(여기서 input_format_defaults_for_omitted_fields 설정을 사용할 수 있어요).