ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →Amazon Athena Driver の30日間無償トライアルをダウンロード
30日間の無償トライアルへCData
こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。
Adobe ColdFusion は、Web アプリケーションおよびモバイルアプリケーション開発プラットフォームです。独自のスクリプト言語であるColdFusion Markup Language(CFML)を使用し、データドリブンなWeb サイトを作成したり、REST などのリモートサービスを生成したりすることができます。
ColdFusion とCData JDBC Driver for AmazonAthena を組み合わせると、ColdFusion のWeb アプリケーションやモバイルアプリケーションを、運用中のAmazon Athena データにリンクできます。 これにより、アプリケーションの堅牢性と完成度を高めることができます。この記事では、JDBC ドライバーを使ってColdFusion マークアップファイルからAmazon Athena のデータを入力したテーブルを作成する方法について詳しく説明します。
最適化されたデータ処理が組み込まれたCData JDBC ドライバは、リアルタイムAmazon Athena データを扱う上で高いパフォーマンスを提供します。 Amazon Athena にSQL クエリを発行すると、CData ドライバーはフィルタや集計などのAmazon Athena 側でサポートしているSQL 操作をAmazon Athena に直接渡し、サポートされていない操作(主にSQL 関数とJOIN 操作)は組み込みSQL エンジンを利用してクライアント側で処理します。 組み込みの動的メタデータクエリを使用すると、ネイティブのデータ型を使ってAmazon Athena データを操作および分析できます。
Coldfusion とAmazon Athena の接続を確立するには、JDBC 接続文字列が必要です。
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 に設定されているデフォルトデータベースに接続します。
JDBC URL の作成の補助として、Amazon Athena JDBC Driver に組み込まれている接続文字列デザイナーが使用できます。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。
java -jar cdata.jdbc.amazonathena.jar
接続を設定したのち、次の手順に従ってはじめにCData JDBC ドライバをColdFusion のlib ディレクトリに追加し、続けて新しいデータソースを追加、接続をテスト、ColdFusion マークアップファイルを作成し、最後にAmazon Athena データとリアルタイム接続してColdFusion Markup Language(CFML)で記述されるテーブルに表示します。
cdata.jdbc.amazonathena.jar
cdata.jdbc.amazonathena.lic
Note:.lic ファイルをjar ファイルとともにコピーしないと、有効なライセンスがインストールされていないことを示すライセンスエラーが表示されます。 これは評価版、製品版ともに同様です。
jdbc:amazonathena:AccessKey='a123';SecretKey='s123';Region='IRELAND';Database='sampledb';S3StagingDirectory='s3://bucket/staging/';
次のコードは、データソースにクエリを実行します。
<cfquery name="Amazon AthenaQuery" dataSource="CDataAmazon AthenaJDBC"> SELECT * FROM Customers </cfquery>CFTable を使用すると、HTML で素早くテーブルを出力できます。
<cftable query = "Amazon AthenaQuery" border = "1" colHeaders colSpacing = "2" headerLines = "2" HTMLTable maxRows = "500" startRow = "1"> <cfcol header="<b>Name</b>" align="Left" width=2 text="Name"/> <cfcol header="<b>TotalDue</b>" align="Left" width=15 text="TotalDue"/> ... </cftable>HTML 部分を含むコード全体を以下に掲載します。
<html> <head><title>CData Software | Amazon Athena Customers Table Demo </title></head> <body> <cfoutput>#ucase("Amazon Athena Customers Table Demo")#</cfoutput> <cfquery name="Amazon AthenaQuery" dataSource="CDataAmazon AthenaJDBC"> SELECT * FROM Customers </cfquery> <cftable query = "Amazon AthenaQuery" border = "1" colHeaders colSpacing = "2" headerLines = "2" HTMLTable maxRows = "500" startRow = "1"> <cfcol header="<b>Name</b>" align="Left" width=2 text="Name"/> <cfcol header="<b>TotalDue</b>" align="Left" width=15 text="TotalDue"/> ... </cftable> </body> </html>
なお、CData JDBC ドライバはcfqueryparam 要素を使用したパラメータ化クエリもサポートしています。
次に例を示します。
SELECT * FROM Account WHERE name =
CData JDBC Driver for AmazonAthena の 30日間無償トライアル をダウンロードして、Adobe ColdFusion でAmazon Athena と連携したアプリケーションの作成をはじめましょう!ご不明な点があれば、サポートチームにお問い合わせください。