MaxCompute は、ARRAY、MAP、STRUCT、JSON の 4 つの複雑なデータ型をサポートしています。このトピックでは、JSON データ型の関数と特徴について説明します。
インデックス
関数 | 特徴 |
指定された出力フォーマットに基づいて、JSON 文字列から ARRAY、MAP、または STRUCT 型を返します。 | |
指定されたパスを使用して、JSON 文字列から文字列を抽出します。 | |
空の場合もある JSON オブジェクトを、そのオブジェクトを含む JSON 配列に変換します。 | |
JSON ドキュメントに指定された JSON 要素が含まれているかどうかを確認します。 | |
指定された JSONPath が JSON ドキュメントに存在するかどうかを確認します。 | |
JSON 配列または JSON オブジェクトの各要素を複数の行に展開します。 | |
指定された JSONPath に基づいて、JSON 文字列または JSON データ型からデータを抽出します。 | |
JSON データ型を文字列に変換します。デフォルトでは、出力は整形されません。 | |
JSON ドキュメントの指定された位置に JSON 値を挿入します。 | |
指定されたパスにある JSON データの長さを返します。 | |
キーと値のペアから JSON オブジェクトを生成します。 | |
文字列を JSON データ型に変換します。文字列が有効な JSON フォーマットでない場合は、エラーが返されます。 | |
改行とスペースを追加して、JSON 文字列を読みやすくフォーマットします。 | |
JSON ドキュメントの指定されたパスで、既存の値を置き換えるか、新しい値を追加します。 | |
JSON オブジェクトまたは JSON 配列から、値が | |
指定されたキーのグループに対して、標準の JSON 文字列から文字列を抽出します。 | |
JSON 値の型名を返します。 | |
JSON 文字列から引用符を削除します。 | |
文字列が有効な JSON であるかどうかを確認します。 | |
指定された複雑なデータ型を JSON 文字列に変換します。 |
適用範囲
SDK バージョンの要件
Java SDK V0.44.0 以降のバージョンのみがサポートされています。
PyODPS V0.11.4.1 以降のバージョンのみがサポートされています。
テーブル操作の制限
テーブルに JSON 列を追加することはできません。
クラスター化テーブルはサポートされていません。
Delta Table 型のテーブルはサポートされていません。
SQL 操作の制限
JSON 型での比較操作はサポートされていません。
JSON 型に対して
ORDER BY句やGROUP BY句を使用することはできません。また、JSON 型の列をJOINキーとして使用することもできません。
データ精度
JSON NUMBER の整数部は BIGINT 型として格納されます。整数が BIGINT の範囲外の場合、オーバーフローが発生します。
JSON NUMBER の小数部は DOUBLE 型として格納されます。小数部を DOUBLE 型に変換する際に、精度が低下する可能性があります。
文字制限:JSON データを生成するために使用される文字列では、Unicode 文字
\u0000はサポートされていません。エンジンの互換性:Hologres などの別のエンジンを使用してテーブルからデータを読み取る場合、JSON データ型は読み取れません。
Java UDF と Python UDF は JSON 型をサポートしていません。
JSON データ型は最大 20 レベルまでネストできます。
開発ツール
サポートされている開発ツールには、MaxCompute クライアント (odpscmd)、MaxCompute Studio、DataWorks が含まれます。Dataphin などの外部エコシステムはサポートされていません。外部システムで JSON データ型を使用する場合は、使用を開始する前にその互換性を確認する必要があります。odpscmd クライアントを使用する場合は、次の点にご注意ください:
クライアントを V0.46.5 以降にアップグレードする必要があります。そうしないと、
DESC json_tableコマンドを実行したり、Tunnel を使用して JSON データをダウンロードしたりすることができません。クライアントのインストールパスにある
conf\odps_config.iniファイルで、use_instance_tunnelパラメーターをfalseに設定してください。そうしないと、クエリが失敗します。
関連ドキュメント
JSON データ型の詳細については、「JSON データ型」をご参照ください。