カスタムソース

カスタムデータソース (別名カスタムラッパー) は、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 にアップロードする必要があります。そのためには以下の手順に従います。

  1. [File] メニュー > [Extension management] をクリックします。

  2. [Extensions] タブで [Import] をクリックし、拡張機能を収めた jar ファイルを選択して [Ok] をクリックします。jar ファイルがアップロードされます。

jar ファイルをアップロードしておけば、その 1 つの jar から複数のカスタムデータソースを作成できます。jar を繰り返しアップロードする必要はありません。

jar ファイルをアップロードした後、[File] メニュー > [New] > [Data source] > [Custom] をクリックします。

データソースを作成するためのダイアログが表示されます。

Creating a custom data source

カスタムデータソースの作成

このダイアログでは、以下のデータを指定する必要があります。

  • Name: 新しいデータソースの名前。

  • [Select jars] チェックボックスをチェックし、その下のボックスで、作成するカスタムデータソースのコードを収めた jar ファイルを選択します。

    注釈

    複数の jar を選択するには、Ctrl キーを押したまま目的の jar をそれぞれクリックします。

  • [Class name] で、カスタムデータソースを実装する Java クラスを選択します。

    ここで取り上げている Salesforce サンプルの場合は、 com.denodo.vdp.demo.wrapper.custom.salesforce.SalesforceWrapper を選択します。

  • Classpath: 空のままにします。このフィールドは、下位互換性のみを目的として用意されています。

  • [Metadata] タブでは、データソースの格納先フォルダーと説明を設定します。

データソースを編集する際、 image1 ボタンをクリックすると、その所有者も変更できます。

次に、[Save] をクリックしてデータソースを作成します。

[Create base view] をクリックして、新しいデータソースから基本ビューを作成します。

カスタムソース (別名カスタムラッパー) は、入力パラメーターを受け取ることができます。その場合は、基本ビューを作成するときにそれらの値を指定する必要があります。管理ツールには、パラメーター値の型に応じて、テキストボックス、ドロップダウンリスト、チェックボックスなど、パラメーター値の編集に適したコンポーネントが表示されます。使用可能な型については、『Virtual DataPort 開発者ガイド』の「 Developing Custom Wrappers 」を参照してください。

重要

パラメーターの値に以下の文字のいずれかが使用されている場合は、それを文字 \ でエスケープする必要があります。これらの文字は Virtual DataPort で予約されているからです。

  • \

  • ^

  • {

  • }

  • @

たとえば、Salesforce ログイン名が joe@acme である場合、「 joe\@acme 」と入力する必要があります。

[Value editor] の [Load file] を使用してパラメーターの値を読み込む場合は、これらの文字が自動的にエスケープされます。このエディターを開くには、パラメーターボックスの横にある image1 をクリックします。このエディターは、 LongString 型のパラメーターでのみ使用可能です。

パラメーターの値がきわめて長い場合または予約されている文字がパラメーターの値に使用されている場合は、その値をファイルから読み込むことが推奨されます。

パススルーセッション資格情報 を使用できるカスタムラッパーの場合は、login 型と password 型の入力パラメーターを 1 つずつ定義する必要があります。これらのパラメーターがカスタムラッパーに存在すれば、[Pass-through session credentials] チェックボックスが表示されるので、この動作を有効にすることができます。このオプションをチェックして作成したビューを実行すると、Virtual DataPort サーバーでの認証でユーザーが使用したログインとパスワードが、カスタムラッパーのログインパラメーターとパスワードパラメーターとして使用されます。

警告

パススルー資格情報が有効なデータソースを使用するビューに対してキャッシュを有効にする場合は注意が必要です。このような場合に発生することが考えられる問題については、「 データソースをパススルー資格情報を使用して構成する場合の検討事項 」を参照してください。

Editing input parameter values of a custom wrapper

カスタムラッパーの入力パラメーター値の編集

Salesforce ラッパーには、以下の入力パラメーターがあります。

  • LOGIN = <your Salesforce.com user name>

  • PASSWORD = <your Salesforce.com password>

  • TOKEN = <your user token>

  • SCHEMA = アカウント (または Salesforce で使用可能な他の任意のスキーマ)

ラッパーの入力パラメーターの値が、基本ビューのスキーマやラッパーの動作に影響することがあります。たとえば、Salesforce ラッパーから作成した基本ビューに存在するフィールドは、パラメーター SCHEMA の値によって異なります。 SCHEMA の値が account の場合、基本ビューには shippingcitybillingcity などのフィールドがありますが、 SCHEMA の値が lead の場合は leadsource などのフィールドがあります。

ソースからデータを取得して、さまざまなスキーマのデータを扱うことができるカスタムソースの開発では、この機能がきわめて効果的です。

Creating a base view from a Custom data source

カスタムデータソースからの基本ビューの作成

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

New base view from a Custom data source

カスタムデータソースから作成する新しい基本ビュー

この時点で、ビューの名前とそのフィールドの型を変更できます。[Metadata] タブでは、基本ビューの保存先フォルダーを設定して、ビューの説明を指定できます。

[Save] をクリックして、基本ビューを作成します。

基本ビューを作成した後、[Edit] をクリックするとビューを変更できます。表示されたダイアログでは、ビューのフィールド名の変更、フィールドの型の変更、別のフォルダーへのビューの保存ができます。

基本ビューを編集する際、 image1 ボタンをクリックすると、その所有者も変更できます。

カスタムソースの入力パラメーターとしての補間変数の使用

入力パラメーターが存在するカスタムソースから基本ビューを作成するときに、以下の値を指定できます。

  • それらのパラメーターの値。

  • 補間変数。

補間変数を指定した場合、ソースにクエリを実行して基本ビューのスキーマを認識するために、管理ツールから変数のサンプル値の入力を要求されます。これは、それらのパラメーターの値に応じて異なるスキーマがカスタムラッパーから返されることがあるからです。

たとえば、Salesforce ラッパーでは、[Login] フィールドと [Password] フィールドに資格情報を設定する代わりに、それらのフィールドに補間変数を設定できます。たとえば、[Login] フィールドに @LOGIN_NAME 、[Password] フィールドに @PASSWORD を設定します。

基本ビューを作成すると、 LOGIN_NAMEPASSWORD の 2 つのフィールドが追加されていることがわかります。これらのフィールドはビューにクエリを実行する際に必要なので、クエリの WHERE 句で値を指定する必要があります。

入力パラメーターの値を入力するとき、LOGIN = @LOGIN_NAME@DOMAIN のように、1 つのパラメーターに複数の入力変数を組み合わせて指定できます。

また、LOGIN = @LOGIN_NAME\@acme.com のように、静的テキストが混在した変数にすることもできます。この場合、文字 @ はエスケープされているので、テキスト @acme.com はリテラルと解釈されます。