ClickHouse は、入出力用のさまざまなデータフォーマットをサポートしています。その中には複数の JSON バリエーションがありますが、データのインジェストで最もよく使われるのは JSONEachRow です。これは 1 行につき 1 つの JSON オブジェクトを想定しており、各オブジェクトは改行で区切られます。
例
HTTPインターフェイスを使う場合:
$ echo '{"foo":"bar"}' | curl 'http://localhost:8123/?query=INSERT%20INTO%20test%20FORMAT%20JSONEachRow' --data-binary @-clickhouse-clientを使用する場合:
$ echo '{"foo":"bar"}' | clickhouse-client --query="INSERT INTO test FORMAT JSONEachRow"手動でデータを挿入する代わりに、インテグレーションツールの利用を検討するとよいでしょう。
便利な設定
input_format_skip_unknown_fieldsを使用すると、テーブルのスキーマに存在しない追加フィールドがあっても、それらを破棄して JSON を挿入できます。input_format_import_nested_jsonを使用すると、ネストされた JSON オブジェクトを Nested 型のカラムに挿入できます。