eセールスマネージャーのデータをRedshiftに自動同期し、Lookerで可視化する


## 概要
eセールスマネージャーにアップロードされた案件・商談・顧客などを分析する際、更新されるたびにデータを転送して最新の状態に保つのには手間がかかります。そこで今回は、[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=esalesmaneger_to_redshift)という分析基盤向けデータ統合サービスを使い、eセールスマネージャーデータの抽出自動化＋DWH(データウェアハウス)への統合＋可視化までやってみようと思います。

今回、データの転送手段として採用した[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=esalesmaneger_to_redshift)は、eセールスマネージャーの他にも、様々な広告・CRM・DBなどのデータソースにも対応しています。
[troccoの使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)
![esalesredshift_ロゴ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/1362e1ee-bd94-942e-acb2-acca1f57574b.png)

## ゴール
下のようなeセールスマネージャーのデータを

![esalesredshift_データプレビュ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/26bed739-6df6-bbb0-de6c-e3156eba3005.png)



Amazon Redshiftに転送し、Lookerで可視化します。作成後は自動で最新値に更新できます。
![esales_redshift_完成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/985e4a11-1861-5446-59af-06233a14275e.png)





## こんな人におすすめ
- eセールスマネージャーのデータをRedshiftに自動的に蓄積させたい
- eセールスマネージャーのデータを可視化して社内全体に共有したい
- さまざまなデータの分析に時間の浪費を感じている


## 1. troccoでeセールスマネージャー→Amazon Redshiftの転送自動化
### 1-0. 事前準備
データ転送には[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=esalesmaneger_to_redshift)のアカウントが必要です。

無料トライアルを実施しているので、事前に申し込み・登録しておいてください！
[https://trocco.io/lp/index.html](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=esalesmaneger_to_redshift)
（申込の際に、この記事を見た旨を記載して頂ければご案内がスムーズに行えます）



### 1-1. 転送元・転送先を決定
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=esalesmaneger_to_redshift)にアクセスして、ダッシュボードから「転送設定を作成」のボタンを押します。
![ダッシュボード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/c3b4d666-63f1-a260-8420-a811367e30cf.png)



転送元に「eセールスマネージャー」を指定し、転送先に「Amazon Redshift」を選択して転送設定作成ボタンを押します。
![esalesredshift_新規作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/166b9578-7362-d277-e367-1ad4ed9e2ce2.png)


すると設定画面になるので、必要な情報を入力していきます。
### 1-2. eセールスマネージャーとの連携設定
あとで見たときに自分で分かるように、転送設定の名前とメモを入力します。
![esalesredshift_設定①.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/b05b0ea4-fcfb-2f0c-3d5f-e97e8072ef13.png)




次に「転送元eセールスマネージャーの設定」内の「接続情報を追加」ボタンを押します。
![esalesredshift_情報追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/93b8bf28-ce4d-aa87-0e7c-20aee64c225c.png)




別のタブでeセールスマネージャーの接続情報の新規作成画面が開きます。
接続情報を作成するためにAPIトークンを取得する必要があります。

APIトークンの取得方法は以下の通りです。
https://docs.trocco.io/s/article/eセールスマネージャーの接続設定

> 1.右上のログインしているアカウントの名前が表示されているところをクリックし、「システム設定」をクリックします。
2.左に表示されているバーから「システムの設定」→「外部システムとの連携」をクリックします。
3.上部から「その他」をクリックします。
4.「eセールスマネージャーAPIトークン設定」にて「発行」をクリックし、「設定完了」をクリックします。

![e接続追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/62565fc1-9cb5-0e29-bca7-f7a354101bfa.png)

問題がなければ保存します。転送設定画面に戻り、接続情報の「接続情報を読み込む」ボタンを押すと、先ほど作成した接続情報が選択できるようになります。

![esalesredshift_sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/6ab0d2c6-9e55-d807-d1bc-5bf083e4a67a.png)



### 1-3. eセールスマネージャーのデータ抽出設定
次に、取得するデータを設定していきます。

eセールスマネージャーからデータ抽出するための検索クエリを、JSON形式で入力します。
※ eセールスマネージャーのAPI仕様は[こちら](https://www.e-sales-support.jp/euf/assets/esales_res/html/restapi/reference.html)をご確認ください。

![esalesredshift_検索用クエリ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/4433bcb2-c9ea-ded3-cb9f-546e34c5b106.png)



### 1-4. 転送先Amazon Redshiftの設定
転送元と同様に設定していきます。まず、Redshiftの接続情報を作成していきます。

転送先となるRedshiftの接続先ホスト、接続先ポート、ユーザー名、パスワードを設定し、AWSのアクセスキーIDとシークレットアクセスキーを設定する必要があります。
AWSのアクセスキーとシークレットアクセスキーの取得方法は以下の通りです。
>1.[IAM コンソール](https://console.aws.amazon.com/iam/) を開きます。
2.ナビゲーションメニューで [ユーザー] を選択します。
3.IAM ユーザー名 (チェックボックスではありません) を選択します。
4.[認証情報] タブを開き、次に [アクセスキーの作成] を選択します。
5.新しいアクセスキーを表示するには、[表示] を選択します。認証情報は次のようになります。
6.アクセスキー ID: AKIAIOSFODNN7EXAMPLE
シークレットアクセスキー: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
キーペアをダウンロードするには、[.csv ファイルのダウンロード] を選択します。キーを含む .csv ファイルを安全な場所に保存します。

![redshift設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/a2a6252a-387e-29b6-3fc0-4ed5cc0d49f8.png)

先ほど作成した接続情報を選択し、データベース名、スキーマ、テーブルなど必要な情報を設定していきます。（データベース、スキーマ、テーブルは事前にRedshiftで作成しておく必要があります）

![eslaesredshift_転送先.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/465d3891-3fb3-78bc-b1c7-7d449ae89f2b.png)





これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。



### 1-5. データのプレビュー
少し待つと、転送元のデータがプレビューされます。eセールスマネージャーから取り込んだデータが表示されているのが確認できます。
![esalesredshift_データプレビュ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/56f8362a-3601-6365-5e8e-47ae4270007a.png)



データが正常に転送できていることを確認できました。
次に転送設定の一覧から作成した設定を選び「スケジュール・通知設定」に進みます。

### 1-6. スケジュール・通知設定
「スケジュール・トリガー設定」タブを開きます。

![esalesredshift_スケ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/7ccd4745-fddd-0543-0538-cdb8bd0fd971.png)

「スケジュールを追加」ボタンを押すと、以下の画像のような入力欄が出てきます。ここで実行スケジュールを設定することで、転送を定期的に実行し自動化することが出来ます。
![esalesredshift_登録.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/286e6868-175d-6df4-bc6e-54bf199c856e.png)




### 1-7. データ転送ジョブの実行
設定は以上です。最後に、手動で転送ジョブを実行し、Amazon Redshiftにデータを送ります。
手動で実行する場合はジョブ詳細画面の「実行」ボタンを押します。
![esalesredhsift_実行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/c2c5d979-35f2-0007-c869-219de92a5f7c.png)




これで転送は完了です。

## 2. Amazon Redshiftの設定
特に設定することはありません。設定で選択したテーブルにデータが転送されているので、今すぐに分析・可視化を行うことが出来ます。
データがきちんと送られているかをプレビューで確認してみます。
クエリエディタにSQL文を入力し、データをSELECTします。

```
SELECT * FROM qiita.qiita_test_from_eslaes.qiita
```

![esalesreddshift_select.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/997850d3-8091-2b55-27bc-6e048a41da54.png)


そうすると、以下のようなデータが表示されます。
![esalesredshift_プレビュー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/61b3ac58-76a3-6a86-cf25-06ed94e67f85.png)


転送されていることが確認できました。

## 3. Lookerで可視化
まずはRedshiftとLookerを接続します。 管理タブを開いて「データベース」の「接続」を開きます。 
![looker接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/b0c30932-2897-2e2d-573b-930f57e7d1c5.png)

接続しているデータベース一覧が表示されています。ここで「Add Connection」を選択し、接続設定を行う画面が表示れるので、情報を入力していきます。
![addconnection.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/0fb758d6-073d-48db-47a7-28ba6b6fe234.png)
![esalesredshift_connectring.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/1d978923-6142-8280-7f62-b494a5c534ea.png)
Redshiftのデータベースに接続できたら、次はデータを可視化するために必要なLookMLプロジェクトを作成します。 開発タブを開いて「LookMLプロジェクトの管理」に移動します。 

![プロジェクトの管理.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/4a6bf16b-e4e2-5b4a-401f-4b7ba6c7f9ab.png)

「New LookML Project」からLookMLプロジェクトを作成します。 
![newlookerml.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/04bb62b5-3bbc-b6b3-4508-96a35ee93f53.png)

![esalesredshift_newproject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/52e9e022-2fc7-d023-72e8-7ab881ecf392.png)


「Create Project」を押したら、エディタでmodelとviewを定義します。 後々必要になるので、modelの中ではexploreを設定しておきましょう。 (書き方が分からない場合はLookerの[公式ドキュメント](https://docs.looker.com/ja/data-modeling/getting-started/model-development)を参照してください)
![esalesredshift_model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/4aaa7268-f3fe-6c02-90ad-365e4b0db92a.png)
![esalesredhift_views.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/d58c10e3-a0a3-0be6-3d70-1ad26c6fabcb.png)

これで下準備が整いました。 トップページに戻って「New」からDashboardを作成します。 
![newdash.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/9bf025e6-72f2-b47d-0614-fd1256d87c20.png)

白紙のダッシュボードが作成されるので「esales_redshift_ダッシュボード」と名前をつけます。
そして「Dashborardの編集」→「タイルの追加」を選択し、先ほどのmodel内で定義したExploreを選択します。

![esalesredhift_model追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/1c673718-03a5-99fb-d596-f9ed1b744316.png)

ディメンションとメジャーを設定し、Tileに表示したいデータをプロットします。例えば、案件ごとの見積額について分析したいとき、ディメンションに「案件名」とメジャーに「見積もり」を選択します。

![esalesredhift_例.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/ca2e914f-8465-d3eb-56ed-b8d74c1e1194.png)


その他にも代表者ごとの取引割合や取引詳細について、ダッシュボードにまとめていきます。

![esales_redshift_完成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/61c91dfd-79ce-5929-caaa-60c0460893dd.png)


完成しました！


## まとめ
いかがでしたでしょうか。[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=esalesmaneger_to_redshift)を使うと、eセールスマネージャーのデータを自動でAmazon Redshiftにまとめていくことができるほか、100万規模の大きなデータから小さなデータまで複雑なコーディングをせず[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=esalesmaneger_to_redshift)の画面上の設定のみでデータの転送が可能になります。
実際に弊社サービスの[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=esalesmaneger_to_redshift)においても、マーケティングKPI等をこのような流れで収集・分析しています。
ぜひ広告データ分析の際にはご活用ください。
[https://trocco.io/lp/index.html](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=esalesmaneger_to_redshift)

実際に試してみたい場合は、[無料トライアル](https://trocco.io/inquiry_trial/new?utm_medium=social&utm_source=qiita&utm_campaign=esalesmaneger_to_redshift)を実施しているので、この機会にぜひ一度お試しください。（申込時に、この記事を見た旨を記載して頂ければスムーズにご案内できます）

その他にも広告やデータベースなど、様々な分析データをETL・転送した事例をまとめました。
[troccoの使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)