カスタムソース¶
カスタムデータソース (別名カスタムラッパー) は、Virtual DataPort がサポートしていないあらゆるソースにアクセスするために、Java を使用して開発する 非定型 ラッパーです。
これらのラッパーは、あらゆる種類のアプリケーションや独自のデータリポジトリのメタデータとクエリ機能を Denodo Platform で利用できるように開発します。
その開発方法については、『開発者ガイド』の「 Developing Custom Wrappers 」を参照してください。
Denodo Platform には、 Salesforce.com からデータを取得するサンプルカスタムソースのソースコードが用意されています。このサンプルは、 <DENODO_HOME>/samples/vdp/customWrappers
にあります。
このサンプルのクラスをコンパイルするには、 scripts/compile_salesforce_customwrapper
スクリプトを実行します。このスクリプトによって、 jar
ファイル target/jars/denodo-demo-salesforce-customwrapper.jar
が生成されます。
注釈
このサンプルカスタムソースを使用するには、Salesforce アカウントが必要です。Virtual DataPort でサンプルカスタムデータソースを作成する前に、そのクラスを含む jar をインポートする必要があります。そのためには、[File] メニューで [Extension management] をクリックします。つづいて、[Import] をクリックして <DENODO_HOME>/samples/vdp/customWrappers/target/jars/denodo-demo-salesforce-customwrapper.jar
ファイルを選択し、[Close] をクリックします。これにより、jar の内容が Virtual DataPort サーバーに送信されます。
カスタムデータソースを作成するには、まず拡張機能を収めた jar ファイルを Virtual DataPort にアップロードする必要があります。そのためには以下の手順に従います。
[File] メニュー > [Extension management] をクリックします。
[Extensions] タブで [Import] をクリックし、拡張機能を収めた jar ファイルを選択して [Ok] をクリックします。jar ファイルがアップロードされます。
jar ファイルをアップロードしておけば、その 1 つの jar から複数のカスタムデータソースを作成できます。jar を繰り返しアップロードする必要はありません。
jar ファイルをアップロードした後、[File] メニュー > [New] > [Data source] > [Custom] をクリックします。
データソースを作成するためのダイアログが表示されます。

カスタムデータソースの作成¶
このダイアログでは、以下のデータを指定する必要があります。
Name: 新しいデータソースの名前。
[Select jars] チェックボックスをチェックし、その下のボックスで、作成するカスタムデータソースのコードを収めた jar ファイルを選択します。
注釈
複数の jar を選択するには、Ctrl キーを押したまま目的の jar をそれぞれクリックします。
[Class name] で、カスタムデータソースを実装する Java クラスを選択します。
ここで取り上げている Salesforce サンプルの場合は、
com.denodo.vdp.demo.wrapper.custom.salesforce.SalesforceWrapper
を選択します。Classpath: 空のままにします。このフィールドは、下位互換性のみを目的として用意されています。
[Metadata] タブでは、データソースの格納先フォルダと説明を設定します。
データソースを編集する際、 ボタンをクリックすると、その所有者も変更できます。
次に、[Save] をクリックしてデータソースを作成します。
[Create base view] をクリックして、新しいデータソースから基本ビューを作成します。
カスタムソース (別名カスタムラッパー) は、入力パラメータを受け取ることができます。その場合は、基本ビューを作成するときにそれらの値を指定する必要があります。管理ツールには、パラメータ値の型に応じて、テキストボックス、ドロップダウンリスト、チェックボックスなど、パラメータ値の編集に適したコンポーネントが表示されます。使用可能な型については、『Virtual DataPort 開発者ガイド』の「 Developing Custom Wrappers 」を参照してください。
重要
パラメータの値に以下の文字のいずれかが使用されている場合は、それを文字 \
でエスケープする必要があります。これらの文字は Virtual DataPort で予約されているからです。
\
^
{
}
@
たとえば、Salesforce ログイン名が joe@acme
である場合、「 joe\@acme
」と入力する必要があります。
[Value editor] の [Load file] を使用してパラメータの値を読み込む場合は、これらの文字が自動的にエスケープされます。このエディターを開くには、パラメータボックスの横にある をクリックします。このエディターは、
LongString
型のパラメータでのみ使用可能です。
パラメータの値がきわめて長い場合または予約されている文字がパラメータの値に使用されている場合は、その値をファイルから読み込むことが推奨されます。
パススルーセッション資格情報 を使用できるカスタムラッパーの場合は、login 型と password 型の入力パラメータを 1 つずつ定義する必要があります。これらのパラメータがカスタムラッパーに存在すれば、[Pass-through session credentials] チェックボックスが表示されるので、この動作を有効にすることができます。このオプションをチェックして作成したビューを実行すると、Virtual DataPort サーバーでの認証でユーザーが使用したログインとパスワードが、カスタムラッパーのログインパラメータとパスワードパラメータとして使用されます。
警告
パススルー資格情報が有効なデータソースを使用するビューに対してキャッシュを有効にする場合は注意が必要です。このような場合に発生することが考えられる問題については、「 データソースをパススルー資格情報を使用して構成する場合の検討事項 」を参照してください。

カスタムラッパーの入力パラメータ値の編集¶
Salesforce ラッパーには、以下の入力パラメータがあります。
LOGIN = <your Salesforce.com user name>
PASSWORD = <your Salesforce.com password>
TOKEN = <your user token>
SCHEMA = アカウント (または Salesforce で使用可能な他の任意のスキーマ)
ラッパーの入力パラメータの値が、基本ビューのスキーマやラッパーの動作に影響することがあります。たとえば、Salesforce ラッパーから作成した基本ビューに存在するフィールドは、パラメータ SCHEMA
の値によって異なります。 SCHEMA
の値が account
の場合、基本ビューには shippingcity
や billingcity
などのフィールドがありますが、 SCHEMA
の値が lead
の場合は leadsource
などのフィールドがあります。
ソースからデータを取得して、さまざまなスキーマのデータを扱うことができるカスタムソースの開発では、この機能がきわめて効果的です。

カスタムデータソースからの基本ビューの作成¶
ここで [Ok] をクリックすると、新しい基本ビューのスキーマが表示されます (「 New base view from a Custom data source 」を参照)。

カスタムデータソースから作成する新しい基本ビュー¶
この時点で、ビューの名前とそのフィールドの型を変更できます。[Metadata] タブでは、基本ビューの保存先フォルダを設定して、ビューの説明を指定できます。
[Save] をクリックして、基本ビューを作成します。
基本ビューを作成した後、[Edit] をクリックするとビューを変更できます。表示されたダイアログでは、ビューのフィールド名の変更、フィールドの型の変更、別のフォルダへのビューの保存ができます。
基本ビューを編集する際、 ボタンをクリックすると、その所有者も変更できます。
カスタムソースの入力パラメータとしての補間変数の使用¶
入力パラメータが存在するカスタムソースから基本ビューを作成するときに、以下の値を指定できます。
それらのパラメータの値。
補間変数。
補間変数を指定した場合、ソースにクエリを実行して基本ビューのスキーマを認識するために、管理ツールから変数のサンプル値の入力を要求されます。これは、それらのパラメータの値に応じて異なるスキーマがカスタムラッパーから返されることがあるからです。
たとえば、Salesforce ラッパーでは、[Login] フィールドと [Password] フィールドに資格情報を設定する代わりに、それらのフィールドに補間変数を設定できます。たとえば、[Login] フィールドに @LOGIN_NAME
、[Password] フィールドに @PASSWORD
を設定します。
基本ビューを作成すると、 LOGIN_NAME
と PASSWORD
の 2 つのフィールドが追加されていることがわかります。これらのフィールドはビューにクエリを実行する際に必要なので、クエリの WHERE
句で値を指定する必要があります。
入力パラメータの値を入力するとき、LOGIN = @LOGIN_NAME@DOMAIN
のように、1 つのパラメータに複数の補間変数を組み合わせて指定できます。
また、LOGIN = @LOGIN_NAME\@acme.com
のように、静的テキストが混在した変数にすることもできます。この場合、文字 @
はエスケープされているので、テキスト @acme.com
はリテラルと解釈されます。