ユーザーガイド > TDVキャッシング > キャッシングの設定 > ネイティブ(一括)キャッシングオプションの設定
 
ネイティブ(一括)キャッシングオプションの設定
TDVネイティブロードオプションは、次の場合にキャッシュパフォーマンスを向上させます。
キャッシュソースとキャッシュターゲットが同じTDVデータソースリソースにある
キャッシュデータが、「サポートされているキャッシュターゲットストレージタイプ」の「ネイティブロードオプション」列に記載されているアクティブキャッシュターゲットのいずれかに保存される
ネイティブキャッシュのロードオプションはデフォルトで有効になっています。ネイティブロードでは、データソースに固有の機能を活用してデータ移動の速度を向上させます。
TDVは、データソースとキャッシュデータターゲットが同じTDVデータソースリソース上にあることを検出すると、直接のSELECTおよびINSERTがデータを移動する最良の方法であるか、それとも構成可能なネイティブロードオプションのいずれかがより高速に機能するかを判断します。ほとんどのデータベースには、そのデータベース用に最適化された独自のデータ移動機能があります。たとえば、すべてのOracleデータベースには、データベースリンク機能が付属しています。そのデータベースリンク機能を使用すると、TDV JDBC接続を使用してデータを移動する場合には不可能なキャッシュロードパフォーマンスの向上を実現できます。
ネイティブデータベースロードとTDVキャッシュロードの両方が失敗すると、更新ステータスは「失敗」に設定されます。
このセクションのトピック
パフォーマンスオプション
DB2 LOADユーティリティを使用します。
bcpユーティリティ(bcp.exe)を使用して一括インポートおよびエクスポートします。
Netezza外部テーブルを使用します。
データベースリンクを使用します。
LOAD_TABLEステートメント。
一括ロードユーティリティを使用します。
 
DB2用のTDVネイティブロードオプションの構成
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.IBMのドキュメントでDB2 LOADユーティリティの構成方法と使用方法を確認します。
2.お使いのプラットフォームに関するIBMの指示に従って、DB2 LOADユーティリティの該当するすべての部分をインストールして構成します。
TDV環境の一部であるすべてのマシンにクライアントドライバーをインストールする必要がある場合があります。
3.DB2 LOADユーティリティの実行に使用するDB2コマンドラインユーティリティへのフルパスを確認します。たとえば、DB2 SQLコマンドラインクライアントへのパスを見つけます。
4.Studioを開きます。
5.[Administration(管理)] > [Configuration(構成)]を選択します。
6.[Enable Bulk Data Loading(一括データロードを有効にする)]構成パラメーターを見つけます。
7.値をTrueに設定します。
8.[Apply(適用)]をクリックします。
9.[OK]をクリックします。
10.[DB2 Command-Line Utility Path(DB2コマンドラインユーティリティのパス)]構成パラメーターを見つけます。
11.[Value(値)]に、DB2コマンドラインプログラムへの完全なディレクトリーパスを入力します。パス名にスペースがある場合は、必ずパスを二重引用符で囲んでください。例:
“C:\Program Files\IBM\DB2\Tools\Bin\DB2CMD.exe”
 
12.[Apply(適用)]をクリックします。
13.[OK]をクリックします
14.TDV Serverを再起動します。
構成パラメーター値の変更は、一部はTDV Serverの実行中に適用されますが、多くはサーバーを再起動しないと正常に機能しません。
15.Studioを開き、一括ロード機能を有効にするDB2データソースを見つけます。
16.データソースエディターを開きます。
17.[Advanced(詳細)]タブを選択します。
18.下にスクロールして、[Database Alias (Used For DB2 Load) (データベースエイリアス(DB2ロードに使用))]フィールドを見つけます。
このプロパティは、カタログ化されたデータベースを識別するためにDB2ロードに渡されます。
19.[Value(値)]に、DB2データベースの名前を入力します。例: dvbudb21。
20.変更を保存します。
21.キャッシュを更新します。
この機能をサポートするために使用される一時ファイルが<TDV_install_dir>\...tmp\cacheloading\db2に作成され、アップロードプロセスの完了後、すべてのファイル、データ、コマンド、およびログがTDVによって削除されます。
Microsoft SQL Server用のTDVネイティブロードオプションの構成
Microsoft SQL Serverの場合、TDVネイティブロードオプションでは、Microsoftの一括インポートおよび一括エクスポート(bcp)機能を利用します。
Microsoft SQL Serverで使用可能な一括インポートおよび一括エクスポート機能のキャッシングでは、Microsoft bcpユーティリティを構成する必要があります。JDBC機能の代わりに一括インポートおよび一括エクスポート機能を使用すると、パフォーマンスが向上します。bcpユーティリティ(bcp.exe)は、Bulk Copy Program APIを使用するコマンドラインツールです。Microsoft bcpユーティリティは、次のタスクを実行します。
SQL Serverテーブルからデータファイルにデータを一括エクスポートする
クエリーからデータを一括エクスポートする
データファイルからSQL Serverテーブルにデータを一括インポートする
フォーマットファイルを生成する
JDBC機能を実装することを選択した場合、bcpユーティリティを構成したり、TDVの構成設定を変更したりする必要はありません。
キャッシュソースとターゲットが同じSQL Serverデータソースに存在する場合、直接のSELECTおよびINSERTを使用したキャッシュデータのネイティブロードを使用すると、パフォーマンスを大幅に向上できます。この機能では、Studioの[Enable Bulk Data Loading(一括データロードを有効にする)]構成パラメーターの値を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.[Administration(管理)] > [Configuration(構成)] > [Data Sources(データソース)] > [MS SQL Server Sources(MS SQL Serverソース)]を選択します。
4.[Microsoft BCP utility(Microsoft BCPユーティリティ)]パラメーターを選択します。
5.[Value(値)]に、bcp.exeへの完全なディレクトリーパスを入力します。例:
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe
6.オプションでWindows認証を使用するには、[DataShip BCP Threshold(DataShip BCPしきい値)]パラメーターを見つけて選択します。
デフォルト値は50000です。bcpユーティリティを有効にした後、データ転送コストの見積もりが50000以上の場合は、データ転送に一括インポートおよびエクスポートの実装が使用されます。そうでない場合は、データ移動にJDBCが使用されます。
7.オプションでWindows認証を使用するには、[DataShip BCP Threshold(DataShip BCPしきい値)]パラメーターの値を要件に合わせて調整します。
8.[Apply(適用)]をクリックします。
9.[Administration(管理)] > [Configuration(構成)]を選択します。
10.[TDV Server] > [Configuration(構成)] > [Debugging(デバッグ)] > [Enable Bulk Data Loading(一括データロードを有効にする)]に移動します。
または、[Configuration Find(構成の検索)]フィールドを使用して「bulk(一括)」を検索します。
11.値をTrueに設定します。
12.[Apply(適用)]をクリックします。
13.[OK]をクリックします。
14.TDV Serverを停止します。
15.TDV Serverが実行されているコマンドラインから、ドメインユーザーとしてログインします。
16.TDV Serverを起動します。
17.これで、キャッシュデータターゲットの設定を完了できます。
18.[OK]をクリックします。
19.オプションで、Windows認証を使用して実行する場合は、Windowsで[Services(サービス)]> [TDV Server <version>(TDV Server <バージョン>)]を開き、[Properties(プロパティ)]を選択します。
20.[Login On(ログインに使用するアカウント)]タブを選択し、[This account(このアカウント)]フィールドをMSSQLインスタンスにアクセスできるドメインユーザーに設定します。
21.[OK]をクリックします。
キャッシング用のSQL Serverのアクセス権限を設定するには
1.データベースのSHOWPLAN権限を設定する方法については、SQL Serverのドキュメントを参照してください。
2.キャッシングに参加するすべてのSQL ServerデータベースにSHOWPLAN権限を付与します。例:
GRANT SHOWPLAN
TO <database> [ ,...n ]
 
3.これで、「ファイルターゲットへのキャッシング」の設定を完了できます。
Microsoft SQL Serverがキャッシュターゲットである場合にTDVのキャッシング動作を調整するには
1.Studioを開きます。
2.Studioのメニューバーから[Administration(管理)] > [Configuration(構成)]を選択します。
3.[Data Sources(データソース)] > [Common to Multiple Source Types(複数のソースタイプに共通)] > [Data Sources Data Transfer(データソースのデータ転送)]を展開します。
4.[Column Delimiter(列区切り文字)]パラメーターの最適な値を決定します。
デフォルトは「|」です。
5.[Apply(適用)]をクリックします。
6.[OK]をクリックします。
Netezza用のネイティブキャッシングの構成
Netezzaの場合、TDVネイティブロードオプションでは、Netezza外部テーブルを利用します。Netezzaデータソースで外部テーブルを設定する方法については、Netezzaのドキュメントに従う必要があります。
Netezzaの場合、次の構成を選択できます。
Netezzaの一括ロードの有効化
Netezzaでの文字列内のNUL文字の管理
キャッシュソースとターゲットが同じNetezzaデータソースに存在する場合、直接のSELECTおよびINSERTを使用したキャッシュデータのネイティブロードを使用すると、パフォーマンスを大幅に向上できます。この機能では、Studioの[Enable Bulk Data Loading(一括データロードを有効にする)]構成パラメーターの値をTrueに設定する必要があります。Netezzaの場合、プロシージャからキャッシュされたデータの一括ロードを有効にするには、このパラメーター値もTrueにする必要があります。
XML、BINARY、およびVARBINARYはNetezzaでサポートされません。これらのデータタイプに関連するデータタイプは、Netezzaキャッシュに追加されません。
デフォルトでは、TDVはキャッシング用に選択されたテーブルを分析し、DISTRIBUTEを使用してキャッシュクエリーを並列処理することでパフォーマンスを向上できるかどうかを確認します。リソースで指定されているすべてのキーとインデックスが参照されます。これは、キャッシュターゲットテーブルの作成に使用されるネイティブDDLにDISTRIBUTE句が追加されたかどうかを判断するために行われます。単一テーブルキャッシングの場合、キャッシュキー列もDISTRIBUTE句に追加されます。キーもインデックスも指定されていない場合は、DISTRIBUTE ON RANDOMが使用されます。
Netezzaの一括ロードの有効化
Netezzaの一括ロードを有効にするには
1.Studioを開きます。
2.Studioのメニューバーから[Administration(管理)] > [Configuration(構成)]を選択します。
3.Netezzaのバッファサイズを調整するには、[Data Sources(データソース)] > [Common to Multiple Source Types(複数のソースタイプに共通)] > [Data Sources Data Transfer(データソースのデータ転送)]フォルダーを展開します。
4.[Buffer Flush Threshold(バッファフラッシュのしきい値)]構成パラメーターの最適な値を決定します。
このパラメーターは、バッファをフラッシュする前にバッファファイルに書き込まれるデータ行の数を制御します。最小値は1000で、デフォルトは10000です。
5.[Apply(適用)]をクリックします。
6.[OK]をクリックします。
7.[Administration(管理)] > [Configuration(構成)]を選択します。
8.[TDV Server] > [Configuration(構成)] > [Debugging(デバッグ)] > [Enable Bulk Data Loading(一括データロードを有効にする)]に移動します。
または、[Configuration Find(構成の検索)]フィールドを使用して「bulk(一括)」を検索します。
9.値をTrueに設定します。
10.[Apply(適用)]をクリックします。
11.[OK]をクリックします。
12.これで、Netezzaキャッシュデータターゲットの設定を完了できます。
Netezzaでの文字列内のNUL文字の管理
オプションで、NUL文字を含むデータを移動する必要がある場合は、以下の手順を使用して、TDVでそれらの文字を管理する方法を指定できます。
[Ignore Nul Characters in Strings(文字列のNul文字を無視)]構成パラメーターがtrueの場合、NUL(「\0」)文字がNetezzaによって破棄され、残りの文字列がロードされます。この構成パラメーターがfalseの場合、文字列内のNUL文字は破棄されません。デフォルト値はfalseです。
文字列内のNul文字を無視するには
1.すべての構成の変更とツールへのアクセスの両方の権限があることを確認します。
2.管理者ユーザーとしてStudioにログインします。
3.[Administration(管理)]メニューから[Configuration(構成)]を選択します。
4.ツリーペインで、[Data Sources(データソース)] > [Netezza Sources(Netezzaソース)] > [Ignore Nul Characters in Strings(文字列内のヌル文字を無視)]に移動します。
5.Trueを選択します。
falseに設定すると、文字列内のNUL文字は破棄されません。
6.[Apply(適用)]をクリックします。
7.[OK]をクリックします。
このStudioの構成変更は、このサーバーに接続されているStudioの他の開いているインスタンスにすぐには反映されません。
8.TDV Serverを再起動します。
Oracle用のネイティブキャッシングの構成
Oracleをキャッシュターゲットとして使用する場合は、Oracleのデータベースリンク機能を使用してキャッシングのパフォーマンスを向上させるTDVネイティブロードオプションの設定を完了できます。さらに、TDV並列キャッシュロードオプションを定義できます。この機能は、Oracleキャッシュターゲットでサポートされます。
Oracleターゲットにデータをキャッシュするネイティブロードオプションを設定するには
1.キャッシュするビューが次の条件に該当することを確認します。
単一のTDVデータソースから作成されたビューであること
完全にデータソースに対して実行(またはプッシュダウン)されるパススルークエリーを持つビューであること
ビューソースがDB2、Oracle、SQL Server 2008、またはSybase 15であること
2.データソースとOracleキャッシュターゲット間のデータベースリンクを定義します。データベースリンクを定義するには、OracleデータベースツールでSQLを使用してデータベースリンクを直接追加するか、tnsnames.oraファイルを変更する必要があります。
3.Studioを開きます。
4.キャッシュターゲットとして機能させるOracleデータソースを開きます。
5.[Configuration(構成)]タブで、[Connection Information(接続情報)]セクションの[Advanced(詳細)]タブを選択します。
6.下にスクロールして、[Enable Oracle Database(Oracleデータベースリンクを有効にする)]チェックボックスをオンにします。
7.Oracleデータベースで定義したデータベースリンク名を入力します。データベースリンクパスは、キャッシュのソースであるデータのパスを指している必要があります。複数のデータベースリンクが必要な場合は、(複数のソースからのキャッシングを有効にするために) [Add Database Link(データベースリンクの追加)]ボタンを使用します。
8.[Enable Data Source(データソースを有効にする)]がオンになっていることを確認します。
9.[Add/Remove Resources(リソースの追加/削除)]をクリックして[Data Source Introspection(データソースのイントロスペクション)]ウィンドウを開き、データソースのプロパティを検索、イントロスペクト、削除、および表示します。
詳細については、「データソースメタデータの取得」を参照してください。
10.[Test Connection(テスト接続)]をクリックして、接続が機能することを確認します。
11.変更を保存します。
Sybase IQ用のネイティブキャッシングオプションの構成
インストール先のプラットフォームによっては、手順が異なる場合があります。これらの手順では、Sybaseで必要になる可能性があるすべての手順について詳しく説明しているわけではありません。詳細については、Sybaseのドキュメントを参照してください。
Sybaseのネイティブキャッシュロードを構成するには
1.SQL Anywhereデータベースクライアントを確認またはインストールします。Sybaseのダウンロードサイトから試用版を入手できます。
SQL Anywhereデータベースクライアントがなく、お使いのUnixシステムにインストールしたくない場合は、クライアントを<TDV_install_dir>/sqlanywhere<ver>にコピーできます。SQL Anywhereデータベースクライアントには、TDVに必要なドライバーがあるためです。
2.Sybaseクライアントがインストールされているディレクトリーで次のファイルを見つけます。
jodbc.jar
libdbjodbc<ver>.so for Unix
dbjodbc<ver>.dll for Windows
3.次の表に記載されている場所にこれらのファイルをコピーします。
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
4.TDV Serverを停止します。
5.Unixの場合、グローバルLD_LIBRARY_PATH環境変数がSQL Anywhereクライアントライブラリーフォルダーを指すように設定します。TDVは、LD_LIBRARY_PATHを使用してSybaseクライアントライブラリーを検索します。たとえば、変数を一時的に設定するには、次のように入力します。
export LD_LIBRARY_PATH=/opt/<TDV_install_dir>/sqlanywhere<ver>/lib<ver>/
 
6.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 Administratorを起動し、[Sybase] > [Data Access(データアクセス)] > [ODBC Data Source Administrator(ODBCデータソース管理者)]を選択します。
2.[User DSN(ユーザーDSN)]タブで[Add(追加)]をクリックします。
3.Sybase IQドライバーを選択し、[Finish(終了)]をクリックします。
4.[Configuration(構成)]ダイアログボックスが表示されます。
5.該当するテキストボックスにデータソース名を入力します。必要に応じて、[Description(説明)]テキストボックスにデータソースの説明を入力します。まだ[OK]をクリックしないでください。
6.[Login(ログイン)]タブをクリックします。ユーザー名とパスワードを入力します。データソースがリモートマシン上にある場合は、サーバー名とデータベースファイル名(.DBサフィックスを含める)を入力します。
7.データソースがローカルマシン上にある場合は、開始行とデータベース名(DBサフィックスなし)を入力します。
8.データソースがリモートシステム上にある場合は、[Network(ネットワーク)]タブをクリックします。プロトコルのチェックボックスをクリックし、テキストボックスにオプションを入力します。
9.データソースの定義が終了したら、[OK]をクリックします。
10.Unixで、次のコマンドを使用して、DSNが正常に設定されていることを確認します。
cd sqlanywhere<ver>/bin<ver>
./dbping -m -c "DSN=test1"
 
「サーバーへのPingに成功しました」というメッセージは、DSNが機能しており、すべてのアプリケーションがDSNを使用してODBCドライバー経由でSybase IQに接続できることを意味しています。
11.Unixで、グローバルODBCINI環境変数がSQL Anywhere odbc.iniファイルを指すように設定します。たとえば、変数を一時的に設定するには、次のように入力します。
export ODBCINI=/opt/<TDV_install_dir>/odbc.ini
 
12.TDV Serverを起動します。
13.Studioを開きます。
14.Sybase IQデータソースを開きます。
15.[Advanced(詳細)]タブを選択します。
16.[Advanced(詳細)]タブの最後までスクロールします。
17.以下を選択して入力します。
[Sybase iAnywhere JDBC Driver(Sybase iAnywhere JDBCドライバー)]
パフォーマンスを向上させるには、このチェックボックスをオンにします。このオプションを使用すると、Sybase IQ固有のODBC LOAD TABLE SQLツールでデータをTDVにインポートできます。
[Sql Anywhere Data Source(Sql Anywhereデータソース)]
ODBC DSN名を入力します。
18.Sybase IQデータソースを保存して閉じます。
Vertica用のネイティブキャッシングオプションの構成
デフォルトでは、TDVは、Verticaの一括ロードユーティリティまたはINSERT/SELECTをネイティブロードメカニズムとして使用するように構成されています。設定する必要があるTDV構成パラメーターはありません。
システムがネイティブキャッシングを有効にするように構成されていることの確認
1.Studioを開きます。
2.[Administration(管理)] > [Configuration(構成)]を選択します。
3.[Enable Native Loading(ネイティブロードを有効にする)]を探し、このオプションがTrueに設定されていることを確認します。
4.これで、「ファイルターゲットへのキャッシング」の設定を完了できます。