カスタム関数のネイティブ データ ソースへのプッシュ

TDV クエリ エンジンではなく、ネイティブ データ ソースによってカスタム関数を強制的に実行することができます。カスタム関数にすることができる SQL スクリプトの種類の説明については、「カスタム関数へのプロシージャの昇格」を参照してください。

常にネイティブ データ ソースにプッシュされるカスタム関数に SQL スクリプトをプロモートするには、以下のプロシージャで説明されているように、[ネイティブのみ] チェック ボックスを使用します。

注: [ネイティブのみ] チェック ボックスをオンにしなくても、TDV クエリ エンジンはカスタム関数をデータ ソースにプッシュする場合があります。カスタム関数がプッシュされることを保証するために、チェック ボックスを使用できます。

カスタム関数をネイティブデータ ソースにプッシュするには

1. 管理者としてログインするか、管理者にこれらのステップを実行してもらいます。
2. スカラー出力が 1 つの SQL スクリプトを見つけて開き、[ネイティブのみ] チェック ボックスをオンにします。
3. Studio で、[管理] > [カスタム関数] メニューを使用します。

候補となる SQL スクリプトの数が多い場合、Studio にリストが表示されるまで時間がかかる場合があります。

4. カスタム関数に昇格するプロシージャを選択します。
5. [OK] をクリックします。
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> 
9. TDV Server を再起動します。

カスタム関数は、呼び出されると、実行できるようにネイティブデータ ソースにプッシュされます。たとえば、ss10 が Netezza テーブルを含む SQL ステートメント内で呼び出されると、この関数を実行できるように Netezza データ ソースにプッシュされます。