Ruby でODBC 経由でGoogle Cloud Storage に接続して、モダンなクラウド連携アプリを開発。
CData ODBC Driver for Google Cloud Storage を使うと、簡単にRuby アプリケーションにリアルタイムGoogle Cloud Storage データを連携・統合できます。 Tこの記事では、Google Cloud Storage] データにリアルタイムに連携するRuby アプリケーションを構築して、クエリを実行し、結果を表示してみます。
Google Cloud Storage データのODBC 接続を設定
通常はCData ODBC Driver のインストール後にODBC DSN 接続ウィザードが立ち上がり、設定を行うことができます。 もしODBC DSN 接続が未済の場合には、Microsoft ODBC データソースアドミニストレータでODBC DSN を作成および設定することができます。
ユーザーアカウントでの認証
ユーザー資格情報の接続プロパティを設定することなく接続できます。InitiateOAuth をGETANDREFRESH に設定したら、接続の準備が完了です。
接続すると、Google Cloud Storage OAuth エンドポイントがデフォルトブラウザで開きます。ログインして権限を付与すると、OAuth プロセスが完了します。
サービスアカウントでの認証
サービスアカウントには、ブラウザでユーザー認証を行わないサイレント認証があります。サービスアカウントを使用して、企業全体のアクセススコープを委任することもできます。
このフローでは、OAuth アプリケーションを作成する必要があります。詳しくは、ヘルプドキュメントを参照してください。以下の接続プロパティを設定したら、接続の準備が完了です:
- InitiateOAuth: GETANDREFRESH に設定。
- OAuthJWTCertType: PFXFILE に設定。
- OAuthJWTCert: 生成した.p12 ファイルへのパスに設定。
- OAuthJWTCertPassword: .p12 ファイルのパスワードに設定。
- OAuthJWTCertSubject: 証明書ストアの最初の証明書が選ばれるように"*" に設定。
- OAuthJWTIssuer: [サービスアカウント]セクションで[サービスアカウントの管理]をクリックし、このフィールドをサービスアカウントID フィールドに表示されているE メールアドレスに設定。
- OAuthJWTSubject: サブジェクトタイプが"enterprise" に設定されている場合はエンタープライズID に設定し、"user" に設定されている場合はアプリユーザーID に設定。
- ProjectId: 接続するプロジェクトのID に設定。
これで、サービスアカウントのOAuth フローが完了します。
Ruby および必要なGem のインストール
If you do not have Ruby installed, refer to the Ruby インストールページ. Ruby をインストールしたら、次にruby-dbi、dbd-odbc、ruby-odbc gems をインストールします:
gem install dbi
gem install dbd-odbc
gem install ruby-odbc
Google Cloud Storage データに連携するRuby アプリケーションの作成
Ruby ファイル (例: GoogleCloudStorageSelect.rb) を作成し、テキストエディタで開きます。ファイルに次のコードをコピーします:
#connect to the DSN
require 'DBI'
cnxn = DBI.connect('DBI:ODBC:CData GoogleCloudStorage Source','','')
#execute a SELECT query and store the result set
resultSet = cnxn.execute("SELECT Name, OwnerId FROM Buckets WHERE Name = 'TestBucket'")
#display the names of the columns
resultSet.column_names.each do |name|
print name, "\t"
end
puts
#display the results
while row = resultSet.fetch do
(0..resultSet.column_names.size - 1).each do |n|
print row[n], "\t"
end
puts
end
resultSet.finish
#close the connection
cnxn.disconnect if cnxn
これで、Ruby で Google Cloud Storage データが接続できるようになります。簡単にコマンドラインからファイルを叩いて接続を確認してみましょう。:
ruby GoogleCloudStorageSelect.rb
Google Cloud Storage へのSQL-92 企画のSQL を使って、Ruby に簡単にGoogle Cloud Storage を連携できます。是非、トライアルで試してみてください。