ネイティブ (バルク) キャッシュ オプションの設定
TDVネイティブロードオプションは、次の場合にキャッシュパフォーマンスを向上させます。
| • | キャッシュ ソースとキャッシュ ターゲットは、同じ TDV データ ソース リソース上にあります。 |
| • | キャッシュ データは、サポートされているキャッシュ ターゲット ストレージ タイプの表のネイティブ ロード オプションカラムにリストされているアクティブなキャッシュ ターゲットの 1 つに保存されています。 |
ネイティブキャッシュのロードオプションはデフォルトで有効になっています。ネイティブロードでは、データソースに固有の機能を活用してデータ移動の速度を向上させます。
TDVは、データソースとキャッシュデータターゲットが同じTDVデータソースリソース上にあることを検出すると、直接のSELECTおよびINSERTがデータを移動する最良の方法であるか、それとも構成可能なネイティブロードオプションのいずれかがより高速に機能するかを判断します。ほとんどのデータベースには、そのデータベース用に最適化された独自のデータ移動機能があります。たとえば、すべてのOracleデータベースには、データベースリンク機能が付属しています。そのデータベースリンク機能を使用すると、TDV JDBC接続を使用してデータを移動する場合には不可能なキャッシュロードパフォーマンスの向上を実現できます。
ネイティブデータベースロードとTDVキャッシュロードの両方が失敗すると、更新ステータスは「失敗」に設定されます。
|
このセクションのトピック |
パフォーマンスオプション |
|
DB2 LOADユーティリティを使用します。 |
|
|
Netezza外部テーブルを使用します。 |
|
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. | [Apply(適用)]をクリックします。 |
| 9. | [OK]をクリックします。 |
| 10. | DB2 Command-Line Utility Path 構成パラメーターを見つけます。 |
| 11. | [値] には、DB2 コマンドライン プログラムへの完全なディレクトリ パスを入力します。パス名にスペースが含まれている場合は、必ずパスを二重引用符で囲んでください。例えば次のとおりです。 |
“C:\Program Files\IBM\DB2\Tools\Bin\DB2CMD.exe”
| 12. | [Apply(適用)]をクリックします。 |
| 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と連携してキャッシングを行うように構成するには
-
bcp.exe ユーティリティがインストールされていて、アクセスできるディレクトリにあることを確認します。 bcp.exe ファイルへのフル パスをメモします。
-
Studio を開きます。
-
[管理] > [構成] > [データ ソース] > [MS SQLServer ソース] を選択します。
-
[値] には、bcp.exe への完全なディレクトリ パスを入力します。例えば次のとおりです。
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe
デフォルト値は50000です。bcpユーティリティを有効にした後、データ転送コストの見積もりが50000以上の場合は、データ転送に一括インポートおよびエクスポートの実装が使用されます。そうでない場合は、データ移動にJDBCが使用されます。
-
必要に応じて Windows 認証を使用するには、DataShip BCP しきい値パラメーターの値を要件に合った値に調整します。
-
[Apply(適用)]をクリックします。
-
[管理] > [構成] を選択します。
または、[Configuration Find(構成の検索)]フィールドを使用して「bulk(一括)」を検索します。
-
値を True に設定します。
-
[Apply(適用)]をクリックします。
-
[OK]をクリックします。
-
TDV Server を停止します。
-
TDV Server が実行されているコマンド ラインから、ドメイン ユーザーとしてログインします。
-
TDV Server を起動します。
-
これで、キャッシュ データ ターゲットの設定を完了できます。
-
[OK]をクリックします。
-
必要に応じて、Windows 認証を使用して実行している場合、Windows で [サービス] > [TDV Server <version>] を開き、[プロパティ] を選択します。
-
[ログイン] タブを選択し、[このアカウント] フィールドを、MSSQL インスタンスにアクセスできるドメイン ユーザーに設定します。
-
[OK]をクリックします。
キャッシング用のSQL Serverのアクセス権限を設定するには
| 22. | データベースの SHOWPLAN 権限を設定する方法については、SQL Server のドキュメントを参照してください。 |
| 23. | キャッシュに参加するすべての SQL Server データベースに対して、SHOWPLAN 権限を付与します。例えば次のとおりです。 |
GRANT SHOWPLAN
TO <database> [ ,...n ]
| 24. | ファイルターゲットへのキャッシュでセットアップを完了できるようになりました。 |
Microsoft SQL Server がキャッシュ ターゲットの場合に TDV キャッシュ動作を調整するには
-
Studio を開きます。
-
Studio メニュー バーから [管理] > [構成] を選択します。
-
で0ta Sources > Common to Multiple Source Types >Data Sources Data Transfer を展開します。
-
デフォルトは「|」です。
-
[Apply(適用)]をクリックします。
-
[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の一括ロードを有効にするには
-
Studio を開きます。
-
Studio メニュー バーから [管理] > [構成] を選択します。
-
Netezza のバッファー サイズを調整するには、[Data Sources] > [Common to Multiple Source Types] >[Data Sources Data Transfer] フォルダーを展開します。
このパラメーターは、バッファをフラッシュする前にバッファファイルに書き込まれるデータ行の数を制御します。最小値は1000で、デフォルトは10000です。
-
[Apply(適用)]をクリックします。
-
[OK]をクリックします。
-
[管理] > [構成] を選択します。
または、[Configuration Find(構成の検索)]フィールドを使用して「bulk(一括)」を検索します。
-
値を True に設定します。
-
[Apply(適用)]をクリックします。
-
[OK]をクリックします。
-
これで、Netezza キャッシュ データ ターゲットのセットアップを完了できます。
Netezza の文字列での NUL 文字の管理
オプションで、NUL 文字を含むデータを移動する必要がある場合は、次のプロシージャを使用して、それらの文字が TDV によってどのように管理されるかを判断できます。
[文字列内の Nul 文字を無視] 構成パラメーターが true の場合、NUL('\0') 文字は Netezza によって破棄され、残りの文字列が読み込まれます。構成パラメーターが false の場合、ストリング内の NUL 文字は破棄されません。デフォルト値は false です。
文字列内のNul文字を無視するには
-
すべての構成を変更する権限とツールにアクセスする権限の両方があることを確認してください。
-
管理者ユーザーとして Studio にログインします。
-
[管理] メニューから、[構成] を選択します。
-
ツリー ペインで、[データ ソース] > [Netezza ソース] > [文字列内の Nul 文字を無視] に移動します。
-
True を選択します。
falseに設定すると、文字列内のNUL文字は破棄されません。
-
[Apply(適用)]をクリックします。
-
[OK]をクリックします。
このStudioの構成変更は、このサーバーに接続されているStudioの他の開いているインスタンスにすぐには反映されません。
-
TDV Server を再起動します。
Oracle のネイティブ キャッシュの構成
Oracleをキャッシュターゲットとして使用する場合は、Oracleのデータベースリンク機能を使用してキャッシングのパフォーマンスを向上させるTDVネイティブロードオプションの設定を完了できます。さらに、TDV並列キャッシュロードオプションを定義できます。この機能は、Oracleキャッシュターゲットでサポートされます。
Oracleターゲットにデータをキャッシュするネイティブロードオプションを設定するには
-
キャッシュするビューが次となっていることを確認してください。
| — | 単一の TDV データ ソースから作成されたビューです。 |
| — | データ ソース全体に対して実行 (またはプッシュ ダウン) される パススルー クエリを含むビューです。 |
| — | ビューのソースは、DB2、Oracle、SQL Server 2008、または Sybase 15 です。 |
-
データ ソースと Oracle キャッシュ ターゲット間のデータベース リンクを定義します。データベース リンクは、Oracle データベース ツールを使用して定義し、SQL を使用してデータベース リンクを直接追加するか、tnsnames.ora ファイルを変更する必要があります。
-
Studio を開きます。
-
キャッシュ ターゲットとして機能する Oracle データ ソースを開きます。
-
[構成] タブで、[接続情報] セクションの [アドバンス] タブを選択します。
-
下にスクロールして、[Oracle データベース リンクを有効にする] チェック ボックスをオンにします。
-
Oracle データベースで定義したデータベース リンク名を入力します。データベース リンク パスは、キャッシュのソースであるデータのパスを指している必要があります。複数のデータベース リンクが必要な場合は、[データベース リンクの追加] ボタンを使用します (複数のソースからのキャッシュを有効にするため)。
-
[データ ソースを有効にする] がオンになっていることを確認します。
-
[リソースの追加/削除] をクリックして [データ ソース イントロスペクション] ウィンドウを開き、データ ソースのプロパティを検索、イントロスペクト、削除、および表示します。
詳細については、 データ ソース メタデータの取得を参照してください。
-
[テスト接続] をクリックして、接続が機能することを確認します。
-
変更を保存します。
Sybase IQ のネイティブ キャッシュ オプションの設定
インストール先のプラットフォームによっては、手順が異なる場合があります。これらの手順では、Sybaseで必要になる可能性があるすべての手順について詳しく説明しているわけではありません。詳細については、Sybaseのドキュメントを参照してください。
Sybaseのネイティブキャッシュロードを構成するには
SQL Anywhereデータベースクライアントがなく、お使いのUnixシステムにインストールしたくない場合は、クライアントを<TDV_install_dir>/sqlanywhere<ver>にコピーできます。SQL Anywhereデータベースクライアントには、TDVに必要なドライバーがあるためです。
-
Sybase クライアントがインストールされているディレクトリで、次のファイルを見つけます。
| — | jodbc.jar |
| — | UNIX の場合は libdbjodbc<ver>.so |
| — | Windows 用の dbjodbc<ver>.dll |
-
次の表で説明されている場所にファイルをコピーします。
|
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 |
-
TDV Server を停止します。
-
Unix の場合、グローバル LD_LIBRARY_PATH 環境変数が SQL Anywhere クライアント ライブラリ フォルダーを指すように設定します。 TDV は、LD_LIBRARY_PATH を使用して Sybase クライアント ライブラリを検索します。たとえば、変数を一時的に設定するには、次のように入力します。
export LD_LIBRARY_PATH=/opt/<TDV_install_dir>/sqlanywhere<ver>/lib<ver>/
-
Sybase のドキュメントのガイドラインに従って、ODBC データ ソースを作成します。次の手順では、プラットフォームに応じて必要な手順の一部を強調しています。
-
Unix では、次のコマンドを使用して、DSN が正常にセットアップされていることを確認します。
cd sqlanywhere<ver>/bin<ver>
./dbping -m -c "DSN=test1"
「サーバーへのPingに成功しました」というメッセージは、DSNが機能しており、すべてのアプリケーションがDSNを使用してODBCドライバー経由でSybase IQに接続できることを意味しています。
export ODBCINI=/opt/<TDV_install_dir>/odbc.ini
-
TDV Server を起動します。
-
Studio を開きます。
-
Sybase IQ データ ソースを開きます。
-
[アドバンス] タブを選択します。
-
[アドバンス] タブの最後までスクロールします。
-
以下を選択して入力します。
|
パフォーマンスを向上させるには、このチェックボックスをオンにします。このオプションを使用すると、Sybase IQ固有のODBC LOAD TABLE SQLツールでデータをTDVにインポートできます。 |
|
|
ODBC DSN名を入力します。 |
-
Sybase IQ データ ソースを保存して閉じます。
Vertica のネイティブ キャッシュ オプションの構成
デフォルトでは、TDV は Vertica の バルク ロード ユーティリティまたは INSERT/SELECT をネイティブ ロード メカニズムとして使用するように設定されています。設定する必要がある TDV 構成パラメーターはありません。
システムがネイティブキャッシングを有効にするように構成されていることの確認
-
Studio を開きます。
-
[管理] > [構成] を選択します。
-
Enable Native Loading を検索し、True に設定されていることを確認します。
-
ファイルターゲットへのキャッシュでセットアップを完了できるようになりました。
TIBCO ComputeDB のネイティブ キャッシュ オプションの構成
デフォルトでは、TDV は ComputeDB のネイティブ データ ロード オプションを使用するように構成され、バルク ロード モードは「仮想スキャン」に設定されています。
TIBCO ComputeDB は、単一テーブルと複数テーブルのキャッシュの両方をサポートしています。構成方法の詳細については、 シングル テーブル データベース ターゲットへのキャッシュおよびデータベース ターゲットでの複数テーブル キャッシュの作成のセクションを参照してください。