MaxCompute は、ARRAY、MAP、STRUCT、JSON の 4 種類の複合データ型をサポートしています。本トピックでは、JSON データ型の関数と特徴について説明します。
目次
|
関数 |
特徴 |
|
指定された出力フォーマットに基づき、JSON 文字列から ARRAY 型、MAP 型、または STRUCT 型を返します。 |
|
|
指定されたパスを使用して、JSON 文字列から文字列を抽出します。 |
|
|
空であってもよい JSON オブジェクトを、そのオブジェクトを含む JSON 配列に変換します。 |
|
|
JSON ドキュメントに指定された JSON 要素が含まれているかどうかをチェックします。 |
|
|
JSON ドキュメント内に指定された JSONPath が存在するかどうかをチェックします。 |
|
|
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 データ型」をご参照ください。