Virtual DataPort でのパスの種類¶
XML、JSON、または区切り形式テキストファイル (DF) の各タイプでデータソースを作成する場合、データファイルへのパスを指定する必要があります。Virtual DataPort は、以下の場所からデータファイルを取得できます。
ローカル: ローカルファイルシステムからファイルを取得します。「 ローカルパス 」を参照してください。
変数: データをファイルから取得するのではなく、ファイルの内容がクライアントからリクエストで指定されます。「 変数によるパス 」を参照してください。
HTTP: HTTP リクエストを送信してファイルを取得します。「 HTTP パス 」を参照してください。
Denodo Browser: ITPilot シーケンスを実行してファイルを取得します。「 Denodo Browser パス 」を参照してください。
FTP / SFTP / FTPS: FTP サーバーからファイルを取得します。「 FTP/SFTP/FTPS パス 」を参照してください。
HDFS: HDFS ファイルシステムからファイルを取得します。「 HDFS パス 」を参照してください。
S3: S3 バケットからファイルを取得します。「 S3 パス 」を参照してください。
変数タイプを除くすべての種類のパスでは、[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 ファイルに以下のタスクの手順が説明されています。
スクリプト
<DENODO_HOME>/tools/db/denodo-crypt-tools/bin/encrypt
を使用してファイルを暗号化し、別のファイルに出力を保存する。「標準入力」で提供されたデータを暗号化することもできます。「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 」に示すようなダイアログが表示されます。
[Select jars] チェックボックスをチェックして、[Class name] ボックスでカスタムフィルタのクラス名を選択します。
カスタムフィルタに入力パラメータがある場合、[Add parameter] をクリックして、各パラメータの名前と値を入力します。パラメータの [Encrypted] チェックボックスをチェックすると、そのパラメータの値は非表示になり、暗号化されて Virtual DataPort サーバーに送信されます。パラメータを削除するには、 をクリックします。
完了後、[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 サーバーでは、これらの値を使用してソースにクエリを実行し、新しい基本ビューのスキーマを計算します。
注釈
補間変数を受け取るパラメータに、補間変数を示すために使用する特殊文字 (@
、 {
、または }
) のいずれかを使用したリテラルを入力する場合、それらの文字を \
でエスケープする必要があります。
たとえば、ファイルへのパスが 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 ガイド』の「 クエリの実行コンテキストと補間文字列 」を参照してください。