JSONデータのロードは、LOBまたはXMLデータのロードと同じです。ロード スクリプトで"JSON"キーワードを使用して列の型を定義します。LOBデータと同じように、サイズが64KB未満(64,000文字のLATIN文字または32,000文字のUNICODE文字)の場合、インライン モードでロードできます。それ以外の場合は、列を"JSON AS DEFERRED BY NAME"(外部ファイルに存在するデータを含む)に指定する必要があります。この列で、クライアントおよびTeradata Databaseがデータを移動する複数の呼び出しを行ないます。
JSONデータのロードとアンロードに次のロード ユーティリティを使用できます。
- Teradata Parallel Transporter(Teradata PT)SQL Inserterオペレータを使用すると、JSONデータをテーブルにロードできます。
- Teradata PT SQL Selectorオペレータを使用すると、テーブルからJSONデータをアンロードできます。
- Teradata PT Data Connectorオペレータを使用すると、ファイルへのJSONデータの書き込みおよびファイルからのJSONデータの読み取りが可能です。
次に、Teradata PTスキーマ定義でJSON構文を使用する方法を示します。
DEFINE SCHEMA TEST_SCHEMA DESCRIPTION 'PRODUCT INFORMATION SCHEMA' ( COL1_INT INTEGER, COL2_CHAR CHAR(10), COL3_JSON JSON(1000), COL4_BIGINT BIGINT, COL5_JSON JSON(16776192) AS DEFERRED BY NAME, COL6_VARCHAR VARCHAR(20) );
次に、Teradata PT SQL Inserterオペレータによって生成されるUSING句のサンプルを示します。
USING COL1_INT(INTEGER), COL2_CHAR(CHAR(10)), COL3_JSON(CLOB(1000)), COL4_BIGINT(BIGINT), COL5_JSON(CLOB(16776192) AS DEFERRED), COL6_VARCHAR(VARCHAR(20)) INSERT INTO target_table VALUES (:COL1_INT, :COL2_CHAR, :COL3_JSON, :COL4_BIGINT, :COL5_JSON, :COL6_VARCHAR);
Teradata PTロード ユーティリティの詳細については、次のドキュメントを参照してください。
- Teradata® Parallel Transporterリファレンス、B035-2436
- Teradata® Parallel Transporterユーザー ガイド、B035-2445
一般に、レガシーの各種スタンドアロン ロード ツールやParallel Transporterを使用して、FastLoad、MultiLoad、またはFastExportプロトコルを利用するLOB JSONデータをインポートまたはエクスポートすることはできません。ただし以下の場合に、これらのユーティリティを使用してJSONデータをロードまたはアンロードできます。
- JSONデータはそれが64KB未満の場合はロードできます。ターゲット テーブルは列をCHARまたはVARCHARとして定義します。
- ユーザーがJSONとVARCHARまたはVARBYTE間で変換を実行する変換グループを使用する場合。
VARCHARまたはVARBYTE変換を使用してFastLoadまたはMultiLoadを利用するJSONデータをロードする場合、インポートされたデータは行に収まる必要があります。インラインで格納できない場合、入力行はエラー テーブルに置かれます。
MLOADXプロトコルは、任意の変換を使用して、種類の指定されたインライン長の制限なしでLOB JSONデータをロードできます。
例: 指定した変換グループを使用したJSONデータのロード
この例では、TD_JSON_VARBYTE変換グループを使用するようにユーザーの変換グループ設定を指定します。以下に、jsn_byte_bsonテーブルのJSON列にJSONデータをロードする方法を示します。
.logon NODEID/dr171210_vb,dr171210_vb; DROP TABLE Error_11; DROP TABLE Error_22; CREATE TABLE jsn_byte_bson( s1 INTEGER NOT NULL ,s2 JSON (1000) STORAGE FORMAT BSON) UNIQUE PRIMARY INDEX(s1); DEFINE JOB TPT ( a (INTEGER), b (VARBYTE(1000)) FILE=jsn_byte_bson; BEGIN LOADING jsn_byte_bson ErrorFiles Error_11, Error_22 indicators; INSERT INTO jsn_byte_bson VALUES(:a, :b); END LOADING; LOGOFF;
JSON型の定義済み変換グループの詳細については、複数の変換グループのサポートを参照してください。