Wantedly Engineering Handbook
  • Wantedly Engineering Handbook
  • まえがき
  • 第一部:開発チームへの案内
    • 技術とアーキテクチャ
    • プロダクト概要(未執筆)
    • 開発チームの構造
    • コミュニケーションの全体
    • ドキュメンテーション(未執筆)
    • カレンダー
    • 障害対応の心構え
    • 効率的な社内知識の調べ方
    • 外部発信(執筆中)
  • 第二部:技術領域への案内
    • Apps
      • アプリを提供するプラットフォーム
      • デザインシステム入門
      • Web アプリのアーキテクチャ
      • プロダクトデザイナーと上手に協働するための心得
      • Web アプリのデザインシステムライブラリ
      • Web アプリ共通ライブラリ "React Shared Component" の紹介
      • モバイルアプリのアーキテクチャ
      • モバイルアプリのデザインシステムライブラリ(未執筆)
    • The System
      • protobuf スキーマと gRPC 通信
      • 実践: gRPC in Ruby
      • 実践: gRPC in Go
      • GraphQL Gateway - アプリ向けに API を公開する
      • Wantedly Visit で BFF GraphQL サーバーを辞めた理由
      • 実践: GraphQL スキーマ設計(未執筆)
      • API での認可処理 (Authorization)
      • マイクロサービス共通ライブラリ "servicex" の紹介
      • 非同期メッセージング処理入門(未執筆)
      • バッチ処理入門(未執筆)
    • Infrastructure
      • Infrastructure Squad
      • プロダクト開発のための Kubernetes 入門
      • インフラ構成概要
      • リリース・デプロイ戦略を支える技術
      • SaaS を活用する:New Relic, Honeybadger, Datadog
    • Data
      • データ基盤入門
      • レコメンデーション
      • Looker 入門
      • 推薦システムの開発に使っているツール
    • 開発プロセス
      • Git の慣習
      • ポストモーテムの取り組み
      • 負債返済日の取り組み
      • プロダクトの課題発見及び解決
      • ソフトウェアデザインの基礎
      • コードレビュー
      • コーディング規約
      • リリース・デプロイ戦略
      • 上長承認が必要な作業
      • アーキテクチャディシジョンレコード(ADR)
      • 作業ログを残す意味
      • 多言語化対応(i18n)
      • メール開発
    • 開発ツール
      • 社内利用している開発ツールの最新状況
      • kube
      • Code Coverage
      • Kubefork
  • おわりに
    • ロードマップ(未執筆)
    • Handbook の書き方
    • コントリビューター
  • 付録
    • 社内用語集
    • 主要な GitHub レポジトリのリスト(未執筆)
    • 今後の挑戦・未解決イシュー(未執筆)
    • プロダクト開発組織のバリュー(未執筆)
    • 採用についての考え方(未執筆)
GitBook提供
このページ内
  • 想定読者
  • Looker の概要
  • Looker とは
  • Looker の特徴
  • LookML プロジェクト
  • Explore と LookML プロジェクト
  • 開発の流れ
  • 開発権限の申請
  • 開発モードの有効化
  • ブランチの作成
  • LookML プロジェクトの変更
  • Explore を利用した動作確認
  • GitHub を利用したコードレビュー
  • 開発と並行したダッシュボード作成時の注意点
  • データモデリング手順
  • ビューの定義
  • Explore の定義
  • ダッシュボード

役に立ちましたか?

  1. 第二部:技術領域への案内
  2. Data

Looker 入門

前へレコメンデーション次へ推薦システムの開発に使っているツール

最終更新 1 年前

役に立ちましたか?

ここでは、Wantedly でデータを活用して可視化するために導入されているツールである Looker の概要について解説します。 Looker の開発に必要となる前提や手順の説明に限定し、開発と関連しない Looker の機能やその運用方法については扱いません。 なお、説明は概要にとどめて細かい実装の詳細などは他のドキュメントで補完していくものとします。

想定読者

主に下のような人を想定しています。

  • Looker で集計・可視化できるデータを追加・変更したい人

Looker の概要

Looker とは

Looker は、データを集計・可視化することで、より良いビジネス上の意思決定を行えるようにするための BI ツールです。

以下に Looker の代表的な機能と、各機能の概要および手順を把握するためのドキュメントを示します。 Looker にはじめて触れる場合は、これらのドキュメントを参照して概要を把握すると良いでしょう。

  • コンテンツ(ダッシュボードや Look)を検索・閲覧する

  • データを集計・可視化する

  • コンテンツ(ダッシュボードや Look)を作成・編集する

  • 開発する

以降は、開発の機能に関連する内容に限定して説明を続けます。

Looker の特徴

Looker の最大の特徴は、データモデリングによってデータの定義を管理することにあります。

適切な粒度でデータをモデル化することで、データの定義が再利用可能になり、以下の恩恵を得ることができます。

  • 類似する定義の乱立を避け、定義の一元管理が可能になる

  • 定義が利用箇所ごとに異なることを避け、同一の定義でデータを扱うことができる

また、Looker はデータに関する定義の管理をする際に、Git を利用したバージョン管理や、GitHub と連携したコラボレーションをすることを前提としています。 これらの仕組みによって、効果的、かつ、効率的にデータの定義を管理できることも、Looker の特徴のひとつと言えるでしょう。

LookML プロジェクト

Looker におけるデータに関する定義は、LookML プロジェクトで管理されます。 LookML プロジェクトとは、モデルとビューを定義するファイル群の総称です。

モデルとビューのファイルには、それぞれ以下の情報を含みます。

  • モデルのファイル

    • 利用するビュー、および、ビュー同士がどのように結合されるかの情報

  • ビューのファイル

    • 参照するテーブル、および、テーブルからどのように情報を抽出・集計するかの情報

Looker で集計・可視化できるデータを追加変更する場合、これらのファイルを変更することが必要になります。

Explore と LookML プロジェクト

Explore は、データを効率的に探索することができる Looker の強力な機能です。

LookML プロジェクトにおけるモデルのファイルには、この Explore を定義します。 また、ビューのファイルには、Explore におけるデータの抽出・集計のために利用されるディメンションやメジャーを定義します。

以下はよくあるユースケースと、それを実現するために必要となる変更対象のファイルと変更内容です。

  • 新たなビューを利用してデータを集計・可視化する

    • 変更対象:モデルのファイル

    • 変更内容:Explore の定義を追加・変更する

  • 新たな抽出・集計の方法でデータを集計・可視化する

    • 変更対象:ビューのファイル

    • 変更内容:ディメンションやメジャーの定義を追加・変更する

これらの整理を参考に、実現したいユースケースに対して何を変更すべきであるかを理解してください。

開発の流れ

LookerML プロジェクトの変更は、Looker が提供する IDE で行ないます。 まずは、サイドバーから、"Develop" > "wantedly" の順に進み、LookML プロジェクトを開きましょう。

開発権限の申請

LookML プロジェクトの変更を行なう場合、開発権限が必要になります。

開発モードの有効化

LookML プロジェクトに変更を加えるには、開発モード (Development Mode) が有効になっている必要があります。 画面上部に青色のバナーが表示されているのが、開発モードであることの目印です。

ブランチの作成

Looker は Git を利用したバージョン管理を行ないます。 開発用のブランチの作成を行ない、LookML プロジェクトに変更を加える準備をしましょう。

LookML プロジェクトの変更

Looker の IDE で、LookML プロジェクトの変更を行ないます。 モデルとビューのファイルの追加や変更を行ないます。

詳しい手順は、後述のデータモデリング手順を参考にしてください。

Explore を利用した動作確認

開発モードでは、LookML プロジェクトの変更内容を反映した結果を確認することができます。 Explore を用いて、期待するデータの抽出や集計ができるかを確認するのが一般的です。

GitHub を利用したコードレビュー

Looker は、GitHub と連携しているので、Looker の IDE からコミットなどの Git の操作だけでなく、GitHub の PR を作成することも可能です。 変更を終えたら適切な粒度でコミットし、GitHub の PR を作成してください。

LookMLで不明瞭な点があれば @wantedly/bi をレビュアーに含めてください。 それ以外は各チームのドメイン知識のあるメンバーをレビュアーにしてください。

あとは、他の開発フローと同様に、コードレビューと指摘内容に対する修正を終え、開発用のブランチをマージしてください。

開発と並行したダッシュボード作成時の注意点

他の利用者が共有されたコンテンツ(ダッシュボードや Look)を閲覧する場合は、開発モードの影響を受けず、常に本番モード (Production Mode) の LookML プロジェクトを参照していることに注意してください。 開発モードにおける LookML プロジェクトの変更を前提としたコンテンツの追加や変更を行なうと、他の利用者からはコンテンツでエラーが生じて内容を閲覧できないということが発生してしまいます。

他の利用者と共有されるコンテンツの追加や変更をする際は、必ず開発用のブランチをマージしてから行なうようにしましょう。

データモデリング手順

ここでは、スタースキーマを作成することを前提としてデータモデリング手順を説明します。

スタースキーマとは、データモデリングの代表的な手法のひとつです。 スタースキーマでは、ファクトテーブルとディメンションテーブルを組み合わせます。 各テーブルは以下のようなテーブルを指します。

  • ファクトテーブル

    • 関心対象となるイベントの発生ごとに1レコードで表現したデータ

  • ディメンションテーブル

    • 人や場所、物などの属性値を表現するデータ

以降は、具体例として、スカウトのファクトテーブルと、ユーザのディメンションテーブルを用いて、スタースキーマを作成することを想定して説明を続けます。

ビューの定義

テーブルを参照できるように、ビューのファイルの作成と定義をすることから始めます。

ビューのファイルを新規で作成する最も簡単な方法は、テーブルの情報からビューを作成する方法です。 ビューのファイルを追加したいフォルダのメニュー > "Create View From Table" を選択し、テーブルを選択してビューのファイルを作成することができます。

作成されるビューのファイルには、参照するテーブルの指定、テーブルのすべてのカラムに対応するディメンションなどが含まれる LookML の記述が含まれます。

以下は、スカウトのテーブルを参照するファクトテーブルを作成した場合の例です。

view: scouts {
  sql_table_name: `project.dataset.scouts` ;;
  drill_fields: [id]

  dimension: id {
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }

  dimension: user_id {
    type: number
    sql: ${TABLE}.user_id ;;
  }
  ...

  measure: count {
    type: count
    drill_fields: [id]
  }
}

Explore の定義

次に、定義したビューを用いて Explore の定義を行ないます。

以下は、スカウトのファクトテーブルを参照するビューと同名の explore を追加する例です。 結合されるビューとして、ユーザのディメンションテーブルを参照するビューを指定します。

explore: scouts {
  join: users {
    relationship: many_to_one
    sql_on: ${scouts.user_id} = ${users.id}
  }
}

最後に、作成したexploreをmodels ディレクトリ配下でモデルを定義するファイルを追加します。 <ドメイン名>.model.lkmlファイル内に以下のようにして、作成したexploreをincludeします。

include: "/explores/<ドメイン名>/<追加するexplore名>.explore.lkml"

ダッシュボード

Looker では、Explore をもとにグラフなど、視覚的なレポートを作成し、それらをダッシュボードという形でまとめることができます。

もっと知りたい

Explore では、様々なデータの集計・可視化を行なうことができます。 Explore の利用方法はドキュメントを参照してください。

ここまで説明した LookML プロジェクトや関連する用語についての詳細はドキュメントを参照してください。

もしくは、下記のリンクから直接 LookML プロジェクトを開くこともできます。

Looker の開発には誰でも参加できます。 開発権限がない場合はを参考に申請を行ない、開発に参加しましょう。

開発モードの有効化の方法はドキュメントを参照してください。

開発用のブランチの作成方法はドキュメントを参照してください。

詳しいビューのファイルの作成方法はドキュメントを参照してください。

作成されたビューに対してディメンションを追加するには を、メジャーを追加するには を用いて宣言を記述します。

ビューの定義を追加する際に利用できるすべてのパラメータについてはドキュメントを参照してください。

モデルのファイルに新しく Explore の定義を追加するには、を用いて宣言を記述します。 多くの場合、Explore で利用するビューと同名の explore を追加します。 スタースキーマを作成することを前提とする場合は、ファクトテーブルを参照するビューと同名の explore を追加すると良いでしょう。

また、explore パラメータ内では、Explore の表示やフィルタの動作などを様々なパラメータを用いて指定することができます。 多くの場合、Explore で結合されるビューを を用いて指定します。 スタースキーマを作成することを前提とする場合は、ディメンションテーブルを参照するビューを結合されるビューとして指定すると良いでしょう。

Explore の定義を追加する際に利用できるすべてのパラメータについてはドキュメントを参照してください。

また、定期的にダッシュボードのスナップショットを取得し、Slack に通知することもできます。詳しくは を参照してください。

Find and organize content
Retrieve and chart data
Create and edit dashboards and reports
Get ready for development
Exploring data in Looker
LookML terms and concepts
wantedly プロジェクト (internal)
開発者権限の申請 (internal)
Switching in and out of Development Mode with enhanced navigation
Working with Git branches
Adding a new view from an existing database table
dimension パラメータ
measure パラメータ
View parameters
explore パラメータ
join パラメータ
Explore parameters
Slack 統合への配信のスケジューリング
Looker documentation
Looker Connect
Write LookML