ネイティブ (バルク) キャッシュ オプションの設定

TDV ネイティブ ロード オプションは、次の場合にキャッシュパフォーマンスを向上させます。

キャッシュ ソースとキャッシュ ターゲットは、同じ TDV データ ソース リソース上にあります。
キャッシュ データは、「サポートされているキャッシュ ターゲット ストレージ タイプ」の表のネイティブ ロード オプション カラムにリストされているアクティブなキャッシュ ターゲットの 1 つに保存されています。

ネイティブ キャッシュのロード オプションはデフォルトで有効になっています。ネイティブ ロードでは、データ ソースに固有の機能を活用してデータ移動の速度を向上させます。

TDV は、データ ソースとキャッシュ データ ターゲットが同じ TDV データ ソース リソース上にあることを検出すると、直接の SELECT および INSERT がデータを移動する最良の方法であるか、それとも構成可能なネイティブ ロード オプションのいずれかがより高速に機能するかを判断します。ほとんどのデータベースには、そのデータベース用に最適化された独自のデータ移動機能があります。たとえば、すべての Oracle データベースには、データベース リンク機能が付属しています。そのデータベース リンク機能を使用すると、TDV JDBC 接続を使用してデータを移動する場合には不可能なキャッシュ ロード パフォーマンスの向上を実現できます。

ネイティブ データベースロードと TDV キャッシュ ロードの両方が失敗すると、更新ステータスは「失敗」に設定されます。

このセクションのトピック

パフォーマンス オプション

TDV の構成 DB2 のネイティブ ロード オプション

DB2 LOAD ユーティリティを使用します。

TDV の構成 Microsoft SQL Server のネイティブ ロード オプション

bcp ユーティリティ (bcp.exe) を使用して バルク インポートおよびエクスポートします。

Netezza のネイティブ キャッシュの構成

Netezza 外部テーブルを使用します。

Oracle のネイティブ キャッシュの構成

データベース リンクを使用します。

Sybase IQ のネイティブ キャッシュ オプションの構成

LOAD_TABLE ステートメント。

Vertica のネイティブ キャッシュ オプションの構成

バルク ロード ユーティリティを使用します。

TDV の構成 DB2 のネイティブ ロード オプション

DB2 の場合、TDV ネイティブ ロード オプションでは DB2 の LOAD ユーティリティを利用します。LOAD ユーティリティでは、大量のデータを移動する必要があるテーブルにデータをすばやくロードまたは追加できます。LOAD は IMPORT よりも大幅に高速に実行できます。IMPORT が SQL INSERT を使用するのに対し、LOAD はフォーマットされたページをデータベースに直接書き込むためです。この方法を試す前に、JDBC バッチ挿入オプションを使用することで許容可能なパフォーマンスの向上が得られるかどうかを確認することをお勧めします。JDBC 機能を実装することを選択した場合、DB2 LOAD ユーティリティを構成したり、TDV の構成設定を変更したりする必要はありません。

TDV で DB2 LOAD ユーティリティを使用する場合は、DB2 コマンド・ライン ユーティリティを実行する必要があります。TDV での DB2 コマンド・ライン ユーティリティの動作は、次のようにプラットフォームによって異なります。

プラットフォーム

DB2 コマンド・ライン ユーティリティ名

実行の詳細

Windows

DB2CMD.exe

実行すると、コマンド ウィンドウがポップアップし、パスワードの入力が求められ、アップロードが完了するまでアクティブのままになります。ウィンドウが開いている間、パスワードが表示される場合があります。

UNIX

db2

バックグラウンド プロセスとして実行できます。

要件

ロードされるデータは、サーバーに対してローカルである必要があります。
高度な DB2 データベース レベルの構成が必要

制限事項

この機能は以下に対しては無効です。

バイナリおよび BLOB データ タイプ
Kerberos の実装

DB2 LOAD ユーティリティが TDV と連携してキャッシングを行うように構成するには

1. DB2 LOAD ユーティリティーの構成と使用については、IBM の資料を参照してください。
2. ご使用のプラットフォームに関する IBM の指示に従って、DB2 LOAD ユーティリティーのすべての関連部分をインストールして構成します。

TDV 環境の一部であるすべてのマシンにクライアントドライバーをインストールする必要がある場合があります。

3. DB2 LOAD ユーティリティーの実行に使用する DB2 コマンド行ユーティリティーへの絶対パスを確認してください。たとえば、DB2 SQL コマンド行クライアントへのパスを見つけます。
4. Studio を開きます。
5. [管理] > [構成] を選択します。
6. バルク データ ローディングの有効化の構成パラメーターを見つけます。
7. 値を True に設定します。
8. [適用] をクリックします。
9. [OK] をクリックします。
10. DB2 Command-Line Utility Path 構成パラメーターを見つけます。
11. [値] には、DB2 コマンド・ライン プログラムへの完全なディレクトリ パスを入力します。パス名にスペースが含まれている場合は、必ずパスを二重引用符で囲んでください。たとえば次のとおりです。
“C:\Program Files\IBM\DB2\Tools\Bin\DB2CMD.exe”  
12. [適用] をクリックします。
13. [OK] をクリックします。
14. TDV Server を再起動します。

構成パラメーター値の変更は、一部は TDV Server の実行中に適用されますが、多くはサーバーを再起動しないと正常に機能しません。

15. Studio を開き、バルク ロード機能を有効にする DB2 データ ソースを見つけます。
16. データ ソース エディターを開きます。
17. [アドバンス] タブを選択します。
18. 下にスクロールして、[データベース エイリアス (DB2 ロードに使用) ] フィールドを見つけます。

このプロパティは、カタログ化されたデータベースを識別するために DB2 ロードに渡されます。

19. [値] には、DB2 データベースの名前を入力します。例:dvbudb21
20. 変更を保存します。
21. キャッシュを更新します。

この機能をサポートするために使用される一時ファイルが <TDV_install_dir>\...tmp\cacheloading\db2 に作成され、アップロードプロセスの完了後、すべてのファイル、データ、コマンド、およびログが TDV によって削除されます。

TDV の構成 Microsoft SQL Server のネイティブ ロード オプション

Microsoft SQL Server の場合、TDV ネイティブ ロード オプションは、Microsoft のバルク インポートおよびバルク エクスポート (bcp) 機能を利用します。

Microsoft SQL Server でキャッシュを使用できるバルク インポートおよびバルク エクスポート機能を使用するには、Microsoft bcp ユーティリティを構成する必要があります。JDBC 機能の代わりにバルク インポートおよびバルク エクスポート機能を使用すると、パフォーマンスが向上します。bcp ユーティリティ (bcp.exe) は、バルク コピー プログラム API を使用するコマンド・ライン ツールです。Microsoft bcp ユーティリティは、次のタスクを実行します。

SQL Server テーブルからデータ ファイルにデータをバルク エクスポートします。
クエリからデータをバルク エクスポートします。
データ ファイルから SQL Server テーブルにデータをバルク インポートします。
フォーマット ファイルを生成します。

JDBC 機能を実装することを選択した場合、bcp ユーティリティを構成したり、TDV 構成設定を変更したりする必要はありません。

キャッシュ ソースとターゲットが同じ SQL Server データ ソースに存在する場合、直接 SELECT と INSERT を使用してキャッシュ データをネイティブにロードすると、パフォーマンスが大幅に向上します。この機能では、Enable Bulk Data Loading Studio 構成パラメーターの値を True に設定する必要があります。

Microsoft SQL Server のデータ転送またはキャッシュを構成する場合、bcp ユーティリティを構成してから、アクセス権限を設定できます。以下では、これらのプロセスの両方について説明します。

構成ステップは、キャッシングとデータ シップの場合と同様です。詳細については、「Microsoft SQL Server のデータ シップの構成」を参照してください。

注: bcp ユーティリティでは、NULL 値は EMPTY と解釈され、EMPTY 値は NULL と解釈されます。TDV は、bcp ユーティリティを介して '\0' 値 (EMPTY を表します) を渡し、キャッシュまたはデータ転送ターゲットに EMPTY 値を挿入します。同様に、bcp ユーティリティに EMPTY 文字列 (“”) を渡し、キャッシュまたはデータ転送ターゲットに NULL 値を挿入します。

Microsoft bcp ユーティリティが TDV と連携してキャッシングを行うように構成するには

  1. bcp.exe ユーティリティがインストールされていて、アクセスできるディレクトリにあることを確認します。bcp.exe ファイルへのフル パスをメモします。

  2. Studio を開きます。

  3. [管理] > [構成] > [データ ソース] > [MS SQLServer ソース] を選択します。

  4. Microsoft BCP ユーティリティ パラメーターを選択します。

  5. [値] には、bcp.exe への完全なディレクトリ パスを入力します。たとえば次のように行います。

C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe  
  1. 必要に応じて Windows 認証を使用するには、DataShip BCP しきい値パラメーターを見つけて選択します。

デフォルト値は 50000 です。bcp ユーティリティを有効にした後、データ転送コストの見積もりが 50000 以上の場合は、データ転送にバルク インポートおよびエクスポートの実装が使用されます。そうでない場合は、データ移動に JDBC が使用されます。

  1. 必要に応じて Windows 認証を使用するには、DataShip BCP しきい値パラメーターの値を要件に合った値に調整します。

  2. [適用] をクリックします。

  3. [管理] > [構成] を選択します。

  4. [TDV Server] > [構成] > [デバッグ] > [データの一括ロードの有効化] に移動します。

または、[構成の検索] フィールドを使用して「バルク (bulk)」を検索します。

  1. 値を True に設定します。

  2. [適用] をクリックします。

  3. [OK] をクリックします。

  4. TDV Server を停止します。

  5. TDV Server が実行されているコマンド・ラインから、ドメイン ユーザーとしてログインします。

  6. TDV Server を起動します。

  7. これで、キャッシュ データ ターゲットの設定を完了できます。

  8. [OK] をクリックします。

  9. 必要に応じて、Windows 認証を使用して実行している場合、Windows で [サービス] > [TDV Server <version>] を開き、[プロパティ] を選択します。

  10. [ログイン] タブを選択し、このアカウント フィールドを、MSSQL インスタンスにアクセスできるドメイン ユーザーに設定します。

  11. [OK] をクリックします。

キャッシング用の SQL Server のアクセス権限を設定するには

22. データベースの SHOWPLAN 権限を設定する方法については、SQL Server のドキュメントを参照してください。
23. キャッシュに参加するすべての SQL Server データベースに対して、SHOWPLAN 権限を付与します。たとえば次のようになります。
GRANT SHOWPLAN
TO <database> [ ,...n ]
24. ファイル ターゲットへのキャッシュ」でセット アップを完了できるようになりました。

Microsoft SQL Server がキャッシュ ターゲットの場合に TDV キャッシュ動作を調整するには

  1. Studio を開きます。

  2. Studio メニュー バーから [管理] > [構成] を選択します。

  3. [データ ソース] > [マルチ ソース タイプに共通] > [データ ソース データ トランスファー] を展開します。

  4. [カラム デリミタ] パラメーターの最適な値を決定します。

  5. デフォルトは「|」です。

  6. [適用] をクリックします。

  7. [OK] をクリックします。

Netezza のネイティブ キャッシュの構成

Netezza の場合、TDV ネイティブ ロード オプションでは、Netezza 外部テーブルを利用します。Netezza データ ソースで外部テーブルを設定する方法については、Netezza のドキュメントに従う必要があります。

Netezza の場合、次の構成を選択できます。

Netezza のバルク ロードの有効化
Netezza の文字列での NUL 文字の管理

キャッシュのソースとターゲットが同じ Netezza データ ソースに存在する場合、SELECT と INSERT を直接使用してキャッシュ データをネイティブにロードすると、パフォーマンスが大幅に向上します。この機能では、[Enable Bulk Data Loading Studio] 構成パラメーターの値を True に設定する必要があります。Netezza の場合、プロシージャからキャッシュされたデータのバルク ロードを有効にするには、パラメーター値も True にする必要があります。

XML、BINARY、および VARBINARY は Netezza でサポートされません。これらのデータ タイプに関連するデータ タイプは、Netezza キャッシュに追加されません。

デフォルトでは、TDV はキャッシュ用に選択されたテーブルを分析して、DISTRIBUTE を使用してキャッシュ クエリのパラレル処理によってパフォーマンスを向上できるかどうかを確認します。リソースで指定されたすべてのキーとインデックスが参照されます。これは、キャッシュ ターゲット テーブルの作成に使用されるネイティブ DDL に DISTRIBUTE 句が追加されたかどうかを判断するために行われます。単一テーブルのキャッシングの場合、cachekey カラムも DISTRIBUTE 句に追加されます。キーもインデックスも指定されていない場合、DISTRIBUTE ON RANDOM が使用されます。

Netezza のバルク ロードの有効化

Netezza のバルク ロードを有効にするには

  1. Studio を開きます。

  2. Studio メニュー バーから [管理] > [構成] を選択します。

  3. Netezza のバッファー サイズを調整するには、[データ ソース] > [マルチ ソース タイプに共通] >[データ ソース データ トランスファー] フォルダーを展開します。

  4. Buffer Flush Threshold 構成パラメーターの最適な値を決定します。

このパラメーターは、バッファーをフラッシュする前にバッファーファイルに書き込まれるデータ行の数を制御します。最小値は 1000 で、デフォルトは 10000 です。

  1. [適用] をクリックします。

  2. [OK] をクリックします。

  3. [管理] > [構成] を選択します。

  4. [TDV Server] > [構成] > [デバッグ] > [データの一括ロードの有効化] に移動します。

または、[構成の検索] フィールドを使用して「bulk(一括)」を検索します。

  1. 値を True に設定します。

  2. [適用] をクリックします。

  3. [OK] をクリックします。

  4. これで、Netezza キャッシュ データ ターゲットのセット アップを完了できます。

Netezza の文字列での NUL 文字の管理

オプションで、NUL 文字を含むデータを移動する必要がある場合は、次のプロシージャを使用して、それらの文字が TDV によってどのように管理されるかを判断できます。

[文字列内の Nul 文字を無視] 構成パラメーターが true の場合、NUL('\0') 文字は Netezza によって破棄され、残りの文字列が読み込まれます。構成パラメーターが false の場合、ストリング内の NUL 文字は破棄されません。デフォルト値は false です。

文字列内の Nul 文字を無視するには

  1. すべての構成を変更する権限とツールにアクセスする権限の両方があることを確認してください。

  2. 管理者ユーザーとして Studio にログインします。

  3. [管理] メニューから、[構成] を選択します。

  4. ツリー ペインで、[データ ソース] > [Netezza ソース] > [文字列内の Nul 文字を無視] に移動します。

  5. True を選択します。

false に設定すると、文字列内の NUL 文字は破棄されません。

  1. [適用] をクリックします。

  2. [OK] をクリックします。

この Studio の構成変更は、このサーバーに接続されている Studio の他の開いているインスタンスにすぐには反映されません。

  1. TDV Server を再起動します。

Oracle のネイティブ キャッシュの構成

Oracle をキャッシュ ターゲットとして使用する場合は、Oracle のデータベース リンク機能を使用してキャッシングのパフォーマンスを向上させる TDV ネイティブ ロード オプションの設定を完了できます。さらに、TDV パラレル キャッシュ ロード オプションを定義できます。この機能は、Oracle キャッシュ ターゲットでサポートされます。

Oracle ターゲットにデータをキャッシュするネイティブ ロード オプションを設定するには

  1. キャッシュするビューが次となっていることを確認してください。

単一の TDV データ ソースから作成されたビューです。
データ ソース全体に対して実行 (またはプッシュ ダウン) される パス・スルー クエリを含むビューです。
ビューのソースは、DB2、Oracle、SQL Server 2008、または Sybase 15 です。
  1. データ ソースと Oracle キャッシュ ターゲット間のデータベース リンクを定義します。データベース リンクは、Oracle データベース ツールを使用して定義し、SQL を使用してデータベース リンクを直接追加するか、tnsnames.ora ファイルを変更する必要があります。

  2. Studio を開きます。

  3. キャッシュ ターゲットとして機能する Oracle データ ソースを開きます。

  4. [構成] タブで、[接続情報] セクションの [アドバンス] タブを選択します。

  5. 下にスクロールして、[Oracle データベース リンクを有効にする] チェック ボックスをオンにします。

  6. Oracle データベースで定義したデータベース リンク名を入力します。データベース リンク パスは、キャッシュのソースであるデータのパスを指している必要があります。複数のデータベース リンクが必要な場合は、[データベース リンクの追加] ボタンを使用します (複数のソースからのキャッシュを有効にするため)。

  7. [データ ソースを有効にする] がオンになっていることを確認します。

  8. [リソースの追加/削除] をクリックして [データ ソース イントロスペクション] ウィンドウを開き、データ ソースのプロパティを検索、イントロスペクト、削除、および表示します。

詳細については、「データ ソース メタデータの取得」を参照してください。

  1. [テスト接続] をクリックして、接続が機能することを確認します。

  2. 変更を保存します。

Sybase IQ のネイティブ キャッシュ オプションの構成

インストール先のプラットフォームによっては、ステップが異なる場合があります。これらのステップでは、Sybase で必要になる可能性があるすべてのステップについて詳しく説明しているわけではありません。詳細については、Sybase のドキュメントを参照してください。

Sybase のネイティブ キャッシュ ロードを構成するには

  1. SQL Anywhere データベース クライアントを確認またはインストールします。試用版は、Sybase ダウンロード サイトから入手できます。

SQL Anywhere データベース クライアントがなく、お使いの Unix システムにインストールしたくない場合は、クライアントを <TDV_install_dir>/sqlanywhere<ver> にコピーできます。SQL Anywhere データベース クライアントには、TDV に必要なドライバーがあるためです。

  1. Sybase クライアントがインストールされているディレクトリで、次のファイルを見つけます。

jodbc.jar
UNIX の場合は libdbjodbc<ver>.so
Windows 用の dbjodbc<ver>.dll
  1. 次の表で説明されている場所にファイルをコピーします。

OS

jodbc.jar をコピーする場所

dbjodbc<ver>.dll をコピーする場所

Windows 64

<TDV_install_dir>\apps\common\lib

<TDV_install_dir>\apps\common\lib\win64

Windows 32

<TDV_install_dir>\apps\common\lib

<TDV_install_dir>\apps\common\lib

UNIX(32 および 64)

<TDV_install_dir>\apps\common\lib

<TDV_install_dir>\apps\common\lib

  1. TDV Server を停止します。

  2. Unix の場合、グローバル LD_LIBRARY_PATH 環境変数が SQL Anywhere クライアント ライブラリー フォルダーを指すように設定します。TDV は、LD_LIBRARY_PATH を使用して Sybase クライアント ライブラリーを検索します。たとえば、変数を一時的に設定するには、次のように入力します。

export LD_LIBRARY_PATH=/opt/<TDV_install_dir>/sqlanywhere<ver>/lib<ver>/
  1. Sybase のドキュメントの ガイドラインに従って、ODBC データ ソースを作成します。次のステップでは、プラットフォームに応じて必要なステップの一部を強調しています。

プラットフォーム

手順

Unix

  1. odbc.ini ファイルを作成します。<TDV_install_dir> の下に作成することをお勧めします。

  2. odbc.ini ファイルに Sybase IQ データ ソース名 (DSN) を作成します。TDV を使用する場合、Driver 変数は、インストールした SQL Anywhere クライアントを指すため、最も重要な設定です。たとえば、test1 および test2 という名前のデータ ソースは、次のようになります。

#####################################
SybDB@machine64:cat odbc.ini
[test1]
Driver=/opt/<TDV_install_dir>/sqlanywhere<ver>/lib<ver>/libdbodbc<ver>_r.so
host=10.5.3.73
port=2638
uid=dba
PWD=password
DatabaseName=asiqdemo
PreventNotCapable=YES
[test2]
Driver=/opt/<TDV_install_dir>/sqlanywhere<ver>/lib<ver>/libdbodbc<ver>_r.so
host=10.5.3.74
port=2638
uid=dba
PWD=password
DatabaseName=asiqdemo
PreventNotCapable=YES
######################################

Windows

  1. ODBC アドミニストレータを起動し、[Sybase] > [データ アクセス] > [ODBC データ ソース アドミニストレータ] を選択します。

  2. [ユーザー DSN] タブで [追加] をクリックします。

  3. Sybase IQ ドライバーを選択し、[完了] をクリックします。

  4. [構成] ダイアログ ボックスが表示されます。

  5. 適切なテキスト ボックスにデータ ソース名を入力します。必要に応じて、[説明] テキスト ボックスにデータ ソースの説明を入力します。まだ [OK] をクリックしないでください。

  6. [ログイン] タブをクリックします。ユーザー名とパスワードを入力します。データ ソースがリモート マシン上にある場合は、サーバー名とデータベース ファイル名 (.DB サフィックス付き) を入力します。

  1. データ ソースがローカル マシン上にある場合は、開始行とデータベース名を (DB サフィックスなしで) 入力します。

  2. データ ソースがリモート システムにある場合は、[ネットワーク] タブをクリックします。プロトコルのチェック ボックスをクリックし、テキスト ボックスにオプションを入力します。

  1. データ ソースの定義が完了したら、[OK] をクリックします。

  1. Unix では、次のコマンドを使用して、DSN が正常にセット アップされていることを確認します。

cd sqlanywhere<ver>/bin<ver>  
./dbping -m -c "DSN=test1"

「サーバーへの Ping に成功しました」というメッセージは、DSN が機能しており、すべてのアプリケーションが DSN を使用して ODBC ドライバー経由で Sybase IQ に接続できることを意味しています。

  1. Unix では、グローバル ODBCINI 環境変数が SQL Anywhere odbc.ini ファイルを指すように設定します。たとえば、変数を一時的に設定するには、次のように入力します。

export ODBCINI=/opt/<TDV_install_dir>/odbc.ini
  1. TDV Server を起動します。

  2. Studio を開きます。

  3. Sybase IQ データ ソースを開きます。

  4. [詳細] タブを選択します。

  5. [アドバンス] タブの最後までスクロールします。

  6. 以下を選択して入力します。

Sybase iAnywhere JDBC ドライバー

パフォーマンスを向上させるには、このチェック ボックスをオンにします。このオプションを使用すると、Sybase IQ 固有の ODBC LOAD TABLE SQL ツールでデータを TDV にインポートできます。

Sql Anywhere データ ソース

ODBC DSN 名を入力します。

  1. Sybase IQ データ ソースを保存して閉じます。

Vertica のネイティブ キャッシュ オプションの構成

デフォルトでは、TDV は Vertica の バルク ロード ユーティリティまたは INSERT/SELECT をネイティブ ロード メカニズムとして使用するように設定されています。設定する必要がある TDV 構成パラメーターはありません。

システムがネイティブ キャッシングを有効にするように構成されていることの確認

  1. Studio を開きます。

  2. [管理] > [構成] を選択します。

  3. [ネイティブ ローディングの有効化] を検索し、True に設定されていることを確認します。

  4. ファイル ターゲットへのキャッシュ」でセット アップを完了できるようになりました。

TIBCO ComputeDB のネイティブ キャッシュ オプションの構成

デフォルトでは、TDV は ComputeDB のネイティブ データ ロード オプションを使用するように構成され、バルク ロード モードは「仮想スキャン」に設定されています。

TIBCO ComputeDB は、単一テーブルと複数テーブルのキャッシュの両方をサポートしています。構成方法の詳細については、「シングル テーブル データベース ターゲットへのキャッシュ」およびデータベース ターゲットでの複数テーブル キャッシュの作成のセクションを参照してください。