본문으로 바로가기
본문으로 바로가기

ClickHouse에 JSON을 가져오는 방법

ClickHouse는 입력과 출력을 위한 다양한 데이터 포맷을 지원합니다. 이들 중에는 여러 JSON 변형 포맷이 포함되어 있지만, 데이터 수집에 가장 일반적으로 사용되는 포맷은 JSONEachRow입니다. 이 포맷에서는 한 행마다 하나의 JSON 객체가 있어야 하며, 각 객체는 줄바꿈 문자로 구분됩니다.

예제

HTTP 인터페이스 사용:

$ echo '{"foo":"bar"}' | curl 'http://localhost:8123/?query=INSERT%20INTO%20test%20FORMAT%20JSONEachRow' --data-binary @-

CLI 인터페이스 사용:

$ echo '{"foo":"bar"}'  | clickhouse-client --query="INSERT INTO test FORMAT JSONEachRow"

데이터를 수동으로 삽입하는 대신 integration tool을 사용하는 방안을 고려해 보십시오.

유용한 설정

  • input_format_skip_unknown_fields는 테이블 스키마에 존재하지 않는 추가 필드가 있어도(이를 버려서) JSON을 삽입할 수 있게 합니다.
  • input_format_import_nested_json은 중첩된 JSON 객체를 Nested 타입 컬럼에 삽입할 수 있게 합니다.
참고

설정은 HTTP 인터페이스에서는 GET 파라미터로, CLI 인터페이스에서는 앞에 --를 붙인 추가 커맨드라인 인수로 지정합니다.