メインコンテンツへスキップ
メインコンテンツへスキップ

ClickHouse に JSON をインポートする方法

ClickHouse は、入出力用のさまざまなデータ形式をサポートしています。その中には複数の JSON 系フォーマットがありますが、データのインジェストで最も一般的に使用されるのは JSONEachRow です。これは、1 行に 1 つの 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"

データを手動で挿入するのではなく、インテグレーションツールの利用を検討してください。

便利な設定

  • input_format_skip_unknown_fields は、テーブルのスキーマに存在しない追加フィールドが含まれていても(それらを破棄して)JSON データを挿入できるようにします。
  • input_format_import_nested_json は、Nested 型のカラムにネストされた JSON オブジェクトを挿入できるようにします。
注記

設定は、HTTP インターフェイスでは GET パラメータとして、CLI インターフェイスでは先頭に -- を付けた追加のコマンドライン引数として指定します。