技術コラム

【第2回】ゼロから学ぶLookML入門

Lookerに関する前回の記事を続けるために、今回はLookerの不可欠な部分であるLookMLについて紹介します。 LookML(Looker Modeling Language)は、開発者がSQL(Structured Query Language)の使用を置き換えるためにLooker内で設計された言語です。

*****

前回の記事で述べたように、SQLには再利用性が低く、メンテナンスが難しいなど、いくつかの制限があります。 LookMLは、SQLデータベースの抽象化レイヤーを提供する独自の言語として機能します。 具体的には、開発者はLookMLを使用して、SQLデータベースのディメンション、集計、計算、およびデータの関係を記述することができます。これらによって、データベースとユーザーの間にデータベースを操作するレイヤーが作成されます。 LookMLの利点の1つは、コード、オブジェクトがすでに定義されている場合、それらを再利用できることです。

LookMLのコンポーネントに入る前に、開発者がLookMLプログラムを作成できる統合開発環境であるLookML IDEについて紹介します。 LookMLコードとオブジェクトは、Looker統合開発環境(IDE)内でのみ作成できます(「開発モード」とも呼ばれます)。 また、ユーザーが開発者から提供されたデータを探索、作成、分析できる、いわゆる「プロダクションモード」もあります。

LookMLオブジェクトとコードに変更を加える時は、開発者は開発モードになっている必要があります。 このモードでは、開発者だけが表示および編集できる完全に別個のバージョンのデータモデルが有効になります。 開発モードでは、開発者は他のユーザーに影響を与えることなくLookMLプログラムを作成およびテストできます。 開発モードは、Lookerの[開発]メニュー内の[開発モードのオン/オフ]トグルをクリックするか、キーボードショートカットのControl + Shift + Dを使用して、オンとオフを切り替えることができます。

図1. 開発モードのオン/オフを切り替える

開発モードにアクセスした後、開発者はLookMLオブジェクトの作成を開始できます。 最も基本的なLookMLオブジェクトの1つは、dimensionとmeasureです。 dimensionは、基になるデータベーステーブルにすでに存在する列に対して作成されます。 具体的には、dimensionはSQLステートメントのSELECTおよびGROUPBY句に表示されるフィールドです。 さらに、dimensionは、基になるデータを説明する「属性」と見なすこともできます。

Measureは、定義されたdimensionの集計として記述されます。 基になるデータベーステーブルにmeasureが見つかりません。 開発者は、合計やカウントなど、dimensionを集約するためのmeasureを作成する必要があります。 DimensionとMeasureを定義する例を以下に説明します。

図2.LookMLでディメンションとメジャーを定義する

LookML内の次のコアコンポーネントはviewです。 Viewは、dimensionとmeasureが定義される場所です。 一方、viewは、関連するフィールドを編成するテーブルと考えることができます。 Viewにはさまざまなタイプがあります。標準view(物理データベーステーブルの抽象化)、仮想view(SQLで定義された派生テーブル)、および永続化された派生view(スクラッチスキーマに書き込まれた派生テーブル)です。 Viewは、次のパートで紹介するexploreの構成要素です。

図3. LookMLでビューを定義する

Exploreは、ほとんどの分析が形成される主要な部分であり、ユーザーが最も良くやりとりする場所です。 Exploreには、1つ以上のviewが一緒に含まれ、通常、特定のビジネス上の課題を解決することを目的としています。Exploreは、ビジネスの課題やユースケースのために頻繁に結合される事前定義されたテーブルのセットとして考えることができます。

図4. LookMLプロジェクトで利用可能なexplore

Modelは、LookMLのオブジェクトの上位階層レベルであり、explore、view、dimension、およびmeasureの定義が含まれています。 Modelファイルでは、Lookerと基になるデータセットの接続も定義します。 また、modelファイルにはユーザーアクセス設定などのセキュリティ情報も割り当てられています。

図5. LookMLのモデルファイルの例

最高レベルのLookMLオブジェクトはプロジェクトです。 プロジェクトは基本的に、データソースまたはデータベース接続に1:1でマップするコードのライブラリです。 各プロジェクトは、Lookerの独立したインスタンスとして想像できます。 通常、異なるプロジェクトに接続されている関係のないデータセットとそのスキーマを結合することはできません。 データスキーマ間の結合は、データベースのダイアレクトと権限によって異なります。

図6. LookMLプロジェクトの例

要約すると、LookMLは、開発者がデータモデルを作成し、それらをLookerユーザーに提供できるようにするLooker内で定義された言語です。 LookMLオブジェクトとコードは、Lookerの開発モード内で作成できます。 LookMLの最小単位は、dimensionとmeasureです。 Dimensionとmeasureはview(テーブル)内で定義されます。 Exploreには、ビジネスの課題に答える背景を形成するために結合されたviewが含まれ、Model内で定義されます。 組織内には、各プロジェクトにデータモデルが含まれているさまざまなLookerプロジェクトがあります。 これらのLookMLオブジェクト間の関係は、次の図で説明できます。

図7. LookMLオブジェクトの階層

参考: https://www.looker.com
  

Related post

TOP