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 を使用すると、ネストされた JSON オブジェクトを Nested 型のカラムに挿入できます。
設定は、HTTP インターフェイスでは GET パラメータとして、CLI インターフェイスでは -- をプレフィックスとして付けた追加のコマンドライン引数として指定します。