Virtual DataPort でのパスの種類

XML、JSON、または区切り形式テキストファイル (DF) の各タイプでデータソースを作成する場合、データファイルへのパスを指定する必要があります。Virtual DataPort は、ファイルにアクセスするパスとして、以下の 5 種類をサポートしています。

  1. ローカル: ローカルファイルシステムからファイルを取得します。「 ローカルパス 」を参照してください。

  2. 変数: データをファイルから取得するのではなく、ファイルの内容がクライアントからリクエストで指定されます。「 変数によるパス 」を参照してください。

  3. HTTP: HTTP リクエストを送信してファイルを取得します。「 HTTP パス 」を参照してください。

  4. Denodo Browser: ITPilot シーケンスを実行してファイルを取得します。「 Denodo Browser パス 」を参照してください。

  5. FTP / SFTP / FTPS: FTP サーバーからファイルを取得します。「 FTP/SFTP/FTPS パス 」を参照してください。

変数タイプを除くすべての種類のパスでは、[Test Connection] ボタン ([Ok] の横) をクリックして、そのパスがアクセス可能であることを確認できます。ファイルへのパスとして補間変数を入力した場合、コネクションをテストするには、データソースを作成する前にそれら変数の値を指定する必要があります。

DF (区切り形式ファイル) と JSON の各データソースには、データのエンコードを指定するオプションがあります。[Autodetect encoding] チェックボックスをチェックしている場合、データソースの基本ビューにクエリを実行したときに、Virtual DataPort サーバーによってファイルのエンコードの検出が試みられます。このチェックボックスのチェックをはずしている場合は、[Charset Encoding] ドロップダウンリストでファイルのエンコードを選択します。

圧縮または暗号化されたデータソース

Virtual DataPort は、以下のデータファイルにアクセスできます。

  • ZIP 圧縮ファイル。

  • GZIP 圧縮ファイル。

  • 「MD5 と DES によるパスワードベースの暗号化」 (PBEWithMD5AndDES) アルゴリズムで暗号化されているファイル。この暗号化方法については、『 Java Cryptography Architecture (JCA) Reference Guide 』を参照してください。

この扱いは、変数タイプを除くすべての種類のパスに適用されます。それらの構成で、以下のオプションを選択できます。

  • Decompress (zip format): データファイルが ZIP 圧縮ファイルの場合に選択します。

  • Decompress (gzip format): データファイルが GZIP 圧縮ファイルの場合に選択します。

  • Decrypt: このフィルターを使用すると、 PBEWithHmacSHA256-512もしくはAES_256 アルゴリズムまたは PBEWithMD5AndDES アルゴリズムで暗号化されたデータが復号されます。このフィルターを選択した場合、ファイルの暗号化に使用された [Password] を入力してください。

    PBEWithHmacSHA256-512もしくはAES-256 とは、 HMAC-SHA256-512 アルゴリズムもしくは AES-256 アルゴリズムによるパスワードベースの暗号化 を意味します。

    注釈

    PBEWithMD5AndDES の復号 フィルターは非推奨です。入力ファイルの暗号化方法を選択できる場合、より安全な PBEWithHmacSHA256-512もしくはAES-256 の使用をお勧めします。

    詳細については、「 Features Deprecated in Denodo Platform 8.0 」を参照してください。

  • Custom: Virtual DataPort でデータを処理する前に、データを前処理するための独自のカスタムフィルターを開発できます。カスタムフィルターの詳細については、「 カスタム入力フィルター 」を参照してください。

Virtual DataPort で読み取る DF ファイル、JSON ファイル、または XML ファイルを外部アプリケーションで生成する場合、セキュリティ上の理由でそのファイルを暗号化できます。このように暗号化したデータにアクセスするデータソースを作成する際に [Decrypt] フィルターを選択します。Virtual DataPort には、「PBEWithHmacSHA256-512もしくはAES_256」アルゴリズムと「PBEWithMD5AndDES」アルゴリズムでファイルを暗号化するツールが用意されています。そのツールを使用するには、 <DENODO_HOME>/tools/db/denodo-crypt-tools/denodo-crypt-tools.zip ファイルを解凍します。このファイルに含まれている README ファイルに以下のタスクの手順が説明されています。

  1. スクリプト <DENODO_HOME>/tools/db/denodo-crypt-tools/bin/encrypt を使用してファイルを暗号化し、別のファイルに出力を保存する。「標準入力」で提供されたデータを暗号化することもできます。

  2. 「denodo-crypt-tools.jar」ライブラリを Java アプリケーションに統合し、データの暗号化と復号を実行する。

カスタム入力フィルター

Virtual DataPort には、上記の入力フィルターのほか、ソースから取得したデータを任意の方法で前処理するフィルターを開発できる Java API が用意されています。これにより、Virtual DataPort で処理する前の入力データを任意の方法で変換できます。

カスタムフィルターを開発するには、『開発者ガイド』の「 Developing Custom Input Filters 」を参照してください。開発してインポートしたフィルターは、DF、JSON、または XML のデータソースに割り当てることができます。

データソースにフィルターを割り当てるには、データファイル (区切り形式ファイル、XML、または JSON のデータソース) へのパスを構成するダイアログを開きます。このダイアログで、[Custom] オプションボタン (「HTTP クライアント」ルートの場合、このボタンは [Filters] タブにあります)、[Edit] の順にクリックすると、「 Assigning a custom filter to a DF data source 」に示すようなダイアログが表示されます。

Assigning a custom filter to a DF data source

DF データソースへのカスタムフィルターの割り当て

[Select jars] チェックボックスをチェックして、[Class name] ボックスでカスタムフィルターのクラス名を選択します。

カスタムフィルターに入力パラメーターがある場合、[Add parameter] をクリックして、各パラメーターの名前と値を入力します。パラメーターの [Encrypted] チェックボックスをチェックすると、そのパラメーターの値は非表示になり、暗号化されて Virtual DataPort サーバーに送信されます。パラメーターを削除するには、 image7 をクリックします。

完了後、[Ok] をクリックしてダイアログを閉じ、通常どおりのデータソースの構成を続行します。

補間変数によるパスなどの値

データソースのパスや他のパラメーターは、その値に 補間変数 を追加することによってパラメーター化できます。このような変数を使用することで、設計時 (データソースの作成時) にフィールドの値を指定する必要がなくなります。代わりに、そのデータソースを使用する実行時、ビューにクエリを実行する際に、それらの変数の値を指定します。

たとえば、Web サーバーから XML ファイルを取得する XML データソースを作成する場合、ビューの作成時点でそのファイルのフルパスが不明なときは、URL を「http://acme.com/reports/@{DEPT_NAME}.xml」のように入力します。

この URL では DEPT_NAME が補間変数です。これは、文字列 @{DEPT_NAME} が実行時にこの変数の値で置き換えられることを意味します。このデータソースから作成したビューにクエリを実行するクライアントは、クエリの WHERE 句でこの値を指定する必要があります。

補間変数を使用したデータソースを作成すると、そのソースから作成した基本ビューには、補間変数ごとにフィールドが存在しています。このフィールドの名前は、その補間変数の名前と同じです。ソースから取得したデータに存在するフィールドが、この補間変数名と競合する場合、ソースから取得したフィールドの名前が変更されます。

ここの例では、この XML データソースから作成した基本ビューに追加フィールドとして DEPT_NAME が存在します。クライアントが、このソースにアクセスする次のようなクエリを実行するとします。

SELECT *
FROM ...
WHERE DEPT_NAME = 'it'

文字列 @{DEPT_NAME}it で置き換えられます。したがって、Virtual DataPort サーバーは URL http://acme.com/reports/it.xml から XML ファイルを取得します。

補間変数を使用したデータソースから基本ビューの作成を開始すると、それらの変数を入力するダイアログが表示されます (「 Providing input values to interpolation variables 」を参照)。Virtual DataPort サーバーでは、これらの値を使用してソースにクエリを実行し、新しい基本ビューのスキーマを計算します。

Providing input values to interpolation variables

補間変数への値の入力

注釈

補間変数を受け取るパラメーターに、補間変数を示すために使用する特殊文字 (@{ 、または }) のいずれかを使用したリテラルを入力する場合、それらの文字を \ でエスケープする必要があります。

たとえば、ファイルへのパスが C:/dir}/file.xml である場合は、中括弧をエスケープして C:/dir\}/file.xml とする必要があります。

Windows システムでは、ファイルパスの指定に文字 \ が使用されるので、その解釈があいまいになることが考えられます。たとえば、Virtual DataPort サーバーでは、パス C:\tmp\@{var}C:\ ディレクトリの tmp@{var} ファイルを参照していると解釈される可能性があります。2 番目の \ は、 @ の直前にあるのでエスケープ文字と見なされるからです。したがって、 \ 文字をエスケープする必要があります。

たとえば、パス C:\\tmp\\@{var} は、 var 変数の値をファイル名として C:\tmp に置かれているファイルを参照します。

詳細については、『VQL ガイド』の「 クエリの実行コンテキストと補間文字列 」を参照してください。