システム的にデータ構造を管理して正確なデータ利用を促すアプローチはLookerの唯一無二の特徴です。その特徴がLooker導入の決め手の1つになりました。Lookerはデータガバナンス機能として以下の機能を備えています。LookMLデータディクショナリGitによるバージョン管理LookMLLookerではLookMLというYAML方式のデータモデリング言語が採用されています。SQLに代わりLookMLで定義・集計などを記述します。SQLは言語の特性上クエリ間の情報を転用しづらい側面がありますが、LookMLはSQLが不得意な再利用性・拡張性をカバーできます(LookMLの詳しい説明は公式ドキュメントをご覧ください)。「テストアカウントは計上しない」という集計定義があったとします。いうdimensionを定義します。いう表現で他の箇所で参照できます。valueに記されているIN句のみ修正すれば、テストアカウントに関する条件が含まれる全ての定義が変更されたことになります。これにより、システム仕様が変更された際に生じる手間が従来のSQLファイル修正と比較すると少なくなる効果があります。いうdimensionで定義します。以下のYAMLではユーザー数を集計する際にテストアカウントを除くフィルタを適用させるという定義になります。}}このように、Lookerを用いると無機質に掃き出されたシステムデータをビジネス定義に即した意味あるデータへ変換するELTが容易にできるようになります。Lookerは仮想的にデータモデルの変換・派生カラムの作成ができるので、集計途中の中間データを不必要に量産しないメリットもあります。DDLをLookML化した一部を以下に示します。いうkeyが用意されており、これらのkeyでデータ定義をラベリングできます。データ定義をラベリングできるということはデータディクショナリとしての使用が可能であることを意味します。開発速度がとても速いWeb開発の現場でDB定義書のようなドキュメントでメタデータ管理を行った場合、ドキュメントがシステムに追いつかない状態、つまりドキュメントとプログラムとの乖離がしばしば発生します。Lookerは任意のデータソースに存在するテーブルの各DDLから作成した各Viewを集計フローの根幹として使用します。そのため、正確な集計を行うために最新のメタデータに更新せざるをえなくなります。これにより、Looker内ではデータディクショナリの最新状態を保つことができます。Gitによるバージョン管理Lookerは、LookMLのソースコード管理にGitを採用して、ソースコードの品質を担保しています。GitHubなどのGitを用いたソフトウェア開発のプラットフォームにも連携できます。運用中のGitHubと連携することで複数人開発・相互レビューといった開発体制をとることができて、データチームでもこの体制を取り入れています。いったコーディング規約を決め、互いにReviewしやすい開発体制を敷いています。データ集計基盤(改)の設定フローデータチームでは今回の取り組みをデータ集計基盤(改)として開発しています。データ集計基盤(改)は以下のフローでデータマート生成の設定が行われます。データマートView生成)。ちなみに、データ集計基盤(改)は「データマート作成のLookML内では原則SQL文完成形を直接書かない」というポリシーを持っています。いったSQL文を直接LookMLに入れ込むことはシステム的に可能ですが、それをあえて禁止しています。いうのも、LookerがLookMLを基にクエリを自動生成してくれるので、このポリシーがクエリ品質の均一化・データマート作成過程におけるブラックボックス化防止に繋がるためです。データ集計基盤(改)でのデータマート更新Lookerには好きなタイミングでアウトプットを中間データとして保存する機能が存在するのですが(PDT)、データ集計基盤(改)では、既存のデータ処理基盤との兼ね合いを考慮して、GCPの機能を用いてデータマートを更新しています。DAGを起動させます。API(Lookerが提供しているAPI)にリクエストを送り、そこからデータマート更新用クエリをレスポンスデータとして取得します。APIで取得したクエリをBigQueryクライアントライブラリを使用したSDKを通して実行することで、各データマートに即した更新を行っています。まとめLookerを導入してデータ集計基盤の改善を図ることでデータユーティリゼーションを向上させる取り組みを報告させていただきました。現在、データチームではデータマート更新処理をこのデータ集計基盤(改)へ順次移行している最中です。移行中はBigQueryの最適パフォーマンスに即したLookML記法を研究してブラッシュアップしていったり...とまだ発展途上のデータ集計基盤(改)ですが、課題が徐々に解決しており、その効果も表れています。ビッグデータを集計するシステムを運用していると、冒頭に紹介した諸問題を抱えているにもかかわらずその最適なソリューションはなかなか見つからなく、苦い思いをしている方も少なくないのかなと思います(少なくとも私は長年そう思っていた)。この記事で快適なビッグデータのシステム運用の手助けになれば幸いです。このように、データチームではエンジニアの強みを生かしながらデータを中心とした技術課題・マーケティング課題に取り組んでいます。SQLDatabase列ストアインデックスを利用するこんにちは。開発部に所属している鶴見です。SQ...2018-10-04GitHubで管理されたデータマート構築基盤の紹介こんにちは。BLOGプロフィール株式会社ZOZOテクノロジーズのテックブログです。