JSON(Javascript Object Notation)はデータ交換形式で、Webアプリケーションでデータ送信のためによく使用されます。JSONはXMLに比べて、人にとって読み書きが容易で、マシンにとって生成と解析が容易なため、Webアプリケーション開発者に幅広く採用されてきました。Teradata Vantageでは、JSON文書を保存し、処理することができます。
- テキストとバイナリ (BSON、UBJSON) の JSON データを格納できるストレージ形式。
- 解析や検証など、JSONデータ型で動作するメソッド、関数、およびストアド プロシージャ。
- JSON文書から値を抽出し、その抽出データをリレーショナル形式で保存することができるシュレッディング機能。
- SQLの問合わせ結果をJSON形式で公開できる公開機能。
- スキーマを変更せずに新しい属性を追加できるスキーマレスまたは動的スキーマ。新しい属性を持つデータは即座に問合わせで使用できます。新しい列のない行はフィルタで除去できます。
- JSONデータの抽出部分に対して既存の結合インデックス付け構造を使用します。
- JSONデータへの詳細な分析を適用します。
- ST_GeometryオブジェクトをGeoJSON値に、GeoJSON値をST_Geometryオブジェクトに変換する機能。
- さまざまな最大長のJSONデータの内部圧縮を可能にします。
- JSONデータの抽出部分の統計を収集します。
- 標準的なSQLを使用してJSONデータを問合わせます。
- JSONPathは、ワイルドカードを使ったシンプルな走査式と正規表現を提供することで、複雑なJSON 文書をフィルタリングしたり、ナビゲートすることを可能にします。
JSON のクライアント サポート
次のテーブルでは、Teradataのクライアント製品によって提供されるJSONデータ型サポートについて説明します。
| クライアント製品 | JSON のサポート |
|---|---|
| CLI | DBS を全面的にネイティブ サポートしています。 |
| ODBC | ODBCの仕様には、JSONの固有のデータ型コードはありません。したがって、ODBCドライバは、ODBC CLOBデータ型であるSQL_LONGVARCHARまたはSQL_WLONGVARCHARにJSONデータ型をマップします。メタデータは、SQL_LONGVARCHARにマップされるVantage CLOBデータ型とSQL_LONGVARCHARにマップされるVantage 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://teradata-docs.s3.amazonaws.com/doc/connectivity/jdbc/reference/current/frameset.htmlから入手可能)
- Teradata® Parallel Transporterリファレンス、B035-2436
- Teradata® Parallel Transporterユーザー ガイド、B035-2445
- Basic Teradata®Queryリファレンス、B035-2414
用語
- JSONドキュメントは、JSON形式に準拠する任意の文字列です。JSON文字列の構文を参照してください。
- JSONドキュメントは、オブジェクトまたは配列として構造化できます。
- JSONオブジェクトは、中括弧({ })で区切られるゼロ個以上の名前:値のペアで構成されます。
- JSONオブジェクトの値部分には、単一の文字列、数値、ブール値(trueまたはfalse)、null、配列、またはオブジェクトを使用できます。
- JSON配列は、角括弧([ ])で区切られたゼロ個以上の値の順序付けされたリストです。これらの値には、単一の文字列、数値、ブール値(trueまたはfalse)、null、配列、またはオブジェクトを使用できます。
- VantageJSONデータ型として保存、使用されるJSONドキュメントは、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"
}
}
}
}
}