JSONシュレッディングについて - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - JSONデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/uwa1591040057999.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
evi1472243742653
Product Category
Software
Teradata Vantage

Vantageでは、JSONドキュメントをシュレッドしてデータを抽出しリレーショナル形式で保存できます。抽出されたデータを使用して、既存のデータベース テーブルにデータを挿入したり更新したりできます。

JSONデータをシュレッディングす​​る単純なケースでは、INSERT JSON文を使用できます。この文は、テキスト形式で格納されているJSONドキュメントのシュレッディングのみをサポートしています。

さらに複雑なJSONデータのシュレッディングを処理できるよう、Vantageには以下が用意されています。

JSON_TABLE
このテーブル演算子では、JSONドキュメント内の一部またはすべてのデータがシュレッドされ、そのデータに基づいて派生データベース テーブルが作成されます。TD_JSONSHREDは、大きなJSONドキュメントの高速なシュレッドに推奨されます(属性の数が多いドキュメントや多くのデータベース レコードにシュレッドするドキュメント)。
TD_JSONSHRED
このテーブル演算子は、JSON_TABLEに類似しています。JSONドキュメント内の一部またはすべてのデータがシュレッドされ、そのデータに基づいて派生データベース テーブルが作成されます。大きなJSONドキュメントにも対応し、データをはるかに高速にシュレッドしますが、JSONPath式の使用には対応せず、対応する出力データ型は少なくなります。
JSON_SHRED_BATCHとJSON_SHRED_BATCH_U
これらのストアド プロシージャでは、JSON_TABLEを連続で呼び出すことで、複数のJSONドキュメントがシュレッドされ、複合的な派生データベース テーブルが作成されます。このデータベース テーブルを使用して、1つ以上の既存のデータベース テーブルを読み込んだり更新したりできます。
JSON_SHRED_BATCHはLATIN文字セット データに対して実行し、JSON_SHRED_BATCH_UはUNICODEデータに対して実行します。それ以外について、2つのプロシージャは同様に機能します。

これらのテーブル演算子およびストアド プロシージャは、テキスト形式またはバイナリ形式で格納されているJSONドキュメントで機能します。

JSON_TABLEとTD_JSONSHREDの違い

機能 JSON_TABLE TD_JSONSHRED
速度 遅い 速い
入出力データでのCLOBデータ型への対応 いいえ

入力は16MB (JSONデータ型の最大サイズ)まで。出力の制限は、データ型によって決まります。

はい

他のデータ型に加えてCLOB型(最大サイズ2GB)で入出力に対応

大文字と小文字を区別する文字列の一致 常に オプション
JSONPathの対応 はい いいえ
戻り値データ型 詳細 少ない

VARCHARまたはCLOBとして出力し、他の型にキャスト可能

パススルー列(入力テーブルにJSONデータを含まない列) 返されたテーブルで、シュレッドされたJSONデータの後に表示される 返されたテーブルで、シュレッドされたJSONデータの前に表示される
サイズ過大のシュレッドされた文字列データの処理 COLEXPRパラメータのデータ「型」仕様よりも長いシュレッド済みJSONデータを切り捨て RETURNTYPEデータ サイズ仕様よりも長いシュレッド済みJSONデータを切り捨て。必要に応じて、シュレッドされたデータが型仕様を超えた場合に、エラーとともにTD_JSONSHREDを失敗させることができます。エラーには問題のある列が示されます。