Google Cloud Storage のデータをR で分析:JDBC での接続

CData JDBC Driver で標準的なR 関数とお好みの開発環境を使ってGoogle Cloud Storage を分析。

加藤龍彦
デジタルマーケティング

最終更新日:2023-09-21

この記事で実現できるGoogle Cloud Storage 連携のシナリオ

こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。

CData JDBC Driver for GoogleCloudStorage とRJDBC package を使って、R でリモートGoogle Cloud Storage データ を利用できます。CData Driver を使うことで、業界が認めた基準で書かれたドライバーを活用して、オープンソースでポピュラーなR 言語のデータにアクセスできます。この記事では、ドライバーを使ってGoogle Cloud Storage にSQL クエリを実行する方法、および標準R 関数を呼び出してGoogle Cloud Storage をビジュアライズする方法について説明します。

R をインストール

マルチスレッドのMicrosoft R Open を実行すること、またはBLAS/LAPACK ライブラリにリンクされたオープン R を実行することによって、マルチスレッドおよびマネージドコードから利益を得られたドライバーのパフォーマンスにマッチできます。ここでは、Microsoft R Open 3.2.3 を使用します。CRAN レポジトリのJan. 1, 2016 snapshot からパッケージをインストールするために事前設定されています。このsnapshot は再現性を保証します。

RJDBC パッケージをロード

ドライバーを使うにはRJDBC パッケージをダウンロードします。RJDBC パッケージをインストールしたら、次のコードを入力してパッケージをロードします。

library(RJDBC)

JDBC データソースとしてGoogle Cloud Storage に接続

下記の情報を使いGoogle Cloud Storage にJDBC データソースとして接続します。

  • Driver Class:cdata.jdbc.googlecloudstorage.GoogleCloudStorageDriver に設定。
  • Classpath:Driver JAR の場所を設定します。デフォルトではインストールディレクトリの[lib]サブフォルダです。

dbConnect やdbSendQuery のようなDBI 関数は、R にデータアクセスコードを書くための統一インターフェースを提供します。

driver <- JDBC(driverClass = "cdata.jdbc.googlecloudstorage.GoogleCloudStorageDriver", classPath = "MyInstallationDir\lib\cdata.jdbc.googlecloudstorage.jar", identifier.quote = "'")

これで、DBI 関数を使ってGoogle Cloud Storage に接続しSQL クエリを実行する準備が整いました。dbConnect 関数を使ってJDBC 接続を初期化します。一般的なJDBC 接続文字列は次のとおりです。

conn <- dbConnect(driver,"ProjectId='project1';")

ユーザーアカウントでの認証

ユーザー資格情報の接続プロパティを設定することなく接続できます。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 フローが完了します。

スキーマ Discovery

ドライバーはGoogle Cloud Storage API をリレーショナルデータベース、ビュー、ストアドプロシージャとしてモデルします。次のコードを使ってテーブルリストを検出します。

dbListTables(conn)

SQL クエリの実行

dbGetQuery 関数を使ってGoogle Cloud Storage API がサポートするすべてのSQL クエリを実行できます:

buckets <- dbGetQuery(conn,"SELECT Name, OwnerId FROM Buckets WHERE Name = 'TestBucket'")

次のコマンドを使って、結果を[data viewer]ウィンドウで見ることができます。

View(buckets)

Google Cloud Storage データ をプロット

CRAN レポジトリで利用可能なあらゆるデータ初期化パッケージを使ってGoogle Cloud Storage を分析する準備が整いました。ビルトインバーのplot 関数を使って簡単なバーを作成できます。

par(las=2,ps=10,mar=c(5,15,4,2)) barplot(buckets$OwnerId, main="Google Cloud Storage Buckets", names.arg = buckets$Name, horiz=TRUE) A basic bar plot. (Salesforce is shown.)

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。