JSONの読み込み
このセクションでは、JSONデータがNDJSON(改行区切りJSON)フォーマットであると仮定します。これは、ClickHouseではJSONEachRow
として知られています。この形式は、その簡潔さと効率的なスペース使用のため、JSONの読み込みに推奨されるフォーマットですが、他のフォーマットも入力と出力のためにサポートされています。
以下は、Python PyPIデータセットからの行を示すJSONサンプルです。
このJSONオブジェクトをClickHouseに読み込むためには、テーブルスキーマを定義する必要があります。以下に、JSONキーがカラム名にマッピングされたシンプルなスキーマを示します。
ここでは、ORDER BY
句を使用してソートキーを選択しています。ソートキーについての詳細や選び方については、こちらを参照してください。
ClickHouseは、拡張子と内容から自動的に型を推測し、複数のフォーマットでJSONデータを読み込むことができます。上のテーブルのために、S3関数を使用してJSONファイルを読み取ることができます。
ファイル形式を指定する必要がないことに注意してください。代わりに、バケット内のすべての*.json.gz
ファイルを読み取るためにグロブパターンを使用します。ClickHouseは自動的にファイルの拡張子と内容からフォーマットがJSONEachRow
(ndjson)であると推測します。ClickHouseがフォーマットを検出できない場合には、パラメータ関数を通じてフォーマットを手動で指定することができます。
上記のファイルも圧縮されています。これはClickHouseによって自動的に検出され、処理されます。
これらのファイルの行を読み込むには、INSERT INTO SELECT
を使用できます。
行は、FORMAT
句を使用してインラインで読み込むこともできます。例えば:
これらの例はJSONEachRowフォーマットの使用を想定しています。他の一般的なJSONフォーマットもサポートされており、それらの読み込みの例はこちらに提供されています。
以上はJSONデータの非常にシンプルな読み込み例を提供しました。ネストされた構造を含むより複雑なJSONについては、ガイドJSONスキーマの設計を参照してください。