メインコンテンツまでスキップ
メインコンテンツまでスキップ

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スキーマの設計を参照してください。