カスタムソース¶
カスタムデータソース (別名カスタムラッパー) は、Virtual DataPort がサポートしていないあらゆるソースにアクセスするために、Java を使用して開発する 非定型 ラッパーです。
これらのラッパーは、あらゆる種類のアプリケーションや独自のデータリポジトリのメタデータとクエリ機能を Denodo Platform で利用できるように開発します。
その開発方法については、『開発者ガイド』の「 Developing Custom Wrappers 」を参照してください。
Denodo Platform には、Virtual DataPort が動作するホストのディレクトリのファイルを一覧表示するサンプルのカスタムソースのソースコードが組み込まれています。この例は <DENODO_HOME>/samples/vdp/customWrappers
にあります。
このサンプルのクラスをコンパイルするには、 scripts/compile_listdir_customwrapper
スクリプトを実行します。このスクリプトによって、 jar
ファイル target/jars/denodo-demo-listdir-customwrapper.jar
が生成されます。
注釈
Virtual DataPort でサンプルのカスタムデータソースを作成する前に、クラスを含む jar をインポートする必要があります。インポートするには、[File] メニューの [Extension management] をクリックします。次に [Import] をクリックし、 <DENODO_HOME>/samples/vdp/customWrappers/target/jars/denodo-demo-listdir-customwrapper.jar
ファイルを選択して、[Close] をクリックします。その際、jar の内容がサーバーに送信されます。
カスタムデータソースを作成するには、まず拡張機能を収めた 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 クラスを選択します。
ここで取り上げている ListDir サンプルの場合は、 com.denodo.vdp.demo.wrapper.custom.listdir.ListDirWrapper を選択します。
Classpath: 空のままにします。このフィールドは、下位互換性のみを目的として用意されています。
[Metadata] タブで以下の操作を実行できます。
データソースが保存されるフォルダを設定します。
説明を入力します。
データソースがデプロイされるインフラストラクチャ情報を設定します。インフラストラクチャのプロバイダー名 (オンプレミス、Amazon Web Services、Microsoft Azure、Google Cloud Platform など) とリージョン名を設定できます。プロバイダー名やリージョンがリストにない場合は、カスタム名を入力できます。
データソースを編集する際、 ボタンをクリックすると、その所有者も変更できます。
次に、[Save] をクリックしてデータソースを作成します。
[Create base view] をクリックして、新しいデータソースから基本ビューを作成します。
カスタムソース (別名カスタムラッパー) は、入力パラメータを受け取ることができます。その場合は、基本ビューを作成するときにそれらの値を指定する必要があります。管理ツールには、パラメータ値の型に応じて、テキストボックス、ドロップダウンリスト、チェックボックスなど、パラメータ値の編集に適したコンポーネントが表示されます。使用可能な型については、『Virtual DataPort 開発者ガイド』の「 Developing Custom Wrappers 」を参照してください。
重要
パラメータの値に以下の文字のいずれかが使用されている場合は、それを文字 \
でエスケープする必要があります。これらの文字は Virtual DataPort で予約されているからです。
\
^
{
}
@
[Value editor] の [Load file] を使用してパラメータの値を読み込む場合は、これらの文字が自動的にエスケープされます。このエディターを開くには、パラメータボックスの横にある をクリックします。このエディターは、
LongString
型のパラメータでのみ使用可能です。
パラメータの値がきわめて長い場合または予約されている文字がパラメータの値に使用されている場合は、その値をファイルから読み込むことが推奨されます。
パススルーセッション資格情報 を使用できるカスタムラッパーの場合は、login 型と password 型の入力パラメータを 1 つずつ定義する必要があります。これらのパラメータがカスタムラッパーに存在すれば、[Pass-through session credentials] チェックボックスが表示されるので、この動作を有効にすることができます。このオプションをチェックして作成したビューを実行すると、Virtual DataPort サーバーでの認証でユーザーが使用したログインとパスワードが、カスタムラッパーのログインパラメータとパスワードパラメータとして使用されます。
警告
パススルー資格情報が有効なデータソースを使用するビューに対してキャッシュを有効にする場合は注意が必要です。このような場合に発生することが考えられる問題については、「 データソースをパススルー資格情報を使用して構成する場合の検討事項 」を参照してください。

カスタムラッパーの入力パラメータ値の編集¶
ListDir ラッパーには、以下の入力パラメータがあります。
DIR_ROUTE = <your route of the directory you want to list>
RECURSIVE = <optionally select this check box>
ラッパーの入力パラメータの値は、基本ビューのスキーマやラッパーの動作に影響を与える場合があります。
ソースからデータを取得して、さまざまなスキーマのデータを扱うことができるカスタムソースの開発では、この機能がきわめて効果的です。

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

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