Salesforce Data Cloud のデータをR で分析:JDBC での接続

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

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

最終更新日:2023-09-21

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

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

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

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 データソースとしてSalesforce Data Cloud に接続

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

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

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

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

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

conn <- dbConnect(driver,"")

Salesforce Data Cloud は、OAuth 標準による認証をサポートしています。

OAuth

AuthSchemeOAuth に設定します。

デスクトップアプリケーション

CData は、デスクトップでの認証を簡略化する埋め込みOAuth アプリケーションを提供します。

また、Salesforce Data Cloud コンソールで設定および登録するカスタムOAuth アプリケーションを介してデスクトップから認証することもできます。詳しくは、ヘルプドキュメントカスタムOAuth アプリの作成を参照してください。

接続する前に、次のプロパティを設定します。

  • InitiateOAuthGETANDREFRESHInitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • OAuthClientId (カスタムアプリケーションのみ):カスタムOAuth アプリケーションの登録時に割り当てられたクライアントID。
  • OAuthClientSecret (カスタムアプリケーションのみ):カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。

接続すると、本製品 はデフォルトブラウザでSalesforce Data Cloud のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。

以下のようにドライバーがOAuth プロセスを完了します。

  • コールバックURL からアクセストークンを取得します。
  • 古いトークンの期限が切れたときは、新しいアクセストークンを取得します。
  • OAuthSettingsLocation にOAuth 値を保存し、接続間で永続化します。
  • Web アプリケーションやヘッドレスマシンを含むその他のOAuth メソッドについては、ヘルプドキュメントを参照してください。

    スキーマ Discovery

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

    dbListTables(conn)

    SQL クエリの実行

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

    account <- dbGetQuery(conn,"SELECT [Account ID], [Account Name] FROM Account WHERE EmployeeCount > 250")

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

    View(account)

    Salesforce Data Cloud データ をプロット

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

    par(las=2,ps=10,mar=c(5,15,4,2)) barplot(account$[Account Name], main="Salesforce Data Cloud Account", names.arg = account$[Account ID], horiz=TRUE) A basic bar plot. (Salesforce is shown.)

関連コンテンツ

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

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