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

JSON

InputOutputAlias

説明

JSONフォーマットは、データをJSON形式で読み込み、出力します。

JSONフォーマットは以下を返します:

パラメータ説明
metaカラム名とタイプ。
dataデータテーブル
rows出力行の合計数。
rows_before_limit_at_leastLIMITなしであった場合の行数の下限推定。クエリがLIMITを含む場合にのみ出力されます。この推定は、制限変換前のクエリパイプラインで処理されたデータブロックから計算されますが、その後制限変換によって破棄されることがあります。クエリパイプラインでブロックが制限変換に到達しなかった場合、それらは推定に参加しません。
statisticselapsedrows_readbytes_readなどの統計。
totals総値(WITH TOTALSを使用している場合)。
extremes極値(extremesが1に設定されている場合)。

JSONタイプはJavaScriptと互換性があります。これを確保するために、一部の文字は追加でエスケープされます:

  • スラッシュ/\/としてエスケープされます。
  • 一部のブラウザで破損する代替行の改行U+2028U+2029は、\uXXXXとしてエスケープされます。
  • ASCII制御文字はエスケープされます:バックスペース、フォームフィード、ラインフィード、キャリッジリターン、そして水平タブはそれぞれ\b\f\n\r\tで置き換えられ、残りの00-1F範囲のバイトも\uXXXXシーケンスを使用してエスケープされます。
  • 無効なUTF-8シーケンスは置換文字�に変更され、出力テキストは有効なUTF-8シーケンスで構成されます。

JavaScriptとの互換性のために、Int64およびUInt64整数はデフォルトで二重引用符で囲まれます。 引用符を除去するには、設定パラメーターoutput_format_json_quote_64bit_integers0に設定します。

ClickHouseはNULLをサポートしており、JSON出力ではnullとして表示されます。出力に+nan-nan+inf-inf値を有効にするには、output_format_json_quote_denormals1に設定します。

使用例

例:

SELECT SearchPhrase, count() AS c FROM test.hits GROUP BY SearchPhrase WITH TOTALS ORDER BY c DESC LIMIT 5 FORMAT JSON
{
        "meta":
        [
                {
                        "name": "num",
                        "type": "Int32"
                },
                {
                        "name": "str",
                        "type": "String"
                },
                {
                        "name": "arr",
                        "type": "Array(UInt8)"
                }
        ],

        "data":
        [
                {
                        "num": 42,
                        "str": "hello",
                        "arr": [0,1]
                },
                {
                        "num": 43,
                        "str": "hello",
                        "arr": [0,1,2]
                },
                {
                        "num": 44,
                        "str": "hello",
                        "arr": [0,1,2,3]
                }
        ],

        "rows": 3,

        "rows_before_limit_at_least": 3,

        "statistics":
        {
                "elapsed": 0.001137687,
                "rows_read": 3,
                "bytes_read": 24
        }
}

フォーマット設定

JSON入力フォーマットについて、input_format_json_validate_types_from_metadata1に設定されている場合、入力データのメタデータにあるタイプが、テーブルの対応するカラムのタイプと比較されます。

関連項目