すべてのデータ・ソースを対象としたデータベース・ロード・ユーティリティーを使用することで、パフォーマンスを向上させることができます。
このタスクについて
IBM® Campaign は、データベース・ロード・ユーティリティーの使用をサポートしています。 このユーティリティーは、ご使用のデータベースのベンダーから入手できます。ライセンス交付を受けたデータベース・ロード・ユーティリティーのコピーを入手する必要があります。
データベース・ロード・ユーティリティーにより、一時テーブルに ID リストをプッシュするときや、IBM Campaign からデータベースにデータをエクスポートするときに、パフォーマンスを向上させることができます。例えば、スナップショット処理、メール・リスト処理、またはコール・リスト処理の間に、データがエクスポートされます。
ロード・ユーティリティーによりパフォーマンスを大幅に向上させることができます。DB2 でのテストでは、ロード・ユーティリティーなしでは、100 万行の挿入に約 5 倍の CPU 使用率と、大量のディスク I/O が必要であることが示されます。 結果は、使用中のハードウェアに応じて異なります。
重要: 以下の調整は、システム・リソースに影響を与える可能性があり、潜在的にパフォーマンス数値にも影響を与える可能性があります。
手順
データベース・ロード・ユーティリティーを使用するように IBM Campaign をセットアップするには、データ・ソースごとに実行する 3 つの主なステップがあります。2 つのロード制御ファイル・テンプレートの作成、ロード・ユーティリティーを開始するスクリプトまたは実行可能ファイルの作成、そして IBM Campaign でローダー構成プロパティーの設定です。
- 2 つのロード制御ファイル・テンプレートを作成します。
ほとんどのデータベース・ロード・ユーティリティーで、制御ファイルを使用する必要があります。IBM Campaign は、作成した制御ファイル・テンプレートに基づいて、動的に制御ファイルを生成することができます。
- 追加レコード用のロード制御ファイル・テンプレートを作成します。テンプレートは、以下の行で構成されていなければなりません。この例のテンプレートの名前は loadscript.db2 です。
connect to <DATABASE> user <USER> using <PASSWORD>;
load client from <DATAFILE> of del modified by coldel| insert into <TABLE>(
<FIELDNAME><,>
)
nonrecoverable;
- 追加レコード用のロード制御ファイル・テンプレートを作成します。テンプレートは、以下の行で構成されていなければなりません。この例のテンプレートの名前は loadappend.db2 です。
connect to <DATABASE> user <USER> using <PASSWORD>;
load client from <DATAFILE> of del modified by coldel| insert into <TABLE>(
<FIELDNAME><,>
)
nonrecoverable;
これで、データを新規データベース表や空のデータベース表にロードしたり、既存のデータベース表にデータを追加したりするためのテンプレートができました。
IBM Campaignは、テンプレート内の DATABASE、USER、PASSWORD、DATAFILE、TABLE、および FIELDNAME の各トークンに入力し、DB2 ロード用に CONTROLFILE という名前の構成ファイルを作成します。
- ロード・ユーティリティーを開始するためのスクリプトまたは実行可能ファイルを作成します。
ロード・ユーティリティーを呼び出すために、IBM Campaign は Loadercommand 構成プロパティーに指定されているシェル・スクリプト (Windows の場合は実行可能ファイル) を使用します。データベース・ロード・ユーティリティーの実行可能ファイルに対する直接呼び出しを指定することも、データベース・ロード・ユーティリティーを起動するスクリプトに対する呼び出しを指定することもできます。
- この例では、ローダーを開始するための db2load.sh という名前のシェル・スクリプトを作成します。/tmp パスは、ユーザーが選択したディレクトリーで置き換えることもできます。
#!/bin/sh
cp $1 /tmp/controlfile.tmp
cp $2 /tmp/db2load.dat
db2 -tvf $1 >> /tmp/db2load.log
- スクリプト・ファイルの権限を、実行権限を持つように変更します。
chmod 755 db2load.sh
- IBM Campaign でローダー構成プロパティーを設定します。
ローダー構成プロパティーは、制御ファイル・テンプレートを識別し、スクリプトまたは実行可能ファイルの場所を示します。必ずデータ・ソースごとに構成設定を調整してください。
- を選択してから、Campaign|partitions|partition1|dataSources|<datasourcename> を選択します。
- Loader というワードで始まるプロパティーを設定します。重要情報について、Campaign | partitions | partition[n] | dataSourcesを参照してください。
- LoaderCommand: データベース・ロード・ユーティリティーを呼び出すスクリプトまたは実行可能ファイルへのパス。スクリプトは CAMPAIGN_HOME/partition/partition[n] にある必要があります。ほとんどのデータベース・ロード・ユーティリティーでは、正常に起動するために複数の引数が必要です。DB2 が必要とするトークンは、以下の例では不等号括弧で囲んで示されます。トークンは、表示されているとおりに正確に入力してください。これらのトークンは、コマンドが実行されると、指定された要素によって置き換えられます。例: /IBM/Campaign/partition/partition1/db2load.sh <CONTROLFILE> <DATAFILE>
- LoaderCommandForAppend: レコードをデータベース表に追加するためのデータベース・ロード・ユーティリティーを呼び出すスクリプトまたは実行可能ファイルへのパス。スクリプトは CAMPAIGN_HOME/partition/partition[n] にある必要があります。例: /IBM/Campaign/partition/partition1/db2load.sh <CONTROLFILE> <DATAFILE>
- LoaderDelimiter および LoaderDelimiterForAppend: ローダー制御ファイル・テンプレートで使用される区切り文字。
- LoaderControlFileTemplate:Campaign 用に構成される制御ファイル・テンプレート。例: loadscript.db2
- LoaderControlFileTemplateForAppend: 付加レコード用の制御ファイル・テンプレート。例: loadappend.db2
- その他すべての「ローダー」設定: 実装の必要に応じて、Campaign | partitions | partition[n] | dataSources のトピックに示される情報に従って指定します。
- IBM Contact Optimization を使用する場合は、このステップも実行します。
注: IBM Contact Optimization はユーザー・データベースのデータ・ソースを更新しないため、以下の情報はユーザー・データベースのデータ・ソースに当てはまりません。
IBM Contact Optimization は UA_SYSTEM_TABLES データ・ソース・ローダー設定を使用して、セッションの実行時に Contact Optimization テーブルを更新します。これらの設定は IBM Campaign および IBM Contact Optimization に共通であるため、ローダーを次のように構成する必要があります。
- IBM Contact Optimization ローダー設定: UA_SYSTEM_TABLES データ・ソースのローダー構成のローダー・スクリプトでは相対パスを使用しません。代わりに、絶対パスを使用します。
- Campaign および Contact Optimization が別のマシンにインストールされる場合は、Campaign マシンと Contact Optimization マシンの絶対パスが同一のフォルダー構造になるように作成します。Campaign リスナーと Contact Optimization リスナーのどちらも、それぞれのマシンでこの絶対パスにアクセスできることを確認します。
- Campaign と Contact Optimization が同じマシンにインストールされている場合は、フォルダー構造が既に存在しているため、作成する必要はありません。
例: この例では、Campaign と Contact Optimization は別のマシンにインストールされ、Campaign は次のローダー構成を持っています。
LoaderCommand:/IBM/Campaign/partitions/partition1/db2load.sh <CONTROLFILE> <DATAFILE>
LoaderCommandForAppend://IBM/Campaign/partitions/partition1/db2load.sh <CONTROLFILE> <DATAFILE>
この例では、/IBM/Campaign/partitions/partition1/ ディレクトリーを Contact Optimization マシンに作成し、ローダー固有のすべての必要なスクリプト・ファイルを Contact Optimization マシンのそのディレクトリーにコピーします。詳しくは、「Contact Optimization ユーザー・ガイド」のデータベース・ロード・ユーティリティーの構成に関する項目を参照してください。
タスクの結果
IBM Campaign は、データベースへの書き込み時に、以下のアクションを実行します。最初に、一時データ・ファイルを固定幅テキストまたは区切りテキストとして作成します。LoaderControlFileTemplate プロパティーで指定されている場合、一時制御ファイルは、テンプレート・ファイルおよびデータベースに送信されるフィールドのリストに基づいて、動的に作成されます。次に、LoaderCommand 構成プロパティーで指定されているコマンドを発行します。最後に、一時データ・ファイルおよび一時制御ファイルをクリーンアップします。