ロード ユーティリティを使用したJSONデータのロード

Teradata® Database JSONデータ型

brand
Software
prodname
Teradata Database
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1150-162K-JPN

JSONデータのロードは、LOBまたはXMLデータのロードと同じです。ロード スクリプトで"JSON"キーワードを使用して列の型を定義します。LOBデータと同じように、サイズが64KB未満(64,000文字のLATIN文字または32,000文字のUNICODE文字)の場合、インライン モードでロードできます。それ以外の場合は、列を"JSON AS DEFERRED BY NAME"(外部ファイルに存在するデータを含む)に指定する必要があります。この列で、クライアントおよびTeradata Databaseがデータを移動する複数の呼び出しを行ないます。

JSONデータのロードとアンロードに次のロード ユーティリティを使用できます。

  • Teradata Parallel Transporter(TPT)SQL Inserterオペレータを使用すると、JSONデータをテーブルにロードできます。
  • TPT SQL Selectorオペレータを使用すると、テーブルからJSONデータをアンロードできます。
  • TPT Data Connectorオペレータを使用すると、ファイルへのJSONデータの書き込みおよびファイルからのJSONデータの読み取りが可能です。
次に、TPTスキーマ定義で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)
);
次に、TPT 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);
TPTロード ユーティリティの詳細については、次のマニュアルを参照してください。
  • 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型の定義済み変換グループの詳細については、複数の変換グループのサポートを参照してください。