- 特にジョブのロードにInserterオペレータのインスタンスを複数使用するときに、インライン メソッドの方がパフォーマンスが良いため、可能であればTeradata PTとデータベースの間でのLOBデータの転送にインライン メソッドを使用することを推奨します。
しかしインライン メソッドの使用には問題点もあり、データ行全体がデータベースにより制限される現在行サイズの上限である1,000,000バイトを超えることは許されません。
- 大量のデータ(おそらく1, 000, 000行以上)をデータベース テーブルにロードするとき、データ行のサイズが1,000,000バイトを超えない場合は、ユーザーはBLOBをVARBYTEとして、およびCLOBをVARCHARとしてロードすることを検討した方がいい場合があります。 データベースは、VARBYTEからBLOBへ、およびVARCHARからCLOBへの、簡単なデータ変換を実行できます。 このため、Teradata PTはExportオペレータを使用してLOBデータ(VARBYTE列またはVARCHAR列として定義される)を高速で抽出し、LoadオペレータまたはUpdateオペレータを使用してLOBデータ(VARBYTE列またはVARCHAR列として定義される)を高速でロードできます。
- BLOBデータまたはCLOBデータをVARBYTEまたはVARCHARとしてテーブルにロードする場合は、Teradata PTジョブ スクリプトで次のことを行なう必要があります。
- BLOB列をVARBYTEとして定義すること。
- CLOB列をVARCHARとして定義すること。
- データがデータベース テーブルから抽出される場合に、BLOBからVARBYTE、およびCLOBからVARCHARに明示的に変換するために、SelectStmt属性で指定されるSQL SELECT文でCAST関数を使用すること。
- SQL Selectorオペレータがデータベース テーブルから遅延LOBデータを抽出し、SQL Inserterがそのデータを別のデータベース テーブルにロードするときは、データ行が正常に挿入されると各行に関連するLOBデータ ファイルは削除されます。 ジョブのロードが終了するまでに、SQL Selectorオペレータが作成したLOBデータ ファイルはすべて削除されます。
- Teradata PTジョブが遅延メソッドを使用してLOBデータをデータベース テーブルから抽出し、外部のターゲットに書き込むときは、外部ターゲットに書き込まれる各レコードに関連するLOBデータ ファイルはジョブの終了時に削除されません。
- 外部ファイル(データベースではないソース)からLOBデータをデータベース テーブルにロードするジョブの場合、ユーザーは同じスキーマ内でインラインと遅延の両方のLOBデータ型を定義できます。そのジョブ スクリプトでは、DataConnectorオペレータをプロデューサとして使用し、Inserterオペレータをコンシューマとして使用します。したがって、そのジョブでは次のスキーマが有効です。
col1 CLOB(2000), col2 BLOB(2000), col3 CLOB(75000) AS DEFERRED BY NAME, col4 BLOB(75000) AS DEFERRED BY NAME
ジョブ スクリプトがデータベース テーブルからLOBデータを読み込む場合は、上記のスキーマは有効ではありません。 この抽出シナリオでのスキーマには、インラインおよび遅延LOBデータ型の両方を含めることはできません。