| 입력 | 출력 | 별칭 |
|---|---|---|
| ✔ | ✗ |
설명
FeatureCollection 문서를 읽어 각 피처마다 1개의 행을 생성합니다. 각 행은 다음과 같은 고정 스키마를 가집니다.
| Column | Type | Description |
|---|---|---|
id | String | 피처의 id 멤버(JSON 문자열 또는 숫자)로, 텍스트로 저장됩니다. id가 없거나 null이면 빈 문자열이 저장됩니다. |
geometry | Geometry | 피처의 geometry로, Geometry variant type에 저장됩니다. |
properties | Nullable(JSON) | 피처의 properties 객체로, 반정형 JSON 컬럼으로 저장됩니다. 명시적인 "properties": null은 NULL로 유지됩니다. |
Geometry 타입(Variant)에 저장됩니다. 지원되는 GeoJSON geometry 타입은 Point, LineString, MultiLineString, Polygon, MultiPolygon입니다. 나머지 두 GeoJSON geometry 타입인 GeometryCollection과 MultiPoint는 Geometry 타입으로 표현할 수 없습니다. 이를 geometry 컬럼으로 읽으면 기본적으로 예외가 발생하지만, 대신 NULL을 삽입하도록 변경할 수 있습니다. 자세한 내용은 아래의 지원되지 않는 geometry 타입 처리를 참조하십시오. 기본적으로 geometry 컬럼이 NULL이 되는 경우는 피처의 geometry가 명시적인 JSON null일 때뿐입니다. input_format_geojson_unsupported_geometry_handling = 'null'에서는 지원되지 않는 geometry 타입인 경우에도 NULL이 됩니다.
문서 구조는 검증됩니다. 최상위 type은 반드시 FeatureCollection이어야 하며, features의 모든 요소는 type이 Feature여야 합니다. 좌표는 GeoJSON shape 불변 조건을 충족해야 합니다. 즉, LineString(및 MultiLineString의 각 line)은 최소 2개의 position을 가져야 하며, Polygon ring(및 MultiPolygon의 각 ring)은 닫혀 있어야 하고 최소 4개의 position을 가져야 합니다. 형식이 잘못된 문서는 조용히 로드되지 않고 거부됩니다.
FeatureCollection 객체의 다른 key(name 또는 crs 등)와 각 Feature 객체 내부의 다른 key(bbox 등)는 무시됩니다.
key 순서는 유연합니다. 최상위 type은 features 배열 앞이나 뒤에 올 수 있으며, geometry 객체 내부에서는 coordinates가 type 앞이나 뒤에 올 수 있습니다.
스키마 추론은 위의 고정 스키마를 반환하므로, 테이블 정의 없이도 DESCRIBE 및 SELECT ... FROM format(...)를 사용할 수 있습니다.
사용 예시
london.geojson입니다:
Query
Response
.geojson은 자동으로 감지되므로 포맷 인수는 생략할 수 있습니다:
Query
variantType을 사용할 수 있습니다:
Query
Response
Query
Response
Geometry 하위 컬럼에 접근하면 해당 행에 그 타입의 값이 있으면 그 값을 반환하고, 그렇지 않으면 타입의 기본값을 반환합니다. Point는 (0,0)을, 배열 기반 타입은 []를 반환하므로 어떤 타입이 설정되어 있는지 확인하려면 variantType(geometry)를 사용하십시오.
GeoJSON 데이터도 테이블에 수집할 수 있습니다:
Query
Query
Response
Query
Response
지원되지 않는 Geometry 타입 처리
GeometryCollection 및 MultiPoint와 같은 일부 유효한 GeoJSON Geometry 타입은 ClickHouse의 Geometry 타입으로 표현할 수 없습니다. 이러한 geometry를 geometry 컬럼에 저장해야 할 때 어떤 방식으로 처리할지는 input_format_geojson_unsupported_geometry_handling 설정으로 제어할 수 있습니다. 가능한 값은 다음과 같습니다:
'throw'— 예외를 발생시킵니다(기본값)'null'—geometry컬럼에NULL값을 삽입하고 파싱을 계속합니다
geometry 컬럼을 읽을 때만 적용됩니다. geometry가 요청된 출력 컬럼이 아닌 경우(예: SELECT id FROM ...)에도 지원되지 않는 geometry의 형식 유효성은 검사되지만, 이 처리 방식이 적용되지는 않습니다. 즉, geometry 값이 구체화되지 않으므로 예외가 발생하지도 않고 NULL이 삽입되지도 않습니다.