フォーム読み込み中
皆様、こんにちは
Google Cloud の提供するサービスの1つである「Looker」を使った簡単なビジネスダッシュボードを作成してみました。本記事では Looker を初めて触る人を対象にした簡単な Looker ダッシュボード作成手順について紹介したいと思います。
(記事は前編と後編に分けて解説します)
BI としての Looker の特徴
Looker は Google Cloudにて提供される BI ツールの1つです。主な特徴について簡単に紹介します。詳細な内容を知りたい場合は、以下の記事に詳しく解説されています。
Google BIツール(Looker Studio、Looker Studio Pro、Looker)を比較してみた
https://www.softbank.jp/biz/blog/cloud-technology/articles/202407/google-data-analysis-bi/
※7/30(火)公開予定の記事です
1.データをツール内部に保持しないアーキテクチャによるパフォーマンスの高いデータ処理が可能
Looker 内部にデータを保持せず、データ更新の都度接続先のデータベースへ SQL を実行して表示します。そのため、例えば BigQuery に接続した場合、BigQuery のパフォーマンスで高速なデータ処理が可能になります。そのため 1PB の大量データを3秒~15秒程度で処理すること可能となります。
2.データ取得の際に Looker 側で SQL を自動生成するため、業務効率のよいデータ分析が可能
1.で述べた通り、Looker はデータを保持しないアーキテクチャです。データ取得の際に SQL を実行して接続先 DB からデータを取得します。その際の SQL は Looker 側で自動生成されます。そのため、クエリが Looker 側で管理されるため、SQL 側のクエリ管理の手間が不要となります。
3.LookML によるデータの一元管理
接続先データベースから抽出したデータに対して、LookML(LookMarkupLanguage)という言語を用いてプロジェクトでの共通のデータ定義(View と呼びます)を作成します。この共通のデータ定義を扱ってデータ分析や可視化を行うことで、例えばデータ分析担当者毎に異なるデータ抽出の定義で計算を行うことによる集計結果の違い等を防止する事が出来ます。
LookML プロジェクトについて
Looker のダッシュボードは LookML プロジェクトによって作成、管理されます。LookML プロジェクトは主に以下の3つの要素で成り立ちます
1.View
View は外部データベースから抽出したデータを LookML によってデータ定義を行います。
2.Model
データベース接続先の定義、View で定義したテーブルの結合の定義等を設定します
3.DashBoard
View や Model で定義したデータの可視化を行います。DashBoard では複数のテーブルやグラフを組み合わせて複合的な視覚表現が可能です。
※ 単一の Model で記述されるクエリの収集結果を可視化したファイルは Look といいます。DashBoard 上には作成済みの複数の Look を配置することが出来ます。
LookMLプロジェクトの構成要素
出典:https://cloud.google.com/looker/docs/what-is-lookml?hl=ja
Looker の Home 画面に表示される各種メニューを簡単に解説します。
ホーム画面のサイドバーに表示されるメニュー一覧
各メニューの解説
Explore | ユーザーデータの可視化を行います。DB から取得したデータをフィルタリングして、目的にあった表及びグラフを作成します。ここに表示されるデータの定義は Looker の開発言語であるLookML で定義されます。 |
開発 | LookML 言語を用いて、Looker 上でのデータの取り扱いを定義します。開発はLookML プロジェクトという単位で管理されます。また、Git 統合もされており開発に置ける効率的なバージョン管理が出来ます。 |
管理者 | Looker 上のユーザー管理やデータベースとの接続設定等の基本設定を行います |
ホーム | ホーム画面に移動します |
最近表示したもの | ユーザーが最近閲覧したコンテンツを表示します |
お気に入り | ユーザーが任意に登録したプロジェクト、Look、ダッシュボード等が表示されます |
ボード | Look、ダッシュボード、WebURL 等の関連情報を集約します |
フォルダ | 作成した Look やダッシュボード等はフォルダ分けして整理出来ます |
Blocks | 他社が作成した LookML プロジェクトを自身のプロジェクトにて利用できるメニューです。LookerMarketPlace にて利用可能な Looker Blocks が公開されています |
アプリケーション | Looker の拡張機能です。各種アプリケーションは Blocks 同様、LookerrMarketPlace 上にて配布されています。また、ユーザーによる独自の開発機能の作成も可能です |
作業前の設定
作業の際は開発者モードを有効化する必要があります。Home 画面左下の「DevelopmentMode」をOnにしてください。
作業の流れ
Looker のダッシュボードは以下の手順で作成します
①データソースの接続
②LookML プロジェクトの作成
③View ファイルの作成
④Mode lファイルの作成
⑤Explorer による可視化
—--------------------------------------(前編記事はここまで以降は後編記事に記載)
⑦データの可視化(ダッシュボードの作成)
⑧ダッシュボードに各種アクションを追加
⑨ダッシュボードを共有
今回使用したデータベース
予め BigQuery 上に用意した、全国展開している小売店業者の売上を想定した疑似データを使用しました。データベース内には主に「顧客情報」「店舗情報」「売上情報」等が含まれています。
以下、実際の作業内容を解説します。
まずは接続するデータソース(外部DB)を指定して、Connection(接続)を作成します。
本記事では Google BigQuery への接続方法について解説します。
※本記事では BigQuery 側の API 有効化および権限のあるサービスアカウントは作成済みとして解説します。サービスアカウント作成から手順を確認したい場合は、以下の記事に詳しく記載されていますので参照ください
Looker を BigQuery に接続してみる
https://www.softbank.jp/biz/blog/cloud-technology/articles/202312/looker-bigquery-connections/
接続手順
①Looker メニューから 「管理」 > 「接続」 を選択して、Connection ウインドゥで 「AddConnection」をクリックします
②Connection Setting の画面で以下の項目を入力します
Name:接続の名称
Dialect:接続サービス(今回は Google BigQuery Standard SQL を選択)
Project ID:GoogleCloudPlatform のプロジェクトID
DataSet:使用するデータセット(BigQuery のデータセットを指定)
Service Account Email:使用 BigQuery を使用できる GCP サービスアカウントを指定
Service Account JSON/P12 File:使用するサービスアカウントの認証キーを指定
③「Test Setting」を選択して接続テストを行い「Can Connect」と返答があれば接続完了です。
⇒「Update Connection」を押して接続作業を完了させます
①Looker メニューから「開発」>「プロジェクト」を選択。LookML Projects ウィンドゥにて「New LookML Project」をクリック
②「New Projct」画面にて以下の項目を入力して「Create Project」をクリック
Project Name:任意の値
Starting Point:データスキーマの取得方法(今回は Blank Project を選んでください)
Connection:作成した接続を選択
プロジェクトページに以下の画像のような空の Project が作成されることを確認してください
空プロジェクト作成時の状態
続いて Git の設定を行います
③Project 画面右上の「Gitを構成」をクリックします
④Configure Git 画面にて set up a bare repository instead(青字部分)をクリックします
⑤次の Create Git Repository 画面にて「Create Repository」をクリックし、リポジトリを作成します。
プロジェクトの Git 初期設定に関する詳しい内容は下記の記事を参照ください
LookML でビューやモデルを定義する
Git の説明は記事内の「Git で管理する」に記載
データセットに関する定義を記述するViewファイルを作成します
①プロジェクト画面にてファイルブラウザの「+」メニューから「テーブルからビューを作成」を選択
②「Create Views from Tables」画面にて「Connection」タブから作成した接続を選択
③接続した DB のテーブルリストが出てくるので、読み込みたいテーブルを選択し「Create Views」をクリック
※今回は小売店業者データベースから「顧客情報」「売上情報」「店舗情報」の3つのテーブルを選択しました
④選択した各テーブルの View ファイルが JSON 形式で作成されます
下の画像は m_store という店舗データのテーブルを指定して作成した View ファイルの中身です
作成したViewファイルの状態
作成された View ファイルには以下のような各種パラメータが記載されています
dimension:テーブルのカラム名
type:データ形式
sql:テーブル参照のsql文
primary_key:テーブルの一意となるプライマリキーを指定(これは手動で入れる必要があります)
続いて Model ファイルを作成してViewで定義されるデータセットの結合情報を記述します
①プロジェクト画面にてファイルブラウザの「+」メニューから「モデルの作成」を選択
②任意のモデル名を入力して「Create」を選択
③以下内容が記述された Model ファイルが作成されます。(コメントアウト部分は除いています)
ここにデータベースの接続設定を追加していきます。
connection: "xxxxxxxxxxxxxxxxxx"
include: "/views/*.view.lkml"
④ Model ファイルにデータベースの接続設定とテーブル結合情報を記述します。
(1)接続の修正
まず、connection:”xxxxxxxxxxxxxxxxxx” の記述が作成した接続名となっていない場合は作成した接続名に修正します
(2)テーブルの指定(view ファイルの指定)
コード下部に 「explore:<viewファイル名>{}」を記述します。この記述によって指定した view ファイルのテーブルを取得します。
(1)、(2)の条件を以下のように記述します
connection: "yyyyyyyyyyyyyyyyyy" #作成した接続名に変更する
include: "/views/*.view.lkml"
explore:
(3)テーブル結合の記述
さらに exploer の{}の中に View の結合条件を記述します。今回は「顧客情報」「売上情報」「店舗情報」の3つのテーブルを結合しました
explore: d_sales {
label: "Sales Data"
join: m_store {
type: left_outer
sql_on: ${store_id}=${m_store.store_id} ;;
relationship: one_to_many
}
join: m_customer {
type: left_outer
sql_on: ${customer_id}=${m_customer.customer_id} ;;
relationship: one_to_many
}
}
上記の記述では以下を内容を実行しています
>d_sales という売上情報テーブルに対し、m_store という店舗情報テーブルとの共通キーである sore_id を指定して結合
>d_sales という売上情報テーブルに対し、m_customer という顧客情報テーブルとの共通キーである customer_id を指定して結合
また、結合条件のパラメータの意味は以下の通りです
join:結合対象の view ファイル
type::結合条件(上記の例では左外部結合を指定)
sql_on:結合キーの指定(各テーブルで共通する結合キーを指定します)
relationship:結合キーの関係を記述します
View ファイルと Model ファイルの作成後はプロジェクトの構成が以下の図ようになっています
下の構成では1つの Model ファイルに3つの View ファイルのテーブル結合の情報を記述しています。
各種ファイル作成後の状態と Model ファイルの記述
⑤次の可視化のステップに進む前にプロジェクトの状態を Git に反映します
プロジェクトウィンドウの右上のボタンを押して、各種 Git アクションを行います。以下の順に Git 反映操作を実施してください。
(1)プロジェクトの変更内容に問題がない事の確認
画面右上の ValidateML(橙色) をクリックして「エラーなし」の表示が出ることを確認します
(2)変更のコミット
画面右上のボタンが Commit Change & Push に変わるので、これをクリックして変更内容の Commit を実施します。ポップアップウィンドウでコミットメッセージを記入して Commit を押してください
(3)本番環境へのデプロイ
コミットが完了すると画面右上のボタンが Deploy to Production に変わります。これを実施することで開発環境から本番環境への変更内容がデプロイされます
前編の最後に、作成した Project の簡易的な可視化を行います。可視化作業は Explore という機能を使用します
①Looker の Home 画面から「Explore」を選択
②プロジェクト一覧が出るので、今回作成したプロジェクト名を選択
③左側のフィールド欄にプロジェクトで設定したテーブルの設定が表示されるので、使用したいディメンション及び measure を選択して右上の「実行」ボタンをクリックします
Explorerの画面。左側のフィールドメニューから使用するフィールドを選択する
フィールド欄のディメンションと Measure について
フィールド欄には以下のディメンションと measure の2種類の要素があります。
・ディメンション:データテーブル内のフィールド(黒字で表示)
・measure:Looker で算出した各種集計値(オレンジ色で表示)
④処理が完了すると、Explorer 画面の右側に自動でデータテーブルとビジュアリゼーション(可視化グラフ)が表示されます。ビジュアリゼーションメニューで各グラフのアイコンを選択すると、指定したグラフに変更できます。下の画像では店舗ごとの売上を棒グラフで表しています
店舗毎の売上を棒グラフで可視化した様子
今回はじめて Looker を触ってブランクプロジェクトの作成から簡単なデータ可視化までをやってみました。筆者自身 Looker を触ってみて、以下の良い点、改善が欲しい点を感じました
使いやすいと感じた部分
・外部にあるデータベースに接続して使用するテーブルを指定するだけで、簡単にデータセットと可視化グラフを組み立てることが出来る。
・デフォルトで Git 連携機能があるため、プロジェクトの変更やバージョン管理がとてもやりやすい
少し改善が欲しいと感じた部分
・model ファイルへのテーブル結合の記述に少し専門知識を要するので、プログラミング等に慣れていない人にとって敷居が高いのではないかと思われる
Looker の可視化はフィルタ機能を使ったデータ抽出、各種アクション追加等、様々な機能を追加することが出来ます。後編ではそれらの機能を使った実践的なダッシュボード作成について解説したいと思います。
8/1-8/2にパシフィコ横浜ノースにて開催される Google 主催イベント、Google Cloud Next Tokyo'24 に最上位スポンサーとして出展いたします!
「生成 AI」をテーマにソフトバンクが実践している組織全体へ生成AIカルチャーを定着化させる取組みや、生成AI時代の快適なクラウド環境を実現するために必要な、高速・安定した通信、柔軟なネットワーク構成、セキュリティ対策まで、ソフトバンクの Google ソリューションの活用事例をご紹介します。
Google Cloud Next Tokyo ’24
2024年8月1日(木)~8月2日(金) 10時~17時30分(展示ブースは11時30分から)
パシフィコ横浜ノース 臨場開催 (地図)
無料(全来場者登録入場制)
※入場にはオンラインでの事前登録が必要です。
詳細・ご登録は 公式サイト からお願いします。申し込みの際は以下の招待コードを入力ください。
招待コード:FY24nx_pt031
ソフトバンクブース内では、Looker をテーマにしたミニセッションやデモをご案内しています。
ブースでお待ちしております!
Vertex AI Search を使って社内文書を検索する生成 AI を構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Vertex AI DIY プランでは、以下の3つのことをご体験いただけます。
詳細は、関連サービスにある「Vertex AI DIYプラン」をご確認ください。
Vertex AI Search を使って社内文書を検索する生成AIを構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Google の生成AIの導入を考えている方はもちろん、どのようなものか確認したいという方でもご活用いただけます。
Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。
MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。
条件に該当するページがございません