Teradata

Virtual DataPort の一括読み込みサブシステムでは、Teradata の FastLoad メカニズムと JDBC ドライバーを利用し、Teradata データベースへのデータの読み込みを高速化します。

Virtual DataPort では、この機能はデフォルトで有効になっています。有効であることを確認するには、データソースを開いてデータソースの [Read & Write] タブをクリックし、[Use bulk data load APIs] がチェックされていることを確認します。Teradata の FastLoad を使用するために構成を変更する必要はありません。

Virtual DataPort では、Teradata の FastLoad を使用して以下を実行できます。

実行時、Virtual DataPort ではデータを読み込むために、 TYPE=FASTLOAD パラメーターを指定した Teradata に対する新しいコネクションが開始されます。このコネクションはデータソースのコネクションプールから取得できないので、データ一括読み込みを実行するための新しいコネクションが実行エンジンによって作成されます。

FastLoad を使用するには、ターゲットテーブルが空である必要があります。この要件は、以下の理由から、データ移動、サマリー、リモートテーブルのいずれにも影響を与えません。

  1. データ移動を実行する場合、実行エンジンがこのデータ移動専用のテーブルを作成するため、テーブルは空です。

  2. リモートテーブルまたはサマリーを作成する場合、テーブルも同じタイミングで作成されます。更新する場合は、実行エンジンがテーブルを「消去」し、続いてデータを挿入します。テーブルの「消去」とは、テーブル内のすべてのデータを削除することです。

テーブルが空でなければならないという要件は、ビューのキャッシュをロードする場合に問題になる可能性があります。ビューのキャッシュをロードする際、キャッシュロードクエリにパラメーター 'cache_invalidate' = 'all_rows' が指定されていても、ターゲットテーブルにはすでにデータが存在している可能性があります。なぜなら、デフォルトでは、ビューのキャッシュプロセスの間は既存のデータがテーブル上に残っており、このビューに対するクエリが行を返している途中で、新しいデータの読み込みが生じるからです (このプロセスの詳細については、「 実行時の Full キャッシュモード 」を参照)。

ビューのキャッシュをロードする際に FastLoad を常に使用するためには、キャッシュロードクエリにパラメーター 'cache_atomic_operation'='false' を追加します。このパラメーターが指定されると、キャッシュデータベースのテーブルにデータを挿入する前に、キャッシュエンジンによりテーブルのデータが消去されます (パラメーター「cache_atomic_operation」の動作の詳細については、「 大量のデータセットのキャッシュ 」を参照)。

FastLoad を常に使用するためにビューのキャッシュをロードする例
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 では、 booleanblobdateintervalyearmonthintervaldaysecond のデータ型の値は転送できません。Teradata に挿入するデータのデータ型にこれらのいずれかが 1 つでも含まれる場合、Virtual DataPort は FastLoad の使用を試みません。

注釈

Teradata には、FastLoad を使用して同時にデータを読み込む場合、 いくつかの制限事項 があります。