Windows での ODBC ドライバーの構成¶
Denodo Platform は、Windows 用の ODBC ドライバーを提供しています。このドライバーは、ODBC PostgreSQL ドライバーをベースとしています。
ODBC アプリケーションから Denodo に接続するには、 クライアントアプリケーションが実行されるマシンで 以下の手順に従って実施してください。
Windows への ODBC ドライバーのインストール¶
ODBC ドライバーは、 クライアントアプリケーションが実行されるマシン にインストールします。そのためには、以下の手順に従って実施してください。
denodo-vdp-odbcdriver-windows.zipファイルを取得します。そのためには、以下の手順に従います。インストール (
<DENODO_HOME>/tools/client-drivers/odbc/denodo-vdp-odbcdriver-windows.zip) からコピーします。または、Denodo Community の ODBC ページ からダウンロードします。
このページで、Windows 用のドライバー (名前は -win で終わります) をダウンロードします。接続する Denodo サーバー 以前の バージョンのパッケージを選択してください。たとえば、Denodo サーバーの更新プログラムが 7.0 20181011 の場合、パッケージ denodo-vdp-odbcdriver-7.0-update-20190312-win はこれより新しいため、ダウンロード しないでください 。
このファイルの内容を展開し、それらをクライアントアプリケーションが実行されるホストにコピーします。 「msi」フォルダーを開き、「DenodoODBC_x64.msi」を実行します。
Windows での DSN のセットアップ¶
クライアントアプリケーションが実行されるホストに Denodo ODBC ドライバーをインストールしたら、Denodo サーバーを参照する新しいデータソース (DSN) を登録する必要があります。
これを行うには、以下の手順に従って実施してください。
Windows 管理ツール (コントロールパネル) の ODBC データソース アプレットを開きます。
これを開くには、Windows キーを押して、「 ODBC データ ソースのセットアップ 」と入力します。
[ユーザー DSN] タブで、[追加] をクリックします。
DSN を作成する際は、Denodo に接続するアプリケーションを実行するユーザーと同じユーザーアカウントを使用します。それができない場合は、「システム DSN」を作成します。コンピュータのローカル管理者のみがシステム DSN を登録できます。管理者が DSN を作成できない場合、ユーザー DSN を作成します。
「システム DSN」と「ユーザー DSN」の違いは、「ユーザー DSN」は現在のユーザーだけが使用できるのに対して、「システム DSN」はシステムのすべてのユーザーが使用できることです。
[DenodoODBC Unicode] ドライバー (DenodoODBC ANSI ではありません) を選択して [完了] をクリックします。
構成ダイアログで、以下の情報を入力します。
Database: Virtual DataPort のデータベース (
adminなど)。データベースの名前に非 ASCII 文字が含まれている場合、これらを URL エンコードする必要があります。たとえば、データベースの名前が「テスト」の場合、「%E3%83%86%E3%82%B9%E3%83%88」と入力します。Server と Port: Virtual DataPort を実行するサーバーのホスト名とポート。デフォルトの ODBC ポートは 9996 です。
User Name と Password: Virtual DataPort ユーザーの資格情報。
注釈
一部のツールでは、DSN 名が要求され、さらに DSN で定義されたユーザーとパスワードを使用せずに、ユーザーとパスワードが要求されることがあります。パスワードに
%、{、}、+が含まれている場合、接続できないことがあります。その場合は、%を%25、+を%2B、{を%7B、}を%7Dでエスケープする必要があります。接続しようとしている Denodo データベースで Kerberos 認証が選択されている場合、ドライバーはこれらの資格情報を無視します。代わりに、システムキャッシュから Kerberos チケットを取得し、Kerberos 認証を使用します。この場合、標準ユーザーおよびパスワードの認証を使用して接続することはできません。また ODBC コネクションで Kerberos を使用するために、データベースレベルで Kerberos 認証を選択する必要はなくなりました。DSN のデータソース構成の [Page 3] でクライアント構成に対して Kerberos 認証を有効にできます。
注釈
Kerberos 認証を使用できるようにするには、DSN の構成が以下の条件を満たしている必要があります。
クライアントが Windows ドメインに属している。これは、ODBC ドライバーがチケットキャッシュに対して Kerberos チケットをリクエストするためです。
[Server] フィールドに、Denodo サーバーの完全修飾ドメイン名を入力する。つまり、Denodo サーバーの Kerberos 構成の [Server principal] フィールドが
HTTP/denodo-prod.subnet1.contoso.com@CONTOSO.COMの場合、「denodo-prod.subnet1.contoso.com」と入力します。
Virtual DataPort サーバーで SSL が有効にされている場合、[SSL Mode] リストで [require] を選択します。
Denodo ODBC ドライバー: 構成ダイアログ¶
[Datasource] をクリックして [Advanced options] ダイアログを開きます。
デフォルトのオプション (以下 のスクリーンショットを参照) で問題ありませんが、以下の事項に注意してください。
この DSN が受信したすべてのリクエストをログに記録する場合は、[CommLog (C:\denodoODBC_xxx.log)] と [MyLog (C:\mylog_xxx.log)] を選択します。
重要
本番環境では、これらのチェックボックスのチェックをはずすことをお勧めします。これは、すべてのリクエストをログに記録すると、ドライバーのパフォーマンスが低下し、ログファイルのサイズが非常に大きくなる場合があるためです。
[Unknown sizes] で、[Maximum] を選択します。この意味については、「 テキスト値の最大長 」を参照してください。
[Use Declare/Fetch] がチェックされているため、DSN は DECLARE CURSOR/FETCH を使用して SELECT ステートメントを処理します。これにより、DSN は結果の行を一度にすべてではなくブロック単位で取得します。[Chunk Size] は、各ブロックの行数を設定します。DSN の [Chunk size] は、JDBC コネクションの [Fetch size] に相当するものです。
Denodo ODBC ドライバー: 詳細構成 (1 ページ)¶
[Page 2] をクリックします。
デフォルトのオプション (以下 のスクリーンショットを参照) で問題ありません。
また、[Level of rollback on errors] 領域で、[Transaction] を選択します。
Denodo ODBC ドライバー: 詳細構成 (2 ページ)¶
[TCP KEEPALIVE setting] ボックスでは、TCP の keepAlive 機能の有効/無効を設定できます。これは、ODBC クライアントでプールされたコネクションをプロキシやロードバランサーなどのネットワークエージェントで閉じないようにする場合に便利です。
disable: この機能を無効にする場合に選択します。
idle time: アクティビティがない状態でこの秒数が経過すると、ドライバーは Virtual DataPort に TCP の keepAlive メッセージを送信します。デフォルト値: 60。
interval: この秒数が経過すると、ドライバーは、Virtual DataPort で確認されなかった TCP の keepAlive メッセージを再送します。デフォルト値: 5。
[Connect settings] ボックスに以下のステートメントを入力することで、Virtual DataPort に対して確立された ODBC コネクションのプロパティを設定できます。
SET QUERYTIMEOUT TO <value>は、クエリのタイムアウトを変更します (値はミリ秒単位)。
SET i18n TO <i18n>は、コネクションのロケールを変更します。
SET FORCE_DECIMAL_PROPERTIES TO trueは、サイズとスケールを 10 進数値から強制的に変更し、メタデータ情報と一致させます。たとえば、クエリのデフォルトのタイムアウトを 1 時間に設定するには、次のステートメントを追加します。
SET QUERYTIMEOUT TO 3600000; SET I18N TO us_pst;各ステートメント間の
;に注意してください。次の表に、これらのプロパティの説明とそのデフォルト値を示します。
コネクションプロパティ |
説明 |
デフォルト値 |
|---|---|---|
QUERYTIMEOUT |
ドライバーがクエリの完了を待機する最長時間 (ミリ秒)。この時間を過ぎると、ドライバーは例外をスローします。0 の場合、ドライバーはクエリが完了するまで無期限に待機します。 このパラメータは、すべてのクエリのデフォルトタイムアウトを設定します。また、クエリの |
900000 ミリ秒 (15 分) |
i18n |
サーバーとのコネクションのロケール (i18n) 構成を設定します。存在しない場合、ドライバーは接続しているデータベースのロケールを想定します。 クエリの結果の「date」フィールドは、コネクションのロケールに割り当てられているタイムゾーンに変換されます。 クエリの |
<接続しているデータベースのロケール> |
FORCE_DECIMAL_PROPERTIES |
ビューが公開型の名前とサイズを再定義すると、その情報は、JDBC または ODBC を介してサーバーにアクセスするクライアントにその値を伝播するために使用されます。この再定義は値自体には影響しません。 ODBC クライアントの中には、サイズやスケールが異なる 10 進数値の受信が困難なものがあります。 この設定を有効にすると、ODBC に送信される 10 進数値が変更され、そのサイズとスケールが更新されます。 |
false |
[Page 3] をクリックして以下を行います。
[The use of LIBPQ library] オプションを [yes] に設定します。
[User Agent] ボックスに、この DSN を使用するアプリケーションの名前を入力します。ログを記録するのに非常に便利であるため、すべての DSN でこのフィールドを Virtual DataPort に設定することをお勧めします。
インフラストラクチャ に関するフィールドには、プロバイダーやリージョンなど、クラウドインフラストラクチャに関する情報を入力することができます。クラウドインフラストラクチャの構成の詳細については、「 クラウドインフラストラクチャのプロパティの設定 」のセクションを参照してください。
[Use Kerberos] を選択して Kerberos 認証を有効にします。
通常、[Krbsrvname] はデフォルト値で問題ありません。Kerberos 認証を有効にした場合、この値はサーバーのサービスプリンシパル名の「サービスクラス」と一致している必要があります。たとえば、サーバーの Kerberos 設定の [Server Principal] フィールドの値が
HTTP/denodo1.contoso.com@CONTOSO.COMの場合、[Krbsrvname] の値はHTTPである必要があります。
![]()
Denodo ODBC ドライバー: 詳細構成 (3 ページ)¶
ユーザーとパスワードではなく、OAuth 認証を使用してコネクションを確立するには、[Enable OAuth 2.0 authentication] を選択し、使用する OAuth 認証フローに応じて以下のパラメータ値のいくつかを指定する必要があります。
パラメータ |
意味 |
|---|---|
Token Endpoint |
OAuth サーバーによって公開される URL。access_token をリクエストするために使用されます。例: |
Authorization Endpoint |
OAuth サーバーによって公開される URL。認可コードのリクエストで使用します。たとえば、 |
Client ID |
アプリケーションのクライアント ID。通常はクライアントアプリケーションを ID プロバイダーに登録するときに取得します。 |
Client Secret |
アプリケーションのクライアントシークレット |
スコープ |
リクエストされるスコープのアクセス許可のスペースで区切られたリスト。 |
その他のパラメータ |
ドライバーが OAuth トークンを取得するために送信する HTTP リクエストの本文に追加されるパラメータ。このパラメータの値の構文は |
Access token |
Virtual DataPort サーバーとのコネクションで使用するアクセストークン。 |
Refresh token |
提供されたアクセストークンの有効期限が終了している場合は、トークンを更新して新しいアクセストークンを取得します。 |
Credentials cache |
ID プロバイダーへの不要なリクエストを回避するために、トークンを保存しておくファイルへのファイルパス。 |
Use id_token |
チェックされている場合、ドライバーは「id_token」を使用して認証を行います。チェックされていない場合は「access_token」を使用します。「OpenID Connect」を使用する環境では、このチェックボックスをチェックします。 |
Check certificates |
チェックされている場合 (推奨)、ドライバーは ID プロバイダーの SSL 証明書を検証します。チェックされていない場合は検証しません。 |
現在のところ、ODBC ドライバーは、以下に挙げる 3 種類の OAuth 認証フローをサポートしていますが、それぞれで異なるパラメータを設定する必要があります。実際のシナリオに応じて適切なパラメータを選択して設定します。
リソース所有者資格情報フロー (ROPC)。クライアントアプリケーションがコネクションを開くとき、ドライバーが ID プロバイダーに対して OAuth トークンをリクエストし、そのトークンを使ってコネクションを確立します。
User と Password
Token Endpoint.
Client ID.
Client Secret.
スコープ
その他のパラメータ (オプション)。
Use id_token.
Check certificates.
更新トークンフロー。ドライバーは、提供されたアクセストークンを使用してコネクションを確立します。そのトークンの有効期限が終了している場合は、更新トークンを使用して ID プロバイダーに新しい OAuth トークンがリクエストされます。
Token Endpoint.
Client ID.
Client Secret.
スコープ
その他のパラメータ (オプション)。
Access token
Refresh token
Credentials cache (オプション)
Use id_token.
Check certificates.
認可コードフロー。ドライバーは、Web ブラウザーを使用して ID プロバイダーにアクセストークンをリクエストします。クライアントアプリケーションで何らかのコネクションプールを実装している場合は、Web ブラウザーで不要なタブが開かないように、資格情報キャッシュファイルの設定を強くお勧めします。
Authorization Endpoint
Token Endpoint.
Client ID.
Client Secret.
スコープ
その他のパラメータ (オプション)。
Credentials cache (オプション)
Use id_token.
Check certificates.
OAuth を使用して Virtual DataPort に接続する前に、 Virtual DataPort で OAuth を有効にする 必要があります。有効にしなかった場合、OAuth を使用したコネクションは失敗します。
[OK] をクリックして [Advanced Options] ダイアログを開きます。
[Test] をクリックして Virtual DataPort へのコネクションをテストします。
[OK] をクリックします。
DSN が構成され、使用する準備ができました。
DSN をセットアップしたら、「 サードパーティアプリケーションとの統合 」を参照することをお勧めします。
DSN の作成中にエラーが発生した場合は、管理権限を持つアカウントを使用してログインしてください。
Windows への複数バージョンの ODBC ドライバーのインストール¶
現在のところ、DenodoODBC .msi インストーラーでは、同じ Windows マシンに複数バージョンの DenodoODBC ODBC ドライバーをインストールすることはできません。ただし、Windows 用 DenodoODBC ODBC ドライバーには、 denodo-vdp-odbcdriver-windows.zip\scripts\ に一連のスクリプトが同梱されており、複数バージョンの同時使用が可能です。使い方については、同じ場所にある README を参照してください。
