今回はバッチでTableau CRMのデータセットを操作できるツールをご紹介します!
##Tableau CRM
SalesforceのBI/AIツールである、Tableau CRMはそれ自体が高速なデータベースを持っており、
その上で動作するBIと誰でも使えるAIがあります。
それだけでなく様々なWebサービスへのコネクタや、Prepやデータフローといったデータを加工するツールも付いているので、分析に必要な環境がクラウド上に一通り揃う便利ツールです。
Tableau CRMの不満点
ただ、自分が最初Tableau CRMを使っていてすごく不便に感じたのが
__「オンプレデータとの自動連携方法がない」__点でした。
ローカルDBからCSVファイルにExportしてきて、それをTableau CRMに入れようとすると、手動でのアップデートが必要となり、バッチでの自動連携ができないんですよね。
###オンプレデータとの連携のために
オンプレミスデータとの連携のためには下記選択がよく選ばれます。
- ETLツールを使う
- 外部データAPIを使う
ETLツールに関してはDataSpider CloudやTalendなどを使って自動化することができます。
今回は外部データAPIに関して掘り下げてみたいと思います。
外部データAPIって?
こちらの開発者ガイドでは外部データAPIを使う上での制限やサンプルコードなどを入手できます。
__外部データAPIを使うことでTableau CRMのデータセットをAPI経由で作成、更新、追加、削除などデータセットの操作を自動化することが可能__です。
ただ、こちらはAPIですので、当然ながらAPIをコールする処理を記載する必要があります。
認証含め、それなりのコード量になります。
DatasetUtils
今回ご紹介するのは、コーディングをすることなく、バッチ処理化する方法です。
DatasetUtilsというツールを使用します。
__DatasetUtilsは外部データAPIをコーディングすることなく使用できる実行可能なプログラム__で、
環境もJavaを使えればOKなので、敷居がすごく低いのがメリットです。
ただし、Salesforceオフィシャルなツールではないので未サポートです。
ご利用はご自分の責任範囲でお願いします。
DatasetUtilsは、Einstein Analytics External Data APIのリファレンス実装です。このツールは無料で使用できますが、Salesforceの公式サポートは受けられません。これはコミュニティプロジェクトであり、正式なテストや文書化は行われていません。本アプリケーションをご利用の際は、Salesforceへのサポート依頼はご遠慮ください
###入手とダウンロード
DatasetUtilsのDownloading DatasetUtilsのrelasesをクリックします。
DatasetUtilsのバージョンとダウンロードできる一覧が表示されます。
今回はMacOS上でGuiモードとコマンドモードを試してみたいと思いますので下記の2つをダウンロードしました。
- DatasetUtils.dmg
- datasetutils-48.1.0.jar
####Javaのバージョン確認
実行に際して対応するJavaのバージョンを確認してください。
もし対応していない場合は、新しいバージョンをインストールして使えるようにします。
###DatasetUtils Guiモードでの実行
DatasetUtils.dmgを使ってアプリケーションを実行することができます。
DatasetUtils.dmgをダブルクリックして、DatasetUtils.appをアプリケーションに入れておきます。
####DatasetUtils.appの実行
実行するとブラウザ上からアプリケーションが立ち上がりますので認証情報を入力します。
####データセット一覧
ログイン後データセットの一覧が表示されます。
それぞれのデータセット名をクリックするとSAQLを実行できたりCSVファイルダウンロード!出来たりします。
####File Upload
今回は手元のCSVファイルをアップロードしてみたいと思います。
「File Upload」を選択して
データセット名や保存するアプリケーション名、オペレーション(Overwrite,Append,Upsert,Delete)、CSVファイル名を指定します。
データセットが作成されたことが確認できたのでAnalytics Studioから確認してみました。問題なく実行されたようです。
GUIモードでの実行ですが、基本的にはAnalytics Studioでできることと同じです。ただ、こちらは外部データAPIを元に作成されているアプリケーションですので、外部データAPIを使うとどのような事が出来るのか、おおよそ理解出来るかと思います。
###コマンドモード
次は本筋のコマンドモードでの実行です。
ダウンロードしたdatasetutils-xx.x.x.jarをご準備ください。
ターミナルを開いて以下のコマンドで実行可能です。
java -jar datasetutil-.jar --action --u user@domain.com --dataset datasetnama --app appname --inputFile inputFilename --endpoint endPointname
###パラメータの設定
action:"load"、"downloadxmd"、"uploadxmd"、"detectEncoding"、"downloadErrorFile"のいずれか
- load: CSVロード
- downloadxmd: XMDファイルのダウンロード
- uploadxmd: user.xmd.jsonのアップロード
- detectEncoding:Inputファイルのエンコーディング検出
- downloadErrorFile: CSVアップロード時のエラーファイルのダウンロード
--u : SalesforceのログインユーザーID
--p : (オプション) Salesforceのパスワード、省略時はプロンプト入力
--token : (オプション) Salesforceのトークン
--endpoint: (オプション)Salesforceのsoap api エンドポイント (test/prod) デフォルトは: https://login.salesforce.com
--dataset : (オプション) データセットAPI名、アクションがLoadの時は必須
--datasetLabel : (オプション) データセット表示名
--app : (オプション) データセットを作成するアプリケーション名
--operation : (オプション) Load時のオペレーション (Overwrite/Upsert/Append/Delete) デフォルトはOverwrite
--inputFile : (オプション) インプットCSVファイル、Load時は必須
--rootObject: (オプション) 抽出のルートSObject
--rowLimit: (オプション) 抽出時の行制限, -1=all, default=1000
--sessionId : (オプション) SalesforceのsessionId
--fileEncoding : (オプション) インプットファイルのエンコーディング、規定はUTF-8
###実行コマンドサンプル
Production領域にファイルをアップロードする
java -jar datasetutils-48.1.0.jar --action load --u pgupta@force.com --p @#@#@# --inputFile Opportunity.csv --dataset puntest
データセットにファイルを追加する。
java -jar datasetutils-48.1.0.jar --action load --operation append --u pgupta@force.com --p @#@#@# --inputFile Opportunity.csv --dataset puntest
Sandboxにデータをロードする
java -jar datasetutils-48.1.0.jar --action load --u pgupta@force.com --p @#@#@# --inputFile Opportunity.csv --dataset puntest --endpoint https://test.salesforce.com/services/Soap/u/48.0
####実行後の確認
コマンドプロンプトからメッセージが表示され、無事に実行完了しました。
Analytics Studioからもデータセットを確認できます。
##まとめ
今回はCSVファイルをTableau CRMに自動連携できるツールをご紹介しました。
DatasetUtilsを使用する事でコネクタがないデータソースもどんどん連携できます!
データセットにしてしまえば、あとはTCRM上で加工、分析ができますので、こちらのツールを使ってデータの利活用、データを利用した意思決定を行える組織作りを目指してみてください!