FivetranとLookerを使ってShopifyのデータ分析環境をマッハで用意する
大阪オフィスの玉井です。
最近、Shopifyの名前をよく聞くようになりました。というわけで(?)、ShopifyのデータをマッハでDWHに入れて、Lookerで分析できるようにしてみました。
事前に用意しておくもの
- Shopifyの開発ストア
- Shopifyのサンプルデータ(下記のアドオンで用意)
- Fivetran
- 事前にBigQueryをDestinationとして登録済
- Google BigQuery
- Looker
- 事前にBigQueryをConnectionとして登録済
やってみる内容の概要
- FivetranでShopifyのデータをBigQueryに入れる
- LookerのマーケットプレイスからShopify用のBlocksをインストールする
- BlocksからBigQueryのデータを参照するようにしてすぐに可視化
やってみた
FivetranにShopifyを設定する
まず、FivetranにShopifyをConnectorとして登録します。Connectorの新規作成画面を開きます。
Shopifyを見つけて選択します。
接続情報を入れる画面です。Schema
の方は、データを格納するスキーマ名(データセット名)を決めるだけですので、好きな名称で大丈夫です。Shop name
の方は、ストアのURLのmyshopify.com
の前の部分までを入れます。例えば、tamai.myshopify.com
だったら、tamai
を入れます。
入力を終えたら、Shopifyの認証を始めます。
AUTHORIZEを選ぶと、Shopify側の画面に飛ばされます。そして、Fivetranをアプリとして登録するか?みたいなことを聞かれるので、承諾します。すると、下記のように、Shopify側にFivetranがアプリとして登録されます。
認証を終えると、下記のように認証済になりますので、設定を終えます。
BigQueryにShopifyデータを入れる
Shopifyを登録したので、早速Fivetranでデータをロードしていきます。他のConnectorとやることは一緒です。初回のSyncを開始しましょう(同期するテーブルを選んでも良い)。ちなみに、初回の同期はそれなりに時間がかかります(数百件のサンプルデータで2時間)。しかし、その後の定期的な増分更新は1分とかで終わりました(サンプルデータを違うものに入れ替えたりして検証)。
同期が完了すると、BigQueryにデータがキレイに格納されます。言うまでもありませんが、各テーブルの仕様や、テーブル同士のER等は、私がしこしこ作ったのではなく、全てFivetranが自動でやってくれています。下記のドキュメントに、Fivetranで連携したShopifyデータのER図などが記載されています。
LookerのマーケットプレイスからShopify用のBlocksをインストールする
次はLooker側の設定になります。Lookerのマーケットプレイスから、「Shopify」を探して、インストールします。ちなみに、このBlocksは、「Fivetranで連携したShopifyデータ」を前提としています。
インストールしようとすると、ウィザードが出てくるので、質問に回答してきます。
Shopifyのデータが入っているConnectionとデータセット名を聞かれるので、先程Fivetranを使ってデータを入れたデータセット名を指定します。
これでインストールは完了です。
Lookerで可視化されたShopifyのデータを見る
インストールしたBlocksには、事前に構築されたLookMLとダッシュボードが含まれています。つまり、インストールが終わった時点で、もうダッシュボードが完成しています。
顧客、ストア、商品…それぞれの切り口でのダッシュボードがありますね(サンプルデータがしょぼいので、映えるダッシュボードの画像がとれませんでした…)。
複雑な作業なしで、LookerからShopifyデータの分析環境を用意することができました。
ちなみに、裏側でちゃんとLookMLが定義されています。前述しましたが、これらのLookMLは「Fivetranで連携したShopifyデータ」を前提に組まれています。
検討事項
このLooker BlocksはBigQuery用である
今まで触れてこなかったのですが、実は今回使用したBlocksは、DWHがBigQueryであることを前提としています。つまり、このBlocksは「BigQueryにFivetranを使って入れたShopifyのデータ専用」ということになります。
LookerはGoogle傘下ということを考えると、しょうがない気もしますね…。ただ、このBlocksをRedshiftやSnowflakeで使おうとすると、Blocks(のLookML)をカスタマイズする作業が発生するということを覚えておきましょう(このShopifyのBlocksは、派生テーブルがNDTだったりするので、まだ救いがあるかもしれない)。
参考までに、他のBlocksをSnowflake用にカスタマイズしてみた記事をはっておきます。
Shopify自身にも分析機能はある
実は、Shopifyそのものの管理メニューに、分析機能があります。
ですので、ぶっちゃけ、Shopifyだけを分析したいのであれば、この機能で事足りる可能性は十分にあります。では、今回のように、FivetranやLookerを使うメリットって何でしょうか?
答えは「他ツールも含めた横断的データ分析のため」だと思います。Shopifyだけならいいのですが、Salesforce、Zendesk、Google Analytics、Marketo、自社独自のデータベース…などなど、企業が分析したいアプリケーションやDBは多岐に渡ることが多いハズ。「うちのShopifyでXXを買った人は、何のキャンペーンに引っかかって、自社のウェブサイトにどう訪問しているのか?この顧客の担当営業は誰か?ヘルプセンターにどういう質問をしているのか?」などなど。これらのデータを横断的に分析したい場合は、データを一箇所に集める必要があります。そういう時、Fivetranを使うと、色々なデータを楽にDWHに集約できます。
おわりに
本編と関係ありませんが、LookerとShopifyには意外な関係性があります。
LookerのLookMLの中で、Liquidというテンプレート言語が書けるのですが、このLiquidを開発したのがShopifyです。
世間は狭いですねえ(?)