JRuby からAmazon Athena にデータ連携
JRuby はRuby プログラミング言語の高性能で安定した、完全にスレッド化されたJava 実装です。CData JDBC Driver for AmazonAthena を使用すると、JRuby からリアルタイムAmazon Athena へのデータ連携を簡単に実装できます。ここでは、Amazon Athena に接続し、クエリを実行して結果を表示する簡単なJRuby アプリを作成する方法を説明します。
Amazon Athena のデータにJDBC で接続
アプリを作成する前に、JDBC Driver のJAR ファイルのインストール場所をメモします。 (通常はC:\Program Files\CDatat\CData JDBC Driver for AmazonAthena\libにあります。)
JRuby は、JDBC をネイティブにサポートしているため、簡単にAmazon Athena に接続してSQL クエリを実行できます。java.sql.DriverManager クラスのgetConnection 関数を使用してJDBC 接続を初期化します。
Amazon Athena 接続プロパティの取得・設定方法
それでは、早速Athena に接続していきましょう。
データに接続するには、以下の接続パラメータを指定します。
- DataSource:接続するAmazon Athena データソース。
- Database:接続するAmazon Athena データベース。
- AWSRegion:Amazon Athena データがホストされているリージョン。
- S3StagingDirectory:クエリの結果を保存するS3 フォルダ。
Database またはDataSource が設定されていない場合、CData 製品はAmazon Athena の利用可能なデータソースからすべてのデータベースのリスト化を試みます。そのため、両方のプロパティを設定することでCData 製品のパフォーマンスが向上します。
Amazon Athena の認証設定
CData 製品は幅広い認証オプションに対応しています。詳しくはヘルプドキュメントの「はじめに」を参照してみてください。
AWS キーを取得
IAM ユーザーの認証情報を取得するには、以下のステップお試しください。
- IAM コンソールにサインインします。
- ナビゲーションペインでユーザーを選択します。
- ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してからセキュリティ認証情報タブに移動します。
AWS ルートアカウントの資格情報を取得するには、以下のステップをお試しください。
- ルートアカウントの認証情報を使用してAWS 管理コンソールにサインインします。
- アカウント名または番号を選択します。
- 表示されたメニューでMy Security Credentials を選択します。
- ルートアカウントのアクセスキーを管理または作成するには、Continue to Security Credentials をクリックし、[Access Keys]セクションを展開します。
その他の認証オプションについては、ヘルプドキュメントの「Amazon Athena への認証」を参照してください。
ビルトイン接続文字列デザイナー
JDBC URL の構成については、Amazon Athena JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.amazonathena.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
以下はAmazon Athena の一般的なJDBC 接続文字列です。
jdbc:amazonathena:AccessKey='a123';SecretKey='s123';Region='IRELAND';Database='sampledb';S3StagingDirectory='s3://bucket/staging/';
Amazon Athena のデータへの接続性を持つJRuby アプリを作成
新しいRuby ファイル(例: AmazonAthenaSelect.rb) を作成してテキストエディタで開き、次のコードをファイルにコピーします。
require 'java'
require 'rubygems'
require 'C:/Program Files/CData/CData JDBC Driver for AmazonAthena 2018/lib/cdata.jdbc.amazonathena.jar'
url = "jdbc:amazonathena:AccessKey='a123';SecretKey='s123';Region='IRELAND';Database='sampledb';S3StagingDirectory='s3://bucket/staging/';"
conn = java.sql.DriverManager.getConnection(url)
stmt = conn.createStatement
rs = stmt.executeQuery("SELECT Name, TotalDue FROM Customers")
while (rs.next) do
puts rs.getString(1) + ' ' + rs.getString(2)
end
ファイルが完成したら、コマンドラインからファイルを実行するだけでJRuby でAmazon Athena を表示できるようになります。
jruby -S AmazonAthenaSelect.rb
SQL-92 クエリをAmazon Athena に書き込むと、Amazon Athena を独自のJRuby アプリケーションに素早く簡単に組み込むことができます。今すぐ無料トライアルをダウンロードしましょう。