ユーザーガイド 基本情報 ヘルプセンター ドキュメンテーション コミュニティ トレーニング
LookML
旧 LookML
新 LookML
Looker
  
English
Français
Deutsch
日本語
LookMLとは?

LookMLはSQLデータベース内のディメンション、集計、計算、およびデータ関係を記述するための言語です。LookerはLookMLで記述されたモデルを使用して、特定のデータベースに対してSQLクエリを作成します。

LookMLプロジェクト

LookMLプロジェクトとは、Gitリポジトリを介してバージョン管理を一括で行うことの多いモデル、ビュー、ダッシュボートのファイルを集めたものです。モデルファイルには、使用するテーブルと結合の方法に関する情報が含まれています。ビューファイルには、各テーブル(あるいは、結合により許可されている場合には複数のテーブル)の情報をどう計算すべきかについての情報が含まれています。

LookMLは構造をコンテンツから切り離します。そのため、クエリの構造(テーブル間の結合様式)はクエリのコンテンツ(アクセスすべき列、派生フィールド、計算すべき集計関数、適用すべきフィルタリング条件式)とは独立しています。

LookMLはクエリのコンテンツをクエリの構造から分離します

Lookerによって生成されるSQLクエリ

データ分析のために、LookMLではDRY原則(Don’t Repeat Yourself)に基づくスタイルを促進しています。つまり、ある箇所に1回SQL式を書けば、Lookerがこのコードを使ってその場に応じたSQLクエリを繰り返し生成していくのです。ビジネスユーザーの方々はこの結果、複雑なクエリをLooker内で構築することが可能になります。SQL構文の複雑さに煩わされることなく、必要なコンテンツだけに集中することができます。

複数テーブル(受注およびユーザー)の数値を結合できるLookerでのクエリ構築

上の図では、エンドユーザーは結合やフィルタリングを行う上でSQL式を理解する必要がありません。

データ構造を表現するための従属言語

LookMLはmakeのような従属言語で、CやRubyといった命令型言語とは反対の性質を持ちます。LookMLはデータモデリングのために定義済みのデータタイプと構文を提供します。LookMLの構文は構造が明瞭で学びやすくなっています。(プログラミング言語の経験は不要です。知っておくべきことはすべてここに記載されています。)LookMLは個々のSQLダイアレクトには依存せず、SQL式をカプセル化してあらゆるSQL実装をサポートします。

コードの例

下記に、最小限でありつつ完成形となっているモデルの例を示します。LookMLがどのようなものか、感じを掴んでいただくために紹介しています。今の段階では、細かい部分を気にする必要はありません。コードの感じを俯瞰的に掴んでみてください。

スコーピングの操作は{ }を使って行います。今後のレッスンでは以下のキーワードについて学んでいきます:explorejoinviewdimensionmeasuretypeset

LookMLのモデル例:eコマース店舗

###################################### # FILE: ecommercestore.model.lkml # # Define the explores and join logic # ###################################### connection: order_database include: "*.view.lkml" explore: orders { join: customers { sql_on: ${orders.customer_id} = ${customers.id} ;; } }   ########################################################## # FILE: orders.view.lkml # # Define the dimensions and measures for the ORDERS view # ########################################################## view: orders { dimension: id { primary_key: yes type: number sql: ${TABLE}.id ;; } dimension: customer_id { # field: orders.customer_id sql: ${TABLE}.customer_id ;; } dimension: amount { # field: orders.amount type: number value_format: "0.00" sql: ${TABLE}.amount ;; } dimension_group: created { # generates fields: type: time # orders.created_time, orders.created_date timeframes: [time, date, week, month] # orders.created_week, orders.created_month sql: ${TABLE}.created_at ;; } measure: count { # field: orders.count type: count # creates a sql COUNT(*) drill_fields: [drill_set*] # list of fields to show when someone clicks 'ORDERS Count' } measure: total_amount { type: sum sql: ${amount} ;; } set: drill_set { fields: [id, created_time, customers.name, amount] } }   ############################################################# # FILE: customers.view.lkml # # Define the dimensions and measures for the CUSTOMERS view # ############################################################# view: customers { dimension: id { primary_key: yes type: number sql: ${TABLE}.id ;; } dimension: city { # field: customers.city sql: ${TABLE}.city ;; } dimension: state { # field: customers.state sql: ${TABLE}.state ;; } dimension: name { sql: CONCAT(${TABLE}.firstname, " ", ${TABLE}.lastname) ;; } measure: count { # field: customers.count type: count # creates a sql COUNT(*) drill_fields: [drill_set*] # fields to show when someone clicks 'CUSTOMERS Count' } set: drill_set { # set: customers.drill_set fields: [id, state, orders.count] # list of fields to show when someone clicks 'CUSTOMERS Count' } }

基本となるLookMLの要素の概要

以下の図は、基本となるLookMLの要素とそれらの関係性を示しています。詳細については、LookMLの用語と概念をご覧ください。

Top