TableauよりHubSpot APIに「ODBC」で接続し、データ統合する

#はじめに

APIに詳しい開発者の方でしたらRest APIへ正しく接続することなど容易かもしれませんが、そうでない場合には時間とカスタム・プログラミングが必要とされるため、構築が厄介になる場合もあります。

実現したいことは分析、データの可視化であり、その事前準備に時間を費やすのは避けたいことの１つです。

そのようなとき、DataDirect Autonomous REST Connectorを利用すると、コードなしで即座に任意のREST APIに接続し、「SQL」でREST APIを照会できます。

Autonomous REST Connectorは、REST APIから返されるJSONレスポンスを正規化するために知能サンプルを用いており、JSONレスポンスをリレーショナルデータベースのテーブルとして使用できる形式にしてくれます。（異なるエンドポイントに存在するデータの結合を含む、SQLの全機能を使用できるようになります。）

本記事では、TableauとHubSpot APIをAutonomous REST Connectorを用いて、ODBCコネクタを導入するだけでそのまま接続する方法を、段階的に説明します。

HubSpotはマーケティング、営業、カスタマーサービス向けの、人気の高いマーケティングオートメーションおよびCRMプラットフォームです。 日本国内でも利用企業が増えて来た人気のツールですね！

さっそく始めていきましょう！ 

#Autonomous REST Connectorのダウンロードとインストール
1.メーカのサイト<a href="https://www.ashisuto.co.jp/datadirect/app_download/" target="_blank">（ここ）</a>からAutonomous REST Connector for ODBCを手順通りにダウンロードし、インストールします。

2.セットアップファイルを実行し、コネクタをインストールします。

#HubSpotの認証
1.HubSpotは、OAuthとAPIキーの２つの認証手段を提供しています。どちらの機能もAutonomous REST Connectorでサポートされています。
2.記事では、認証にAPIキーを使用します。以下は、APIキーを使用したリクエストの例です。


```console
curl https://api.hubapi.com/contacts/v1/lists/all/contacts/all?hapikey=456****cfa

```


#ODBC データソースを作成する 
1.ODBCアドミニストレーター （64ビット版）を起動。［追加］をクリックし、新しいデータソースを作成してください。 

2.ドライバ［DataDirect 8.0 Autonomous REST Connector］を選択します。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662096/157b227b-09d0-4ca6-e548-823656c6838f.png)



3.ドライバ構成のウィンドウでデータソースに名前をつけ、 ［REST Sample Path］に接続したいエンドポイントを貼り付けてください。Get All Companiesエンドポイントに接続したいなら、そのエンドポイントを単純に［REST Sample Path］に貼り付けます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662096/3511a04d-b78a-2c2e-0838-2e3e690c624f.png)


4.［Authentication］タブに移動し、以下を設定してください。
 1)Authentication Method: Urlパラメータ
 2)Auth Param: hapikey
 3)Security Token: HubspotAPIキー 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662096/5e57f8c4-a28f-39af-5a1a-05871adf0757.png)



5.［Test Connect］をクリックして、HubSpot APIに接続してください。

#Tableauから接続する
1.次に、TableauからHubSpotに接続します。Tableauで［Other Databases (ODBC)］を選択し、先ほど作成したDSNのHubSpotを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662096/91045366-1301-eb6f-330a-a895612b577d.png)


2.HubSpot APIからのJSONレスポンスを正規化することで、Autonomous REST Connectorで使用できるようになったテーブルの一覧が表示されます。
通常通りREST APIデータにアクセスしてください。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662096/7d7d4576-c588-bf8b-09c3-ed5d8e021dd9.png)


#複数のエンドポイントに接続する
1.Autonomous REST Connectorに複数のエンドポイントを設定するためには、Hubspot.rest という新しいファイルを作成し、エンドポイントを以下のように設定してファイルを保存します。 

```console
{
"Companies":"https://api.hubapi.com/companies/v2/companies/paged",
"CompanyProperties":"https://api.hubapi.com/properties/v1/companies/properties",
"Contacts":"https://api.hubapi.com/contacts/v1/lists/all/contacts/all",
"ContactsLists":"https://api.hubapi.com/contacts/v1/lists",
"ContactProperties":"https://api.hubapi.com/properties/v1/contacts/properties",
"Deals":"https://api.hubapi.com/deals/v1/deal/paged",
"DealProperties":"https://api.hubapi.com/properties/v1/deals/properties",
"DealPipelines":"https://api.hubapi.com/deals/v1/pipelines",
"Engagement":"https://api.hubapi.com/engagements/v1/engagements/paged",
"Forms":"https://api.hubapi.com/forms/v2/forms",
"Owners":"https://api.hubapi.com/owners/v2/owners",
"Products":"https://api.hubapi.com/crm-objects/v1/objects/products/paged",
"Tickets":"https://api.hubapi.com/crm-objects/v1/objects/tickets/paged",
"Emails":"https://api.hubapi.com/marketing-emails/v1/emails"
}

```

2.ODBCアドミニストレーターを開いたら、作成したDSN構成を開き、REST Sample Pathを削除してください。

3.［REST Config File］で、設定ファイルHubspot.restを以下のように参照します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662096/daeb5cda-e8ad-a7ca-4fc6-c620f7c65f99.png)


4.［Test Connect］をクリックすると、正常に接続されます。

5.Tableauを開き、接続を更新します。 Autonomous REST connectorがHubSpot APIから正規化したテーブルが、さらに表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662096/427a92f4-00ff-0869-8742-0c633446d624.png)


6.データを抽出するか、REST APIからその場でデータをリクエストするために Live Connectionを使用するかを選択してください。

簡単ですね！
参考：<a href="https://www.ashisuto.co.jp/datadirect/solutions/autonomous-rest-connector.html" target="_blank">autonomous rest connector</a>