こんにちは。CData Software Japan リードエンジニアの杉本です。
以前このBlogでPower Apps データフローを CData Driverと組み合わせる方法を紹介しました。
ここではMicrosoft が提供するオンプレミスデータゲートウェイを使っているのですが、CData ではそれ以外にも CData Cloud Hub というゲートウェイサービスを提供しています。
今回はこの CData Cloud Hub を使って、PowerApps データフローでHubSpotのデータを取り込む方法を紹介したいと思います。
CData Cloud Hub とは?
CData Cloud Hubとは、CData が提供している SalesforceやDynamics 365、kintone、HubSpot などのデータソースのSQLインターフェースをクラウド上で提供するサービスです。
https://www.cdata.com/cloudhub/
今まで CDataでは ADO.NET・JDBC・ODBCといった、インストール型・ライブラリ型の製品を提供してきましたが、この形態の場合オンプレミス向けまたはクラウド系のBIやETLツールの場合、ゲートウェイなどのブリッジを必要とする場合がほとんどでした。(一部、ライブラリを取り込むことが可能な製品も存在しますが)
CloudHubでは、そういったインストール型・ライブラリ型の製品提供ではなく、クラウド上にCDataが誇る+200データソースのSQLインターフェースを用意してしまい、今回のPowerApps データフローはもちろんこと、例えばGoogle Data StudioやTableau OnlineといったクラウドネイティブなBI・ETL・iPaaSなどのサービスからの接続性も確保してしまうという画期的なサービスになっています。
今回はこのCloudHubを経由して、HubSpotのコンタクトデータをPowerAppsデータフローで取得し、処理する方法を紹介します。
必要なもの
- HubSpotアカウント
- PowerApps アカウント(CDS・DataflexとPowerAppsデータフローが利用できるアカウントであること)
CData Cloud Hub での接続構成
CData Cloud Hubは以下のURLからトライアルのリクエストを受け付けていますので、予めこちらから申し込みをしてください。
https://www.cdata.com/cloudhub/
トライアルが開始されると、Cloud Hubの管理画面にログインするためのURLとログインID・PWが提供されます。
そのURLにアクセスし、UserIDとパスワードを入力の上、ログインします。
ログインすると、以下のように Cloud SQL interfaceとして提供するデータソースを定義する画面に移動します。
今回はCRM製品のHubSpotからデータを取り込むので、一覧から「HubSpot」をクリックしてください。
接続設定画面に移動したら「Connect」をクリックします。
「Connect」をクリックするとHubSpotの画面に移動するので、内容を確認の上、「Grant access」をクリックすれば設定完了です。
接続完了後「Sae Changes」で設定を保存しましょう。
あとは、アクセス用のユーザーアカウントを作成するだけです。「Users」タブに移動し、「+Add」をクリックし
任意のユーザー名、パスワードを入力します。以上でユーザー作成は完了です。
最後に接続先のエンドポイント情報を確認しておきましょう。Cloud Hubでは、MySQL・SQL Server・ODataの3つのインターフェースを備えています。「ENDPOINTS」タブで、それらのエンドポイントおよびポート番号を確認できます。
以上で Cloud Hub の環境設定は完了です。
PowerApps データフローの設定
それでは、PowerApps データフロー側で設定を行っていきましょう。
PowerApps Dataflex(CDS)の画面に移動して、データフローから「データフローを作成する」をクリックします。
任意の名前を入力して「作成」をクリックし
接続先一覧から、CloudHub がインターフェースを提供している「SQL Server」を選択します。
ここが CloudHub を使うポイントです。通常であれば、この一覧のデータソースにしかPowerAppsデータフローは対応していませんが、CloudHub が汎用的なSQL Serverインターフェースで各種クラウドサービスAPI接続を提供することで、接続先を広げています。
接続設定の画面に移動したらCloudHub の各種設定情報を以下のように入力します。
- サーバー:CloudHub のエンドポイントで表示されていたSQL Server(TDS)の接続情報
- データベース:作成したコネクションの名前(HubSpotの場合は、HubSpot1になっています)
- オンプレミスデータゲートウェイ:なし
- 認証の種類:Basic
- ユーザー名:CloudHub で作成したユーザーID
- パスワード:CloudHubで作成したユーザーのパスワード
次の画面に移動すると、HubSpotから取り込むリソース(テーブル)を選択する画面が表示されるので、任意のテーブルを選択します。今回はContactsを選択しました。
次の画面で取り込むときの細かな処理を追加します。デフォルトでは項目が多く提供されるので、ここで必要な項目だけに絞り込んだり、データ型を変更したりします。
続いてDataflex(CDS)のエンティティのマッピングを行います。
今回は「新しいエンティティに読み込む」を選択し、必要なフィールドのマッピングを行いました。ターゲットフィールドの型などは適切なものに調整してください。
最後にデータの更新方法を選択します。今回はデモなので、手動で更新を実施しますが、実運用では自動的に更新を選ぶと思います。任意の方法を選択してください。これで「作成」をクリックすると、自動的にPowerAppsデータフローがHubSpotのデータを読み込み、エンティティを作成・データの取り込みを行います。
完了後、エンティティを見てみると、以下のようにHubSpot Contactsエンティティが作成され、データが取り込まれていることを確認できました。
おわりに
このように、Cloud Hub ではCDataで開発している 200 以上のデータソースに対して、標準的な Cloud SQL interfaceを提供し、様々なクラウドネイティブなサービスとの接続性を高めます。
今回紹介したような Google Data Studioだけでなく、ETLサービスのAmazon GlueやGoogle Data Flow、DomoやTableau OnlineなどのBIツールにも手軽にデータソースの拡張を行えるようになりますので、ぜひ普段利用しているツールから試してもらえればと思います。