Google Data Portal (旧Data Studio) で Community Connector を作成してデータを直接取得する - 事前知識編
はじめに
GoogleのダッシュボードプロダクトにGoogle Data Portal (旧Data Studio)があります。
会社でG Suite使っているため
- 権限設定
- 広くてもG Suiteの同一組織配下。まとめて設定したいなら組織やプロジェクトの単位でGroupを払い出す
- 簡易バッチ
- Google Apps Scriptが使える
- 社内データ利用
というお手軽さがあり
- Google Apps Script の時間トリガーで以下を処理
- データの収集
- データの加工・整形
- Spreadsheetへの出力
- Google Data Portal の取得〜可視化〜配信
といったパイプラインで処理していました。
ここで一考の余地があるのが「1. Google Apps Script の時間トリガーで以下を処理」の箇所。「2. Google Data Portal の取得〜可視化〜配信」の取得部分(上記の例だとSpreadsheetに接続・取得している)で対応できないか、という要望に応えるのが Community Connector
の機能になります。一旦Community Connector を作成すると「2. Google Data Portal の取得〜可視化〜配信」の側だけで設定が完了するので
- 「1. Google Apps Script の時間トリガーで以下を処理」が不要になるため、より簡易に利用できる
- 認証情報や取得設定などを Community Connector 側で設定できるため、管理がData Portalで完結する
といったメリットがあります。
Community Connector について
Community Connector は Apps Script で指定のインターフェースの関数とマニュフェストを記載することで実装できます。
- 指定インターフェース
getConfig()
: ユーザに入力してもらうコネクタの設定のUIと変数へのマッピングを定義。例) 認証情報などgetSchema()
: 取得データの Data Portal 上でのスキーマを定義。 例) 1カラム目は「ID」という名称のディメンションで文字列型getData()
: データの取得と、Data Portal 定義のデータのオブジェクト形式に設定getAuthType()
: 認証の種類をセット。現段階(2019/06)でサポートされているのは「認証なし」「OAuth 2.0」「APIキー」「ID/Password」「ID/Token」- 詳細はコネクタ作成リファレンスを参照
- マニュフェストファイル
- 次のフィールドが必須
name
,company
,companyUrl
,logoUrl
,addonUrl
,supportUrl
,description
- 詳細はマニュフェストリファレンスを参照
- 次のフィールドが必須
といったところで、各インターフェースの引数や戻り値のオブジェクトはリファレンスの記載を元に作成していきます。
今後、実際に Community Connector を作ってみての感想や気づきを複数回に分けて書いていこうと思います。
次回は指定インターフェースの実装について。
デプロイは Apps Script のマニュフェストを使ったデプロイになります。次々回くらいに書ければと思います。
公開範囲は個人利用からCommunity Connectorのポータルへ公開して一般に使ってもらうまで選べます。パートナーやオープンソース開発のConnectorは高度なコネクタ検索に一覧があります。今回はG Suite組織内での利用を想定しているので、公開に関しては触れません。
最後に開発にあたっての共有、デバッグ、エラー認証他の話で、次々々回くらいに書ければなと思います。
余談
ダッシュボード系のツールではデータを取得する機能を Connector と呼び、類似カテゴリのDOMOでも利用者がJavascriptでConnectorを作成する機能があります。
作成と確認のUIやロギング・エラーはDOMOの方が分かりやすいと思いますが、ドキュメントやサンプルのAPIや設定項目の網羅性はData Portalでしょうか。
Connector自身の機能は性質が異なるので比較するのはアンフェアですが、あえて比較書いておきます。
- Data Portal
- 言語はApps Script (built-inや実行時間などもこれに依存)
- 拡張のDataStudioオブジェクトは設定作成部分のサポート。加工処理は自前、認証はライブラリ読み込んで利用
- DOMO
- 言語はJavascript
- 拡張は作成設定部分以外にも取得したレコードのよくやりたい加工処理や認証処理サポートがある