ユーザーガイド > データシップパフォーマンスの最適化 > データソースのデータシップ構成の完了
 
データソースのデータシップ構成の完了
データシップに参加するすべてのデータソースは、データシップターゲットとして構成する必要があります。1つのノードのみがデータシップターゲットとして構成されている場合、ノードの相対サイズは考慮されません。SQL操作は、データシップターゲットになり得るデータソースに対してのみ実行できます。
フェデレーション結合内の少なくとも1つのデータソースが、ターゲットとして外部テーブルのデータシップを受け入れるように構成されている必要があります。そうでない場合、データシップの最適化は使用できません。
データは、データシップターゲットの方向にのみ送信できます。
参加しているすべてのデータソースがデータシップターゲットとして機能するように構成されている場合、各ノードから結果を取得するための推定コストが分析されます。取得に最も高いコストがかかる可能性があるノードがターゲットとして指定され、カーディナリティが小さいノードがフェッチされてターゲットノードに送信されます。SQL操作は、ターゲットの効率性を高めるため、データソースの一時テーブルに対してローカルで実行されます。
下限と上限について
データソース固有の分析関数または集計関数をクエリーで使用する場合は、カーディナリティ結果が非常に低いノードが送信のためにデータソースにプッシュされように、下限をゼロに設定します。ノードのカーディナリティが低く、データソース固有の関数を使用しない結合の場合は、行がごく少数しかない結果のデータシップをブロックするように下限を設定します。この場合、通常はパフォーマンスが向上します。クエリーの初期化と一時テーブルの作成には、SQL分析処理を必要としない少数の行の直接処理よりも数秒長い時間がかかる可能性があるからです。
2つ以上のノードがSQL操作に関与している場合は、外部テーブルの作成と送信を並行して行うことができるため、小さな結果セットの送信を制限しても意味がない場合があります。大きなデータセットがロードされている間、複数のソースからの比較的小さな結果テーブルの収集によってSQL操作が妨げられることはありません。
上限値は、外部テーブルとして送信できると見なされる結果テーブルを制限するサイズ(行で推定および測定されたもの)を設定します。
値0を設定すると、そのデータソースのデータシップが無効になりますが、そのデータソースが他の結果テーブルのターゲットとしてデータシップに参加する資格を失うことはありません。あるクエリーノードの推定値がそのデータソースの上限よりも大きい場合、そのクエリーノードはデータシップターゲットとしてのみ参加できます。上限はデータソース固有で、非常に大きな結果テーブルの移動を制限する境界を設定します。
データシップの構成を完了するには
1.Studioを開きます。
2.Studioのリソースツリーでデータソース名を右クリックし、[Open(開く)]を選択します。
3.[Configuration(構成)]タブを選択し、[Basic(基本)]タブで次の値を入力します。
Pass-through Login(パススルーログイン) — Netezza以外のデータソースの場合は、データシップ機能が正しく動作するように、[Disabled(無効)]に設定します。
Transaction Isolation level(トランザクション分離レベル) — データシップ機能用に[Serializable(シリアル化可能)]に設定します。これにより、ダーティーリード、ノンリピータブルリード、およびファントムリードが防止されます。
4.[Advanced(詳細)]タブを使用して、次のフィールドの値を設定します。表示されるフィールドは、操作しているデータソースのタイプによって異なります。たとえば、Sybase IQデータソースでは[Sybase iAnywhere JDBC driver(Sybase iAnywhere JDBCドライバー)]チェックボックスが表示される場合がありますが、Teradataデータソースでは表示されません。
フィールド
データソースのタイプ
説明
[Is dataship source(データソース)]
DB2
Oracle 11g
Sybase IQ 15
Teradata
MS SQL Server
Vertica
物理データソースが別のデータシップ対応データソースに送信されるテーブルのソースとして使用される可能性がある場合は、これをオンにする必要があります。TDV Serverがクエリーを分析し、予想または推定されたクエリーノードカーディナリティに基づいて送信先として最適な側を決定できるように、すべてのデータソースについて[Is dataship source(データシップソース)]をオンにします。
[Is dataship target(データシップターゲット)]
すべて
物理データソースが別のデータシップ対応データソースから送信されたテーブルを受信するために使用される可能性がある場合は、これをオンにする必要があります。TDV Serverがクエリーを分析し、予想または推定されたクエリーノードカーディナリティに基づいて送信先として最適な側を決定できるように、すべてのデータソースについて[Is dataship target(データシップターゲット)]をオンにします。
[Lower bound for data ship(データシップの下限)]
[Upper bound for data ship(データシップの上限)]
[LowerBoundForDataShip]
[UpperBoundForDataShip]
すべて
TDVは、[Explain Plan(説明プラン)]を使用して、ノードからデータバーチャライザーにデータを送信するコストの数値見積もりを算出します。フェデレーションクエリーノードの送信コストが[Lowerbound(下限)]および[Upperbound(上限)]の制限内にある場合、ローカルで処理できるように送信の対象と見なされます。
[Use global temp space for temp tables(グローバル一時スペースを一時テーブルに使用)]
DB2
 
このデータソースがデータシップターゲットである場合、このオプションはグローバル一時テーブルを作成し、データシップクエリーが完了した後にデータとテーブル構造とともに削除します。
[Schema path for Temp Tables(一時テーブルのスキーマパス)]
すべて
データソース上の一時テーブルの場所を設定する相対パス。これはデータソース内のスキーマの名前です。
DB2では必須です。この名前がTDVに認識されているスキーマ名と一致することを確認してください。大文字と小文字が完全に一致する必要があります。
[Temp Table Prefix(一時テーブルプレフィックス)]
すべて
一時テーブルが必要になった場合にそれを認識できるように、一時テーブル名に追加される文字列。
DB2ではオプションです。
[Enable Bulk Import/Export(一括インポート/エクスポートを有効にする)]
MS SQL Server
bcpユーティリティを使用したデータの一括移動を有効にするチェックボックス。「Netezza用のデータシップの構成」の手順を完了している必要があります。
[Database Link List(データベースリンクリスト)]
データベースリンクがあるOracle
次の構文を使用して、データベースリンクをセミコロンで区切って追加します。
[DBLINK NAME]@[DBLINK OWNER DS PATH]
 
例:
oral2_dblink@/users/composite/test/sources/dship/DEV-DSJ-ORA11G-2
[Enable Bulk Export/Load(一括エクスポート/ロードを有効にする)]
PostgreSQL
Vertica
PostgreSQLのCOPYコマンドを利用します。
[Enable PostgreSql dblink(PostgreSql dblinkを有効にする)]
PostgreSQL
このデータソースをデータキャッシングまたはデータシップの最適化に使用する場合は、オンにしてデータベースリンクを有効にし、パフォーマンスを向上させます。このチェックボックスをオンにした場合は、各リンクのデータベースリンク名とデータソースのパスを指定して、1つ以上のデータベースリンクを追加します。
[Sybase iAnywhere JDBC Driver(Sybase iAnywhere JDBCドライバー)]
Sybase IQ
パフォーマンスを向上させるには、このチェックボックスをオンにします。このオプションを使用すると、Sybase IQ固有のODBC LOAD TABLE SQLツールでデータをTDVにインポートできます。
Sybase IQ用のデータシップの構成」の手順を完了している必要があります。
[Sql Anywhere Data Source(Sql Anywhereデータソース)]
Sybase IQ
ODBC DSN名を入力します。
[Enable Sybase IQ SQL Location(Sybase IQ SQLロケーションを有効にする)]
ロケーションが指定されたSybase IQ
データソースに対してこのオプションを有効にするには、このチェックボックスをオンにします。
[SQL Location Name(SQLロケーション名)]
ロケーションが指定されたSybase IQ
[SQL Location Name(SQLロケーション名)]は次の形式にする必要があります。
<server_name>.<database_name>
[Path of data source(データソースのパス)]
ロケーションが指定されたSybase IQ
他のSybaseデータソースへのTDVフルパス名。例:
/shared/sybase_iq_1
[Add Sql Location(SQLロケーションの追加)]
ロケーションが指定されたSybase IQ
2つ以上のSybase IQインスタンスがある場合は、緑色のプラス記号ボタンを使用して複数のロケーションを追加できます。
[Enable FastLoad/FastExport for large tables(大きなテーブルに対してFastLoad/FastExportを有効にする)]
Teradata
このオプションを設定すると、TeradataのFastLoadまたはFastExportユーティリティによってクエリー時間が短縮されます。特定のクエリーについて、FastpathまたはJDBCのデフォルトのロードを使用するかどうかを決定するためにクエリーのカーディナリティが使用されます。
[FastExport Session Count(FastExportセッション数)]
Teradata
Teradataに使用するFastExportセッションの数。
[FastLoad Session Count(FastLoadセッション数)]
Teradata
Teradataに使用するFastLoadセッションの数。
[Enable Bulk Load(一括ロードを有効にする)]
Vertica
このオプションを設定すると、VerticaのBulk Loadユーティリティによってクエリー時間が短縮されます。特定のクエリーについて、Bulk LoadまたはJDBCのデフォルトのロードを使用するかどうかを決定するためにクエリーのカーディナリティが使用されます。
[Enable Export To Another Vertica Database(別のVerticaデータベースへのエクスポートを有効にする)]
Vertica
設定すると、データを別のVerticaデータベースにエクスポートできるようになります。エクスポートされたデータを受け入れられる各データベースに名前を付ける必要があります。TDVは、CONNECTコマンドとEXPORTコマンドを使用して、データシップソースとデータシップターゲット間の接続を確立します。
[Exported Databases(エクスポート先のデータベース)]
Vertica
[Enable Export To Another Vertica Database(別のVerticaデータベースへのエクスポートを有効にする)]オプションを選択した場合のみ使用できます。
[Exported database name(エクスポート先のデータベース名)]
Vertica
データのエクスポート先のVerticaデータベースの名前。
[Path of data source(データソースのパス)]
Vertica
他のVerticaデータソースへのTDVフルパス名。例:
/shared/vertica
5.設定を保存します。