CData Software Blog

クラウド連携のCData Software の技術ブログです。

QA自動化プラットフォーム Autify のデータを Google BigQuery に連携して分析

f:id:sugimomoto:20200709104007p:plain

こんにちは。CData Software Japanリードエンジニアの杉本です。

今回の記事では QA自動化プラットフォーム Autify のデータをCDataSync経由で Google BigQuery にレプリケーションする方法を紹介したいと思います。

Autify とは?

Autify はフロントエンドのQAを自動化し、素早い開発サイクルを実現するQA自動化プラットフォームです。

https://autify.com/ja

f:id:sugimomoto:20200709102521p:plain

ブラウザ上での操作記録をベースにテストシナリオを構築できるため、誰でも簡単にテストシナリオが作成できます。

www.loom.com

また、開発者向けAPIも提供しており、テストシナリオやテストの結果を取得することができるようになっています。

https://autifyhq.github.io/autify-api/

f:id:sugimomoto:20200709102528p:plain

実現イメージ

本記事ですすめるシナリオはAutify のデータをBigQueryに移行する仕組みを構成することですが、なぜそのようなことをするのか? 少し背景をおさえておきたいと思います。

以下の記事でも紹介していますが、現在私達の周りには数多くの SaaS が溢れ、10数年前のようなRDBだけ連携していればいいという時代は過ぎ去っています。

https://www.cdatablog.jp/entry/2019/12/10/231629

f:id:sugimomoto:20200117110033p:plain

アメリカでは一つの企業で平均10~20程度の SaaS を使っているというレポートも存在し、多種多様なアプリケーションを活用しながら企業のビジネスプロセスが動いていることがわかります。

f:id:sugimomoto:20200117110040p:plain

そのような状況では、例えば「ログデータを切り口として分析したい」といった要望があったとしても、ディメンション(BIによる分析でよく用いられるようなスタースキーマ文脈における)が各種アプリケーション・SaaS・PaaS に分散され、「ログデータはこのサービスにあるけれど、ディメンションとして使いたい顧客属性や別データは違うサービスに存在する」ということが頻発してしまいます。

https://docs.microsoft.com/ja-jp/power-bi/guidance/star-schema

f:id:sugimomoto:20200117110046p:plain

そのようなビジネス環境で今求められているのが、ELTの考え方です。多種多様なデータソースから、一度DWHにデータをロードし、DWHで分析や変換処理を回していきます。

f:id:sugimomoto:20200117110125p:plain

引用元:https://docs.microsoft.com/ja-jp/power-bi/guidance/star-schema

CDataSyncでは、このような分析基盤向けデータ統合の自動化をAPIそれぞれの仕様の違いを意識することなく、ノンコーディングで実現することができるようになっています。

今回対象とするデータソースはAutifyですが、CDataSync では200種類以上のAPIを対象としてデータ統合が行えるので、Elasticsearch や Amazon S3などのデータ等とも掛け合わせて、分析を行うことが可能になります。

f:id:sugimomoto:20200117110132p:plain

このような背景を踏まえ、本記事ではデータ分析基盤・DWHとして現在多く使われている Google BigQuery にAutifyのデータを連携する方法を紹介したいと思います。

f:id:sugimomoto:20200709104007p:plain

必要なもの

  • Google BigQuery・Data Portalが利用可能な GCPアカウント
  • Autify アカウント
  • CData Sync

Autify API用アクセストークンの取得

まずAutify にログインして、API用のアクセストークンを入手しましょう。

アカウントの「設定」→「個人設定」に移動し、新しいパーソナルアクセストークンを生成の欄で任意の名称を入力し、「作成」をクリックします。

f:id:sugimomoto:20200709103151p:plain

すると以下のようにパーソナルアクセストークンが生成されるので、この文字列を控えておきます。

f:id:sugimomoto:20200709103340p:plain

また、併せてProject Idも確認しておきましょう。

プロジェクト設定に移動し、任意のプロジェクトを選ぶと、URLでProject Idが確認できます。これも後ほど使用します。

f:id:sugimomoto:20200709103554p:plain

REST データ処理用 RSDファイルの作成

次に、Autify API を CData Syncが処理できるように設定ファイルを作成します。

以下のGitHubから保存してください。

https://github.com/sugimomoto/CData.REST.Autify

保存先フォルダは後ほど使用するので「C:\CData_REST\Autify」といった書き込み可能な任意のフォルダに配置してください。

Google BigQuery の準備

続いてデータの格納先となる Google BigQueryのプロジェクトとデータセットを構成しておきます。

なお、今回はあらかじめ専用のアカウントを作って対応しています。

手順は特に難しくありません。GCPの管理コンソールへ移動し、新しいプロジェクトを作成

f:id:sugimomoto:20200117110231p:plain

BigQuery に移動し、プロジェクト配下にデータセットを作っておきます。ここに連携結果がテーブルとして格納されます。

f:id:sugimomoto:20200117110236p:plain

以上で BigQuery 側の準備は完了です。

CDataSyncのインストール

それでは、取得した情報を元にCDataSyncの設定を行っていきましょう。

CDataSyncはインストール型のソフトウェアなので、以下のURLからダウンロードして、任意のPCでセットアップを行います。

https://www.cdata.com/jp/sync/

f:id:sugimomoto:20200117110318p:plain

セットアップ後、CData Syncの画面がブラウザで立ち上がるので、セットアップ時に入力したパスワードとユーザー名「admin」を入力して、ログインします。

f:id:sugimomoto:20200117110325p:plain

ログイン後「情報」タブに移動し、「30日間の評価版をアクティベート」を行えば、CDataSyncの初期設定は完了です。

f:id:sugimomoto:20200117110332p:plain

REST データソースの設定

まずはデータのSyncを行うためのデータソースの設定を行っていきましょう。

CDataSyncでは任意のデータソースを自由に追加して、連携することが可能です。

デフォルトでは REST データソースが含まれていないため、「接続」に移動し「+ Add More」をクリックし、追加を行います。

f:id:sugimomoto:20200117110338p:plain

f:id:sugimomoto:20200117110342p:plain

一覧の中から「REST」を検索し、追加します。

f:id:sugimomoto:20200117110348p:plain

追加後、CDataSyncが再起動します。再起動後、データソースの一覧から「REST」が選択できるようになるので、これを選択し接続設定を行います。

f:id:sugimomoto:20200117110352p:plain

接続設定では、「接続文字列」を選択して、以下の項目をセットし、保存します。「APIKey」「ProjectId」にはあらかじめAutifyから取得しておいた値をセットしてください。「Location」は先程取得した設定ファイルが格納されたフォルダパスを指定します。

  • Other='APIKey=XXXX;ProjectId=XXXX;';Location='C:\CData_REST\Autify';

f:id:sugimomoto:20200117110358p:plain

BigQueryへの同期先設定

続いて、同期先となるBigQueryへの接続を構成します。

「接続」→「同期先」から「Google BigQuery」を選択し

f:id:sugimomoto:20200117110404p:plain

あらかじめ作成しておいた、「ProjectId」と「Dataset Id」を入力し、「接続」をクリックします。

クリックすると、OAuthの認証プロセスが開始されますので、対象アカウントでログインし、アクセス許可を承認してください。承認後、設定を保存すれば準備完了です。

f:id:sugimomoto:20200117110410p:plain

ジョブの作成

それでは実際にジョブを作成し、データをBigQueryに連携してみましょう。

ジョブのタブから「ジョブを作成」をクリックし

f:id:sugimomoto:20200117110415p:plain

事前に構成した「REST」と「BigQuery」を、ソースと同期先としてそれぞれ構成します。

f:id:sugimomoto:20200117110421p:plain

次に連携するデータを決定するために、「テーブルを追加」をクリックし

f:id:sugimomoto:20200709105613p:plain

任意のテーブルを選択します。今回は「Scenarios」「TestResults」「TestCaseRestuls」を選択しました。

f:id:sugimomoto:20200709105627p:plain

同期処理の調整

試しに一つテーブルをプレビューしてみましょう。「TestResults」をクリックし

f:id:sugimomoto:20200709105712p:plain

データレプリケーション設定のプレビュータブから「Execute」を実行することで、データを確認できます。

f:id:sugimomoto:20200709105719p:plain

なお、「TestCaseRestuls」テーブルはAPI仕様上、対象のTestResultIdを指定する必要があります。そのため、その条件調整を行いましょう。

設定は簡単です。「TestCaseRestuls」をクリックし

f:id:sugimomoto:20200709105816p:plain

Advancedタブで、フィルタ条件として「TestResultId」に対してEqual条件でId値を指定するだけです。Id値は先程の「TestResults」のプレビューから確認できます。

f:id:sugimomoto:20200709105939p:plain

設定が終わったら正常にデータが取得できるかどうか確認してみましょう。プレビューでExecuteをクリックすると、以下のようにデータが取れました。これで設定はOKです。

f:id:sugimomoto:20200709110100p:plain

最後にスケジュールタブから定期的に処理にするためにスケジューラーを設定します。以下の設定ですと1日1回、BigQueryへ最新のデータが同期されます。

f:id:sugimomoto:20200117110503p:plain

後は設定を保存すれば、完了です。

テスト実行

テスト実行はテーブルタブから対象となるテーブルを選択し、「実行」ボタンをクリックすることで実施可能です。

f:id:sugimomoto:20200709110155p:plain

同期がすべて完了すると、以下のようにメッセージが表示されます。

f:id:sugimomoto:20200709110202p:plain

BigQuery上でも自動的にテーブルが生成されデータが閲覧できるようになりました。

f:id:sugimomoto:20200709110245p:plain

あとはDataPortalやお好みのBIツールで分析を行うことができます。

さいごに

本記事では、Autify のデータを BigQueryに連携しましたが、CDataSyncではBigQuery以外にも AmazonRedShiftやAzure SQL Serverといった多様な連携先をサポートしています。

f:id:sugimomoto:20200107113401p:plain

是非普段皆さんの会社でお使いのDWH・データベースに同期してみてください。