Memos About Salesforce

Salesforceにハマってたこと!

Einstein Analyticsの外部APIでの連携について

こんにちは、管理人の@Salesforce.Zです。

Einstein Analyticsの外部連携について

SalesforceのBIであるEinstein Analyticsを使って見た〜

今回、やって見たところの外部データ API を使用する部分について

共有しまーす!

目次

使用した連携ツールについて

名はData Spiderです。

株式会社テラスカイの製品である連携ツール。

使用方法:少し操作すれば、すぐ使える。

メイン機能:Talendのような感覚

データ/ファイルの変換・連携・データ投入など

詳細は製品のユースケースご参考

連携手順

*外部データ API は、API バージョン 31 以降で使用できます。

 

f:id:jude2016:20190410154513j:plain
Dataspider

外部データの取り込みはAPIを利用して以下の手順で行います。

1:データファイルの準備

2:連携

3:API経由でファイルをアップロード

4:システムジョブを作成して実行

5:ファイルのアップロードの結果を確認

上のように手順をもとにSkyOnDemandにて外部データを Einstien Analytics へ連携してみようと思います。

データファイルの準備

外部ファイルをデータセットに読み込むには、2 つのファイルを準備する必要があります。

・外部データがカンマ区切り値 (CSV) 形式で含まれているデータファイル

 ヘッダーありのCSVファイルを準備するイメージと思ってください!(データであるファイル)

・データファイルの構造が記述されているメタデータの .json ファイル (省略可能)

 上記のCSVファイルのデータの構造を決めるファイルである(データ構造定義ファイル)

CSVの例

下記のように1行のデータであるCSVファイル

Name,Amount,CloseDate

opportunityA,100.99,6/30/2014

JSON の例

このJsonは上記のCSVファイルのデータ構造を定義するために使うもの

{

    "fileFormat": {

        "charsetName": "UTF-8",

        "fieldsEnclosedBy": "\"",

        "fieldsDelimitedBy": ",",

        "numberOfLinesToIgnore": 1

    },

    "objects": [{

        "connector": "AcmeCSVConnector",

        "description": "",

        "fullyQualifiedName": "SalesData",

        "label": "Sales Data",

        "name": "SalesData",

        "fields": [{

            "description": "",

            "fullyQualifiedName": "SalesData.Name",

            "label": "Account Name",

            "name": "Name",

            "isSystemField": false,

            "isUniqueId": false,

            "isMultiValue": false,

            "type": "Text"

        },

        {

        "description": "",

        "fullyQualifiedName": "SalesData.Amount",

        "label": "Opportunity Amount",

        "name": "Amount",

        "isSystemField": false,

        "defaultValue": "0",

        "isUniqueId": false,

        "type": "Numeric",

        "precision": 10,

        "scale": 2,

        "format": "$#,##0.00"

        },

        {

        "description": "",

        "fullyQualifiedName": "SalesData.CloseDate",

        "label": "Opportunity Close Date",

        "name": "CloseDate",

        "isSystemField": false,

        "isUniqueId": false,

        "type": "Date",

        "format": "MM/dd/yyyy",

        "fiscalMonthOffset": 0

        }]
    }]
}

連携

・最初にEinstien Analyticsのため用意にした標準オブジェクトである「InsightsExternalData」に、

 データセット名やデータフォーマット(JSON)、データの追加か上書きか、など各種必要な情報をInsertします。

 Insertした際に付与された「Id」は、取得して後の処理で利用します。

 

。次にEinstien Analyticsのため用意にした標準オブジェクトである「InsightsExternalDataPart」に、

 CSVファイルや先ほど取得した「InsightsExternalData」の「Id」など必要な情報をInsertします。

 この時、1レコードの登録に対し10MB以下のCSVファイルとなるようファイルを分割する必要があります

 

・データファイルの登録が終わったら、

 最初に登録した「InsightsExternalData」の「Action」を更新してアップロード処理を開始します。

 

 

ここまでの設定をした後に外部データのアップロードは行われるので、

あとはアップロードが正しく終わったかどうか「InsightsExternalData」を監視することで確認が可能です。

 

 

あとはEinstien Analyticsに入って、連携ツールで指定したアプリケーション名のところに作成したものを

確認できるはず!

正式運用後のデータセット更新

連携で作成したアプリケーションのデータセットを更新したい場合にどうするかというところで困っていないか?

それについては次回、共有します

なぜなら、手洗いに行きたいです!

 

 

わからないところがあれば、コメントなどで質問してもいいです!

待っております。