Teradata¶
Virtual DataPort の一括読み込みサブシステムでは、Teradata の FastLoad メカニズムと JDBC ドライバーを利用し、Teradata データベースへのデータの読み込みを高速化します。
Virtual DataPort では、この機能はデフォルトで有効になっています。有効であることを確認するには、データソースを開いてデータソースの [Read & Write] タブをクリックし、[Use bulk data load APIs] がチェックされていることを確認します。Teradata の FastLoad を使用するために構成を変更する必要はありません。
Virtual DataPort では、Teradata の FastLoad を使用して以下を実行できます。
リモートテーブル の作成と更新
サマリ の作成と更新
Full キャッシュモード を使用するビューのキャッシュの読み込み。 Partial キャッシュモード を使用するビューの場合、実行エンジンは、準備済みステートメントとしてバッチ単位で実行される
INSERT
ステートメントを使用してデータを挿入します。
実行時、Virtual DataPort ではデータを読み込むために、 TYPE=FASTLOAD
パラメータを指定した Teradata に対する新しいコネクションが開始されます。このコネクションはデータソースのコネクションプールから取得できないので、データ一括読み込みを実行するための新しいコネクションが実行エンジンによって作成されます。
FastLoad を使用するには、ターゲットテーブルが空である必要があります。この要件は、以下の理由から、データ移動、サマリ、リモートテーブルのいずれにも影響を与えません。
データ移動を実行する場合、実行エンジンがこのデータ移動専用のテーブルを作成するため、テーブルは空です。
リモートテーブルまたはサマリを作成する場合、テーブルも同じタイミングで作成されます。更新する場合は、実行エンジンがテーブルを「消去」し、続いてデータを挿入します。テーブルの「消去」とは、テーブル内のすべてのデータを削除することです。
テーブルが空でなければならないという要件は、ビューのキャッシュをロードする場合に問題になる可能性があります。ビューのキャッシュをロードする際、キャッシュロードクエリにパラメータ 'cache_invalidate' = 'all_rows'
が指定されていても、ターゲットテーブルにはすでにデータが存在している可能性があります。なぜなら、デフォルトでは、ビューのキャッシュプロセスの間は既存のデータがテーブル上に残っており、このビューに対するクエリが行を返している途中で、新しいデータの読み込みが生じるからです (このプロセスの詳細については、「 実行時の Full キャッシュモード 」を参照)。
ビューのキャッシュをロードする際に FastLoad を常に使用するためには、キャッシュロードクエリにパラメータ 'cache_atomic_operation'='false'
を追加します。このパラメータが指定されると、キャッシュデータベースのテーブルにデータを挿入する前に、キャッシュエンジンによりテーブルのデータが消去されます (パラメータ「cache_atomic_operation」の動作の詳細については、「 大量のデータセットのキャッシュ 」を参照)。
SELECT *
FROM customer360.total_sales_by_country
CONTEXT (
'cache_preload' = 'true'
, 'cache_invalidate' = 'all_rows'
, 'cache_atomic_operation'='false'
, 'cache_wait_for_load' = 'true'
, 'cache_return_query_results' = 'false');
キャッシュロードクエリにパラメータ 'cache_atomic_operation'='false'
が 指定されておらず 、Teradata のテーブルにすでにデータが存在する場合、Teradata は FastLoad ではなく標準プロトコルを使用してデータを挿入します。
FastLoad によってサポートされるデータ型
FastLoad では、 boolean
、 blob
、 date
、 intervalyearmonth
、 intervaldaysecond
のデータ型の値は転送できません。Teradata に挿入するデータのデータ型にこれらのいずれかが 1 つでも含まれる場合、Virtual DataPort は FastLoad の使用を試みません。
注釈
Teradata には、FastLoad を使用して同時にデータを読み込む場合、 いくつかの制限事項 があります。
注釈
ビューに定義されているプライマリキーが正しいことを確認します。Teradata の FastLoad では、テーブルにプライマリキーがある場合、重複行は挿入されず、エラーや警告は返されません。プライマリキーに従う場合、重複行は生じません。