JSON(Javascript Object Notation)はデータ交換形式になっており、Webアプリケーションでデータ送信のためによく使用されます。JSONはXMLに比べて、人にとって読み書きが容易で、マシンにとって解析と生成が容易なため、Webアプリケーション開発者に幅広く採用されてきました。Teradata Databaseでは、JSON文書を保存し、処理することができます。
- テキストとバイナリ (BSON、UBJSON) の JSON データを格納できるストレージ形式。
- 解析や検証など、JSONデータ型で動作するメソッド、関数、およびストアド プロシージャ。
- 最大サイズ16MBまでのJSON文書から値を抽出し、その抽出データをリレーショナル形式で保存することができるシュレッディング機能。
- SQLの問合わせ結果をJSON形式で公開できる公開機能。
- スキーマを変更せずに新しい属性を追加できるスキーマレスまたは動的スキーマ。新しい属性を持つデータは即座に問合わせで使用できます。新しい列のない行はフィルタで除去できます。
- JSONデータ型の抽出部分に対して既存の結合インデックス付け構造を使用します。
- JSONデータへの詳細な分析を適用します。
- ST_GeometryオブジェクトをGeoJSON値に、GeoJSON値をST_Geometryオブジェクトに変換する機能。
- さまざまな最大長のJSONデータの内部圧縮を可能にします。
- JSONデータ型の抽出部分の統計を収集します。
- 標準的なSQLを使用してJSONデータを問合わせます。
- JSONPathは、ワイルドカードを使ったシンプルな走査式と正規表現を提供することで、複雑なJSON 文書をフィルタリングしたり、ナビゲートすることを可能にします。
要件
Teradata DatabaseでJSONのサポートを有効にするには、DBS制御フィールドのEnableJSONをTRUEに設定する必要があります。 これはデフォルトの設定です。 詳細は、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>を参照してください。
JSON のクライアント サポート
次のテーブルでは、Teradata Databaseのクライアント製品によって提供されるJSONデータ型サポートについて説明します。
| クライアント製品 | JSON のサポート |
|---|---|
| CLI | DBS を全面的にネイティブ サポートしています。 |
| ODBC | ODBCの仕様には、JSONの固有のデータ型コードはありません。したがって、ODBCドライバは、ODBC CLOBデータ型であるSQL_LONGVARCHARまたはSQL_WLONGVARCHARにJSONデータ型をマップします。メタデータは、SQL_LONGVARCHARにマップされるTeradata CLOBデータ型とSQL_LONGVARCHARにマップされるTeradata JSONデータ型とでは明らかに異なります。 ODBCドライバでは、LOB Input、Output、InputOutputのパラメータがサポートされます。したがって、JSONデータをロードできます。また、カタログ(データ ディクショナリ)関数ではJSONがサポートされます。 |
| JDBC |
|
| .NET Data Provider |
|
| Teradata Parallel Transporter (Teradata PT) | JSON列は、CLOB列とまったく同じように扱われるので、同じ制限の対象です。JSON列は、16 MB(16,776,192のLATIN文字または8,388,096のUNICODE文字)を超えることはできません。Teradata PTは、オブジェクト スキーマのJSONキーワードに対応しますが、CLOBに内部的に変換されます。インポートとエクスポートの両方が完全にサポートされています。 |
| BTEQ | USINGデータ文でJSONキーワードを使用することはできません。したがって、CLOBまたはVARCHARとしてJSON値を参照する必要があります。VARCHARの場合、JSON値は64KB(64,000文字のLATIN文字または32,000文字のUNICODE文字)を超えることはできません。 現在、BTEQでは、サーバーからクライアントへの遅延モードLOB転送はサポートされていません。サーバーからクライアントへの非遅延モードのJSON転送のみがサポートされます。出力行の最大サイズは64KBに制限されています。 |
| Standalone Utilities | サポートしません。 |
- Teradata® CLI V2リファレンス-メインフレーム接続システム、B035-2417
- Teradata® CLI V2リファレンス-ワークステーション接続システム、B035-2418
- ODBC Driver for Teradata®ユーザー ガイド、B035-2509
- Teradata JDBC Driverの参考文献(https://developer.teradata.com/connectivity/reference/jdbc-driverから入手可能)
- Teradata® Parallel Transporterリファレンス、B035-2436
- Teradata® Parallel Transporterユーザー ガイド、B035-2445
- BasicTeradata®Queryリファレンス、B035-2414
用語
JSON文書またはJSONメッセージは、JSON形式に準拠した文字列です。SQLの関係でJSON値について説明するときには、JSON文書はJSONデータ型のインスタンス、または単にJSONインスタンスと呼ばれます。
オブジェクトとして構成されたJSON文書は、{}で囲まれています。配列として構成されたJSON文書は、[]で囲まれています。SQLの関係では、これらは両方ともJSONデータ型インスタンスになります。詳細は、JSON文字列の構文を参照してください。
{
"name": "Product",
"properties": {
"id": {
"type": "number",
"description": "Product identifier",
"required": true
},
"name": {
"type": "string",
"description": "Name of the product",
"required": true
},
"price": {
"type": "number",
"minimum": 0,
"required": true
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"stock": {
"type": "object",
"properties": {
"warehouse": {
"type": "number"
},
"retail": {
"type": "number"
}
}
}
}
}