2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DatasetUtilsを使ってTableau CRMのデータセットをCSVから同期する方法

Posted at

今回はバッチでTableau CRMのデータセットを操作できるツールをご紹介します!

##Tableau CRM
SalesforceのBI/AIツールである、Tableau CRMはそれ自体が高速なデータベースを持っており、
その上で動作するBIと誰でも使えるAIがあります。

それだけでなく様々なWebサービスへのコネクタや、Prepやデータフローといったデータを加工するツールも付いているので、分析に必要な環境がクラウド上に一通り揃う便利ツールです。

Tableau CRMの不満点

ただ、自分が最初Tableau CRMを使っていてすごく不便に感じたのが
__「オンプレデータとの自動連携方法がない」__点でした。
ローカルDBからCSVファイルにExportしてきて、それをTableau CRMに入れようとすると、手動でのアップデートが必要となり、バッチでの自動連携ができないんですよね。

image.png

###オンプレデータとの連携のために

オンプレミスデータとの連携のためには下記選択がよく選ばれます。

  • ETLツールを使う
  • 外部データAPIを使う

ETLツールに関してはDataSpider CloudやTalendなどを使って自動化することができます。
今回は外部データAPIに関して掘り下げてみたいと思います。

外部データAPIって?

Analytics 外部データ 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をクリックします。
image.png

DatasetUtilsのバージョンとダウンロードできる一覧が表示されます。
今回はMacOS上でGuiモードとコマンドモードを試してみたいと思いますので下記の2つをダウンロードしました。

  • DatasetUtils.dmg
  • datasetutils-48.1.0.jar

image.png

####Javaのバージョン確認
実行に際して対応するJavaのバージョンを確認してください。
もし対応していない場合は、新しいバージョンをインストールして使えるようにします。
image.png

###DatasetUtils Guiモードでの実行
DatasetUtils.dmgを使ってアプリケーションを実行することができます。
DatasetUtils.dmgをダブルクリックして、DatasetUtils.appをアプリケーションに入れておきます。
image.png

image.png

####DatasetUtils.appの実行
実行するとブラウザ上からアプリケーションが立ち上がりますので認証情報を入力します。
image.png

####データセット一覧
ログイン後データセットの一覧が表示されます。
image.png

それぞれのデータセット名をクリックするとSAQLを実行できたりCSVファイルダウンロード!出来たりします。
image.png

####File Upload
今回は手元のCSVファイルをアップロードしてみたいと思います。
「File Upload」を選択して
image.png

データセット名や保存するアプリケーション名、オペレーション(Overwrite,Append,Upsert,Delete)、CSVファイル名を指定します。
image.png

これでUpload CSVをクリックすると処理が走り
image.png

データセットが作成されたことが確認できたのでAnalytics Studioから確認してみました。問題なく実行されたようです。
image.png

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

####実行後の確認
コマンドプロンプトからメッセージが表示され、無事に実行完了しました。
image.png

Analytics Studioからもデータセットを確認できます。
image.png

##まとめ
今回はCSVファイルをTableau CRMに自動連携できるツールをご紹介しました。
DatasetUtilsを使用する事でコネクタがないデータソースもどんどん連携できます!
データセットにしてしまえば、あとはTCRM上で加工、分析ができますので、こちらのツールを使ってデータの利活用、データを利用した意思決定を行える組織作りを目指してみてください!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?