カスタム関数のネイティブ データ ソースへのプッシュ
TDV クエリ エンジンではなく、ネイティブ データ ソースによってカスタム関数を強制的に実行することができます。カスタム関数にすることができる SQL スクリプトの種類の説明については、「カスタム関数へのプロシージャの昇格」を参照してください。
常にネイティブ データ ソースにプッシュされるカスタム関数に SQL スクリプトをプロモートするには、以下のプロシージャで説明されているように、[ネイティブのみ] チェック ボックスを使用します。
注: [ネイティブのみ] チェック ボックスをオンにしなくても、TDV クエリ エンジンはカスタム関数をデータ ソースにプッシュする場合があります。カスタム関数がプッシュされることを保証するために、チェック ボックスを使用できます。
カスタム関数をネイティブデータ ソースにプッシュするには
|
1.
|
管理者としてログインするか、管理者にこれらのステップを実行してもらいます。 |
|
2.
|
スカラー出力が 1 つの SQL スクリプトを見つけて開き、[ネイティブのみ] チェック ボックスをオンにします。 |
|
3.
|
Studio で、[管理] > [カスタム関数] メニューを使用します。 |
候補となる SQL スクリプトの数が多い場合、Studio にリストが表示されるまで時間がかかる場合があります。
|
4.
|
カスタム関数に昇格するプロシージャを選択します。 |
|
6.
|
次の ガイドラインとヒントを使用して、次のように変更するアダプター ファイルを決定します。 |
|
—
|
/conf/adapters の下で行われた変更は、ホットフィックスの適用後も残り、すべての CAR ファイルに含まれます。 これは、/conf/adapters/custom および /conf/adapters/system に当てはまります。 |
|
—
|
/conf/adapters/system の下のシステム アダプターに加えられた変更には、さらに編集が必要になる場合があります。たとえば、Oracle の場合、11g の <common:attribute> </common:attribute> を定義する必要があります。 |
注: カスタム関数をデータ ソースのすべてのバージョンにプッシュしたい場合は、そのデータ ソースの「汎用」ケイパビリティ ファイルにカスタム関数の名前と署名を追加します。
|
—
|
/apps/dlm の下は変更しないでください。 |
|
—
|
カスタム アダプターを作成してカスタマイズを管理することもできますが、不足している機能を追加する場合は推奨できません。 |
|
7.
|
カスタマイズする 機能ファイルを見つけます。 |
たとえば、カスタムの Netezza データ ソース用のカスタム関数 ss10 を追加するには、次のファイルを開きます。
<TDV_install_dir>\conf\adapters\system\<netezza_ver>\<netezza>.xml
|
8.
|
テキスト エディターから XML を開き、カスタム関数の名前、タイプ、値、および configID を追加します。たとえば、カスタム関数 ss10 を追加するには、次のような XML を追加します。 |
<common:attribute xmlns:common="http://www.compositesw.com/services/system/util/common">
<common:name>/custom/ss10(~string,~string)</common:name>
<common:type>STRING</common:type>
<common:value>ss10($1,$2)</common:value>
<common:configID>ss10(~string,~string)</common:configID>
</common:attribute>
カスタム関数は、呼び出されると、実行できるようにネイティブデータ ソースにプッシュされます。たとえば、ss10 が Netezza テーブルを含む SQL ステートメント内で呼び出されると、この関数を実行できるように Netezza データ ソースにプッシュされます。