Virtual DataPort におけるパスの指定¶
DF、Excel、JSON または XML データソースを作成するには、データへのパスを指定する必要があります。このパスを指定するための構文は、DF、Excel、JSON、XML およびカスタムのデータソースタイプ間で共通です。
<route> ::=
LOCAL { 'LocalConnection' | 'VariableConnection' } <path:literal>
[ FILENAMEPATTERN = <literal> ]
[ CHARSET = <encoding:literal> ]
| HTTP
{
'http.CommonsHttpClientConnection [ <option> {, <option> }* } ]'
| 'http.DenodoBrowserPoolConnection [ <option> {, <option> }* } ]'
}
{ GET | POST } <uri:literal>
[ POSTBODY <body:literal> [ MIME <mimetype:literal> ] ]
[ HEADERS (
<header name:literal> = <header value:literal>
[, <header name:literal> = <header value:literal> ]*
) ]
[ <pagination settings> ]
[ CHECKCERTIFICATES ]
[ <http_authentication> ]
[ <proxy> ]
[ HTTP_ERROR_CODES_TO_IGNORE (<integer> [, <integer> ]*) ]
[ CHARSET = <encoding:literal> ]
| FTP 'ftp.FtpClientConnectionAdapter' <uri:literal> <login:literal>
{
<password:literal> [ ENCRYPTED ]
| SSH_KEY = <SSH key encoded in Base64:literal> [ ENCRYPTED ]
[ SSH_KEY_PASSWORD = <literal> [ ENCRYPTED ] ]
}
[ FILENAMEPATTERN = <literal> ]
[ CHARSET = <encoding:literal> ]
[ PASSIVE = <boolean> ]
[ EXPLICIT = <boolean> ]
[ EXECUTEPROTCOMMAND = <boolean> ]
[ PROTECTIONLEVEL = { C | P }]
[ PBSZ = <integer> ]
| HDFS 'hdfs.HdfsConnection' <uri:literal>
[ FILENAMEPATTERN = <literal> ]
[ <hdfs_authentication> ]
[ HADOOP_CUSTOM_PROPERTIES = ( [ <literal> = <literal> [, <literal> = <literal> ]* ] ) ]
[ CHARSET = <encoding:literal> ]
| S3 'hdfs.S3Connection' <uri:literal>
[ FILENAMEPATTERN = <literal> ]
[ <s3_authentication> ]
[ CUSTOM_PROPERTIES = ( [ <literal> = <literal> [, <literal> = <literal> ]* ] ) ]
[ CHARSET = <encoding:literal> ]
<pagination settings> ::=
PAGINATION_SETTINGS (
PAGE_SIZE_PARAMETER = <literal>
PAGE_SIZE = <integer>
PAGE_NUMBER_PARAMETER = <literal>
FIRST_PAGE_INDEX = <integer>
OFFSET_FOR_NEXT_REQUESTS = <integer>
MAX_NUMBER_OF_REQUESTS = <integer>
)
| PAGINATION_SETTINGS (
PAGE_SIZE_PARAMETER = <literal>
PAGE_SIZE = <integer>
NEXT_TOKEN_PARAMETER = <literal>
NEXT_TOKEN_PATH = <literal>
[ MAX_NUMBER_OF_REQUESTS = <integer> ]
)
| PAGINATION_SETTINGS (
PAGE_SIZE_PARAMETER = <literal>
PAGE_SIZE = <integer>
NEXT_TOKEN_PATH = <literal>
[ MAX_NUMBER_OF_REQUESTS = <integer> ]
)
<http_authentication> ::=
AUTHENTICATION {
OFF
| BASIC ( <credentials> )
| BASIC ( WITH PASS-THROUGH SESSION CREDENTIALS ( <credentials> ) )
| DIGEST ( <credentials> )
| DIGEST ( WITH PASS-THROUGH SESSION CREDENTIALS ( <credentials> ) )
| NTLM ( <ntlm_credentials> )
| NTLM ( WITH PASS-THROUGH SESSION CREDENTIALS ( <ntlm_credentials> ) )
| OAUTH10A (
CLIENTIDENTIFIER = <literal>
CLIENTSHAREDSECRET = <literal> [ ENCRYPTED ]
[
ACCESSTOKEN = <literal> [ ENCRYPTED ]
ACCESSTOKENSECRET = <literal> [ ENCRYPTED ]
]
SIGNATUREMETHOD = { HMAC_SHA1 | PLAINTEXT }
[
TEMPORARYCREDENTIALREQUESTURL = <literal> { GET | POST }
RESOURCEOWNERAUTHORIZATIONURL = <literal>
TOKENREQUESTURL = <literal> { GET | POST }
REDIRECTURL = { OOB | DEFAULT | <literal> }
]
)
| OAUTH20 (
ACCESSTOKEN = {
<token:literal> [ ENCRYPTED ]
| VARIABLE <name of the variable:literal>
}
REQUESTSIGNINGMETHOD = {
HEADER
| FORM_ENCODED
| URL [ <query parameter name:literal> ]
}
{
AUTHENTICATION_GRANT = PASSWORD_GRANT (
USER_IDENTIFIER = <literal>
USER_PASSWORD = <literal> [ ENCRYPTED ]
)
[ TOKENENDPOINTURL = <literal> ]
[ EXTRA_PARAMETERS_OF_REFRESH_TOKEN_REQUEST (
<parameter name:literal> = <parameter value:literal> [ ENCRYPTED | HIDDEN ]
[ , <parameter name:literal> = <parameter value:literal> [ ENCRYPTED | HIDDEN ] ]+
)
]
CLIENTIDENTIFIER = <literal>
CLIENTSECRET = <literal> [ ENCRYPTED ]
[ AUTHENTICATION_METHOD_OF_AUTHORIZATION_SERVERS =
{ HTTP_BASIC | REQUEST_BODY } ]
[ REFRESHTOKEN = {
<token:literal> [ ENCRYPTED ]
| VARIABLE <name of the variable:literal>
}
]
[ ACCESSTOKENEXPIRESIN =
<access token expires in # seconds:long> ]
]
|
AUTHENTICATION_GRANT = CLIENT_CREDENTIALS_GRANT
[ TOKENENDPOINTURL = <literal> ]
[ EXTRA_PARAMETERS_OF_REFRESH_TOKEN_REQUEST (
<parameter name:literal> = <parameter value:literal> [ ENCRYPTED | HIDDEN ]
[ , <parameter name:literal> = <parameter value:literal> [ ENCRYPTED | HIDDEN ] ]+
)
]
CLIENTIDENTIFIER = <literal>
CLIENTSECRET = <literal> [ ENCRYPTED ]
[ AUTHENTICATION_METHOD_OF_AUTHORIZATION_SERVERS =
{ HTTP_BASIC | REQUEST_BODY } ]
[ ACCESSTOKENEXPIRESIN =
<access token expires in # seconds:long> ]
]
|
AUTHENTICATION_GRANT = CODE_GRANT
[ TOKENENDPOINTURL = <literal> ]
[ EXTRA_PARAMETERS_OF_REFRESH_TOKEN_REQUEST (
<parameter name:literal> = <parameter value:literal> [ ENCRYPTED | HIDDEN ]
[ , <parameter name:literal> = <parameter value:literal> [ ENCRYPTED | HIDDEN ] ]+
)
]
CLIENTIDENTIFIER = <literal>
CLIENTSECRET = <literal> [ ENCRYPTED ]
[ AUTHENTICATION_METHOD_OF_AUTHORIZATION_SERVERS =
{ HTTP_BASIC | REQUEST_BODY } ]
[ REFRESHTOKEN = {
<token:literal> [ ENCRYPTED ]
| VARIABLE <name of the variable:literal>
}
]
[ ACCESSTOKENEXPIRESIN =
<access token expires in # seconds:long> ]
]
[
AUTHORIZATIONSERVERURL = <literal>
[ REDIRECTIONENDPOINTURL { DEFAULT | <literal> } ]
[ SCOPES = <scope 1:literal> [, <scope n:literal> ]* ]
SETSTATEPARAMETER = { TRUE | FALSE }
]
}
)
| TWO_WAY_SSL (
CERTIFICATE = <literal> [ ENCRYPTED ]
[ CERTIFICATE_PASSWORD = <literal> [ ENCRYPTED ] ]
)
| ON (
WITH OAUTH PASSTHROUGH SESSION CREDENTIALS
TOKEN_PASSTROUGH_STRATEGY = { USING_TOKEN_PASS_THROUGH | USING_TOKEN_EXCHANGE_FLOW | USING_OBO_FLOW }
(
TOKENENDPOINTURL = <literal>
CLIENTIDENTIFIER = <literal>
CLIENTSECRET = <literal> [ ENCRYPTED ]
OAUTH_USER = <literal>
OAUTH_PASSWORD = <literal> [ ENCRYPTED ]
SCOPES = <scope 1:literal> [, <scope n:literal> ]+
[ EXTRA_PARAMETERS_OF_REFRESH_TOKEN_REQUEST (
<parameter name:literal> = <parameter value:literal>
[ , <parameter name:literal> = <parameter value:literal> ]+
)
]
)
)
}
<proxy>::= PROXY
OFF
| DEFAULT
| ON ( HOST <literal> PORT <integer> [ <credentials> ] )
| AUTOMATIC ( PACURI <literal> )
<credentials> ::= USER <literal> PASSWORD <literal> [ ENCRYPTED ]
<ntlm_credentials> ::= <credentials> [ DOMAIN <literal> ]
<hdfs_authentication> ::= AUTHENTICATION {
SIMPLE ( USERNAME = <literal> )
| KERBEROS ( KRBUSERNAME = <literal> { KRBUSERPASSWORD | KRB_KEYTAB_FILE } = <literal> [ENCRYPTED] )
}
<s3_authentication> ::= AUTHENTICATION ( [
[ AWS_ACCESS_KEY_ID = <literal> ]
[ AWS_SECRET_ACCESS_KEY = <literal> [ENCRYPTED] ]
[ AWS_IAM_ROLE_ARN = <literal> ]
)
]
Virtual DataPort には 7 つのタイプのパスがあります。
Local (
LOCAL 'LocalConnection'
): 単一のファイルまたはディレクトリへのパス。Virtual DataPort サーバーが稼働しているホストのローカルファイルシステム内、または Windows 共有ドライブ内を指定できます。ディレクトリへのパスで、
FILENAMEPATTERN
が指定されている場合、FILENAMEPATTERN
の正規表現と一致する名前のファイルのみがデータソースで処理されます。この句は、カスタムラッパーおよび区切り形式ファイルのデータソースの場合のみ有効です。パラメータ
CHARSET
は DF および JSON データソースで使用できます。From Variable (
LOCAL 'VariableConnection'
): ソースからデータを取得するのではなく、データソースの基本ビューを指定したクエリのWHERE
句で実行時にクライアントからデータが提供される場合は、このパスを使用します。HTTP Client (
HTTP 'http.CommonsHttpClientConnection'
): HTTP リクエストの送信によりファイルを取得するためのパス。このパスのパラメータは以下のとおりです。タイムアウト :
http.CommonsHttpClientConnection
に続けて、リクエストのタイムアウトを指定できます。たとえば、http.CommonsHttpClientConnection,120000
はリクエストのタイムアウトが 2 分間であることを示します。リクエストの HTTP メソッド (
GET
、PUT
、POST
、PATCH
、DELETE
のいずれか)。このパラメータはhttp.DenodoBrowserPoolConnection
ではなく、http.CommonsHttpClientConnection
の場合のみ一緒に設定する必要があります。データソースのファイルの
URI
。この URI には、実行時に値が提供される補間変数を含めることができます。補間変数の詳細については、「 クエリの実行コンテキストと補間文字列 」を参照してください。POSTBODY
とMIME
(オプション): HTTP メソッドのPOST
を使用してリクエストの本文を設定する場合は、POSTBODY
パラメータを使用します。MIME はこのリクエストの本文の Mime タイプを表します。例 :application/json
またはapplication/xml
HEADERS
(オプション): HTTP リクエストのヘッダーを設定するにはこのパラメータを使用します。CHECKCERTIFICATES
(オプション): この句を追加するのは、ファイルへのパスの HTTP クライアント 構成で、[Configuration] タブの [Check certificates] チェックボックスをチェックするのと同じことです。このオプションを有効にする必要がある場合については、管理ガイドの「 HTTP パス 」 (「 Virtual DataPort でのパスの種類 」のサブセクション) を参照してください。HTTP_ERROR_CODES_TO_IGNORE
(オプション): ソースにアクセスする際に無視する HTTP エラーコードのリスト。このオプションを構成する方法については、管理ガイドの「 HTTP パス 」を参照してください。PAGINATION SETTINGS
(オプション): 改ページの使用を選択した場合、または改ページを使用する必要がある場合は、このオプションを有効にする必要があります。この句は、Create Data Source `` ダイアログで ``Pagination
タブに必要事項を入力するのと同じです。このオプションを有効にする必要がある場合については、管理ガイドの「 改ページ 」を参照してください。AUTHENTICATION
(オプション): HTTP サーバーが認証を要求する場合は、このパラメータを追加してサーバーの資格情報を示します。サポートされる認証方法は、BASIC、DIGEST、Mutual (双方向 SSL)、NTLM、 OAuth 1.0a 、 OAuth 2.0 および SPNEGO (Kerberos) です。
Administration Tool を使用してこれらの認証メカニズムを構成する方法については、管理ガイドの「 HTTP パス 」を参照してください。
認証方法
BASIC
、DIGEST
、NTLM
において、WITH PASS-THROUGH SESSION CREDENTIALS
句を追加すると、あるユーザーがこのデータソースを使用するビューにクエリを実行したときに、Virtual DataPort は HTTP サーバーに対して認証するためにこのユーザーの資格情報を使用します。この場合、USERNAME
パラメータとPASSWORD
パラメータの値は、Administration Tool がデータベースに接続し、データベースとそのテーブルやビューのスキーマを表示するためにのみ使用されます。データベースのテーブルまたはビューにクエリを実行するためには使用されません。EXTRA_PARAMETERS_OF_REFRESH_TOKEN_REQUEST
について: このパラメータの値は、プレーンテキストで、または暗号化して指定できます。暗号化された値を指定するには、トークンENCRYPTED
を追加します。パラメータの値をプレーンテキストで指定しながら、暗号化して保存するには、トークンHIDDEN
を追加します。Virtual DataPort ではこの値を暗号化して保存し、データソースの VQL もこの値を暗号化して格納します。ENCRYPTED
修飾子を追加できる値の場合は、この値をプレーンテキストで、または暗号化して設定できます。暗号化して設定する場合は、値の横にENCRYPTED
修飾子を追加します。値を暗号化するには、
ENCRYPT_PASSWORD
ステートメントに続けてパスワードを指定して実行します。たとえば、ENCRYPT_PASSWORD 'password';
のように指定します。ENCRYPT_PASSWORD
ステートメントは、相互認証証明書を暗号化する場合と、パラメータとしてファイルの Base64 表示を使用する場合に使用できます。警告
パススルー資格情報が有効なデータソースを使用するビューに対してキャッシュを有効にする場合は注意が必要です。このような場合に発生することが考えられる問題については、「 データソースをパススルー資格情報を使用して構成する場合の検討事項 」を参照してください。
これらの認証方法の詳細については、管理ガイドの「 OAuth Authentication 」を参照してください。
PROXY
(オプション): HTTP リクエストがプロキシ経由で送信される場合、3 つのオプションがあります。DEFAULT
: データソースは、Virtual DataPort サーバーのデフォルトの HTTP プロキシ構成を使用します。これらのデフォルト値の構成方法については、管理ガイドの「 Default Configuration of HTTP Proxy 」を参照してください。ON
: Virtual DataPort サーバーは、HOST
パラメータとPORT
パラメータで示されたプロキシに接続します。プロキシが認証を要求した場合は、プロキシの資格情報も入力する必要があります。AUTOMATIC
: プロキシの構成パラメータが格納されているproxy.pac
ファイルの URL を入力します。
パラメータ
CHARSET
は DF および JSON データソースで使用できます。
Denodo Browser (
HTTP 'http.DenodoBrowserPoolConnection'
): ファイルは Denodo Browser を使用して取得されます。Denodo Browser では、NSEQL (Denodo ITPilot Navigation SEQuence Language) で記述された複雑なナビゲーションシーケンスを実行できます。NSEQL シーケンスは
uri
パラメータで示されます。ブラウザは、内部のブラウザプールから、またはリモートのブラウザプールから取得できます。つまり、
HTTP 'http.DenodoBrowserPoolConnection, 3, 1'
は、内部ポートから取得したブラウザを使用して HTTP ルートを作成します。リモートプールからブラウザを取得するには、2 番目のパラメータを 2 に設定します。Denodo Browser と NSEQL シーケンスの詳細については、『Denodo ITPilot ユーザーガイド』と『NSEQL マニュアル』を参照してください。
FTP / FTPS / SFTP (
FTP
): FTP 経由でファイルにアクセスするパス。このパスのパラメータは以下のとおりです。次の形式の FTP サーバーの URL:
host:port/path/file
FTP サーバーに接続するためのユーザーのログイン
FTP サーバーに接続するためのユーザーのパスワード
SSH_KEY
: SFTP サーバーに接続するためのユーザーの SSH キー。この値は、Base64 でエンコードされたキーです。パスワードの代わりに SSH 秘密キーを必要とする FTP サーバーに接続する場合、このパラメータを設定します。SSH_KEY_PASSWORD
: SSH キーのパスワード。FILENAMEPATTERN
句は、カスタムラッパーおよび区切り形式ファイルデータソースの場合のみ有効です。パラメータ
CHARSET
は DF および JSON データソースで使用できます。パラメータ
PASSIVE
は、パッシブコネクションを有効または無効にできます。EXPLICIT
: 明示的なコネクションを有効または無効にするパラメータ。パラメータ
EXECUTEPROTCOMMAND
は、PROT の実行を有効または無効にします。有効にすると、パラメータPROTECTIONLEVEL
を使用して、P
またはC
の保護レベルを指定できます。また、PROT が有効な場合、保護バッファのネゴシエーション``PBSZ`` = <buffer_size> が必要です。
HDFS (
HDFS 'hdfs.HdfsConnection'
): HDFS ファイルシステム内にあるファイルまたは一連のファイルからデータを取得するためのパスです。このパスのパラメータは以下のとおりです。HDFS ファイルシステム内のファイルまたはディレクトリの
URI
。これがディレクトリへのパスで、FILENAMEPATTERN
が指定されている場合、FILENAMEPATTERN
の正規表現と一致する名前のファイルのみがデータソースで処理されます。この句は、カスタムラッパーおよび区切り形式ファイルのデータソースの場合のみ有効です。HADOOP_CUSTOM_PROPERTIES
(オプション) は、core-site.xml
のような Hadoop 構成ファイルに記述する場合と同じ Hadoop のプロパティを設定するためのパラメータです。AUTHENTICATION
(オプション): HDFS で認証が必要な場合、このパラメータを追加します。サポートされている認証方法を以下に示します。SIMPLE
: ユーザー名を構成する必要があります。この認証モードは、ターミナルでの Hadoop コマンドの実行時に HADOOP_USER_NAME 変数を使用する場合と同じです。KERBEROS
: Kerberos 認証を使用して HDFS に接続するためのユーザー名とパスワードまたは keytab を構成する必要があります。
パラメータ
CHARSET
は DF および JSON データソースで使用できます。
S3 (
S3 'hdfs.S3Connection'
): S3 バケット内にあるファイルまたは一連のファイルからデータを取得するためのパスです。このパスのパラメータは以下のとおりです。S3 バケット内のファイルまたはディレクトリの
URI
。これがディレクトリへのパスで、FILENAMEPATTERN
が指定されている場合、FILENAMEPATTERN
の正規表現と一致する名前のファイルのみがデータソースで処理されます。この句は、カスタムラッパーおよび区切り形式ファイルのデータソースの場合のみ有効です。CUSTOM_PROPERTIES
(オプション) は、core-site.xml
のような Hadoop 構成ファイルに記述するのと同じプロパティを設定して、S3A Hadoop コネクターを構成するパラメータです。AUTHENTICATION
:AWS_ACCESS_KEY_ID
およびAWS_SECRET_ACCESS_KEY
(オプション): これらは S3 バケットに接続するために使用するトークンです。これらを空のままにした場合、Virtual DataPort は、この Virtual DataPort サーバーが動作している AWS インスタンスからデータベースの資格情報を自動的に取得します。AWS_IAM_ROLE_ARN
(オプション): AWS ユーザーはロールを引き受けて、バケットに接続するために必要な権限を取得します。ロールの ARN は、引き受ける IAM ロールの Amazon リソース名です。arn:aws:iam::<awsAccountId>:role/<roleName>
などのロールの ARN を指定します。
パラメータ
CHARSET
は DF および JSON データソースで使用できます。
ローカル、FTP/FTPS/SFTP、HDFS、および S3 の各ルートの場合、 URI
が単一のファイルではなくディレクトリを参照しているときに、このデータソースから作成した基本ビューにクエリを実行すると、Virtual DataPort サーバーは、1 つのファイルだけからではなく、そのディレクトリにあるすべてのファイルからデータを取得します。この場合、サーバーはディレクトリ内のすべてのファイルが先頭のファイルと同じ形式であると見なします。