메인 콘텐츠로 건너뛰기

질문

중첩된 객체 배열이 포함된 GeoJSON은 어떻게 가져오나요?

답변

이 튜토리얼에서는 여기에서 공개된 오픈 데이터를 사용합니다. 사본은 여기에서 확인할 수 있습니다.
  1. 데이터를 GeoJSON 포맷으로 다운로드한 뒤, 파일 이름을 geojson.json으로 변경합니다.
  2. 구조를 파악합니다.
  1. GeoJSON 행을 저장할 테이블을 생성합니다.

여기서는 features 배열의 각 객체마다 행 1개를 생성해야 합니다. 필드 geometry에 대해 추론된 데이터 타입을 보면, 이것이 ClickHouse의 MultiPolygon 데이터 타입에 해당함을 알 수 있습니다.
  1. 데이터를 준비합니다.

이 쿼리의 주요 목적은 features 배열의 각 객체마다 하나의 행이 반환되는지 확인하는 것입니다.
결과 집합을 더 읽기 쉽도록 features.geometry.coordinates 필드는 주석 처리했습니다.
  1. 데이터를 삽입하세요.

여기서 다음 오류가 발생합니다:
이는 features.geometry.coordinates를 파싱할 때 발생합니다.
  1. 데이터 타입을 확인해 보겠습니다.

multipolygon.properties.coordinatesArray(Array(Array(Tuple(Float64,Float64))))로 캐스팅하면 해결할 수 있습니다. 이를 위해 arrayMap(func,arr1,…) 함수를 사용할 수 있습니다.
  1. 데이터를 삽입합니다.

결론

JSON 처리는 복잡할 수 있습니다. 이 튜토리얼에서는 중첩된 객체 배열로 인해 이 작업이 한층 더 어려워질 수 있는 시나리오를 살펴보았습니다. 그 밖의 JSON 관련 요구 사항은 문서를 참조하십시오.
마지막 수정일 2026년 7월 1일