各製品の資料を入手。
詳細はこちら →CData
こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。
CData ODBC Driver for AmazonAthena を使って、ODBC 標準をサポートするあらゆるアプリケーションからデータに連携できます。Oracle Database Gateway for ODBC は、ODBC データソースにリモートOracle データベースとして連携接続できるようにするHeterogeneous Services agent (異種サービスエージェント)です。この記事では、CData ODBC Driver for AmazonAthena を使ってAmazon Athena からOracle にデータベースリンクを作成する方法、およびSQL*Plus ツールを介してAmazon Athena に連携してクエリする方法について説明します。SQL Developer からも、データベースリンクの作成およびクエリの実行ができます。
CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。
CData ODBC ドライバでは、1.データソースとしてAmazon Athena の接続を設定、2.Oracle Database 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。
まずは、本記事右側のサイドバーからAmazonAthena ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。
ドライバーには複数の接続プロパティがあり、Oracle データベースと同じようにAmazon Athena にアクセスできます。SQL*Plus およびSQL Developer のAmazon Athena を扱う場合は、以下のプロパティを設定します。Oracle ODBC Gateway との互換性のため、認証およびその他の必要な接続プロパティに加えて、以下の接続プロパティを設定する必要があります。
MapToWVarchar=False
このプロパティをSQL_WVARCHAR の代わりにSQL_VARCHAR に設定して文字列データ型をマップします。さまざまなインターナショナルキャラクタセットに対応するため、ドライバーはデフォルトでSQL_WVARCHAR を使います。unicode タイプが返されたときに、このプロパティを使ってORA-28528 Heterogeneous Services データタイプ変換エラーを防ぐことができます。
MaximumColumnSize=4000
このプロパティを設定して、カラムの最大サイズを4000文字に制限します。Oracle Database Gateway では、文字列型はカラムの最大サイズが4000である必要があります。
UpperCaseIdentifiers=True
このプロパティで、識別子を引用しないようにし設定します。このプロパティを使って、大文字の識別子をOracle にレポートします。Oracle はデフォルトで識別子を大文字で格納するため、大文字の識別子を引用から避ける必要はありません。
IncludeDualTable=True
このプロパティを設定して、Oracle DUAL 表をモックします。SQL Developer はこのテーブルを使って接続をテストします。
下記の手順に従ってODBC Gateway をAmazon Athena データ に作成すると、リアルタイムAmazon Athena にOracle データベースとしてクエリすることが可能になります。
Amazon Athena リクエストの認証には、アカウントの管理のクレデンシャルか、IAM ユーザーのカスタムPermission を設定します。 AccessKey にAccess Key Id、SecretKey にはSecret Access Key を設定します。
AWS アカウントアドミニストレータとしてアクセスできる場合でも、AWS サービスへの接続にはIAM ユーザークレデンシャルを使用することが推奨されます。
IAM ユーザーのクレデンシャル取得は以下のとおり:
AWS ルートアカウントのクレデンシャル取得は以下のとおり:
EC2 インスタンスからCData 製品を使用していて、そのインスタンスにIAM ロールが割り当てられている場合は、認証にIAM ロールを使用できます。 これを行うには、UseEC2Roles をtrue に設定しAccessKey とSecretKey を空のままにします。 CData 製品は自動的にIAM ロールの認証情報を取得し、それらを使って認証します。
多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。 代わりにRoleARN を指定してAWS ロールを使用できます。これにより、CData 製品は指定されたロールの資格情報を取得しようと試みます。 (すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、役割を担うIAM ユーザーのAccessKeyと SecretKey を追加で指定する必要があります。AWS ルートユーザーのAccessKey およびSecretKey を指定する場合、 ロールは使用できません。
多要素認証を必要とするユーザーおよびロールには、MFASerialNumber およびMFAToken 接続プロパティを指定してください。 これにより、CData 製品は一時的な認証資格情報を取得するために、リクエストでMFA 認証情報を送信します。一時的な認証情報の有効期間 (デフォルトは3600秒)は、TemporaryTokenDuration プロパティを介して制御できます。
AccessKey とSecretKey プロパティに加え、Database、S3StagingDirectory、Region を設定します。Region をAmazon Athena データがホストされているリージョンに設定します。S3StagingDirectory をクエリの結果を格納したいS3内のフォルダに設定します。
接続にDatabase が設定されていない場合は、CData 製品はAmazon Athena に設定されているデフォルトデータベースに接続します。
Microsoft ODBC データソースアドミニストレーターで必要なプロパティを設定する方法は、ヘルプドキュメントの「はじめに」をご参照ください。
oracle-home-directory\hs\admin フォルダにinitmyathenadb.ora ファイルを作成し、以下の設定を追加します:
HS_FDS_CONNECT_INFO = "Your-AmazonAthena-DSN"
oracle-home-directory\NETWORK\admin にあるlistener.ora ファイルに、次のアドレスを追加します:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = myathenadb)
(ORACLE_HOME = your-oracle-home)
(PROGRAM = dg4odbc)
)
)
oracle-home-directory\NETWORK\admin にあるtnsnames.ora ファイルに、次の接続ディスクリプタを追加します:
myathenadb =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(CONNECT_DATA=(SID=myathenadb))
(HS=OK)
)
次のコマンドを使って設定をテストします:
tnsping myathenadb
SQL*Plus を起動し、次のコマンドでデータベースリンクを作成します:
CREATE DATABASE LINK MYATHENADB CONNECT TO "user" IDENTIFIED BY "password" USING
'myathenadb';
これで、SQL*Plus で次のようなクエリを実行できます:
SELECT * from Customers@myathenadb;
このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。
CData ODBC ドライバは日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。