Looker 6.8のリリースにおいて、プライベート・リポジトリに対してリモート・プロジェクト・インポートが可能になりました。以前のリリースにおいて、他のリポジトリにあるLookMLプロジェクトをインポートする機能はありましたが、今回のリリースにおいてプライベート・リポジトリに対応したことにより、企業内で「ハブ・アンド・スポーク」アーキテクチャによるLookMLの開発が可能になります。
こちらのImporting Files from Other Projectsにて記載のインポート内容に、プライベート・リポジトリのインポート方法を追記したものになります。
##企業向けプロジェクトのインポート:「ハブ・アンド・スポーク」アーキテクチャ##
ご利用組織が大きくなってくると、開発チームがすべての部門のデータニーズを管理できなくなり、ある程度の委任が必要となってきます。各部署が管理できるようにプロジェクトを分割と同時に、一貫性を維持していく必要があります。
この場合、プロジェクトのインポートを使用して、一元化された、統制のとれたビジネスロジックを各部門のプロジェクトに展開できます。これを「ハブ・アンド・スポーク」アーキテクチャと呼びます。
ハブ・アンド・スポークアーキテクチャでは、データチームがコアプロジェクト(「ハブ」)を管理し、各部門が独自のプロジェクト(「スポーク」)を管理します。ハブにはユニバーサルビジネスロジックが含まれていますが、スポークにはドメイン固有のロジックが含まれています。プジェクトのインポートによってこのアーキテクチャが実現できます。
##設定手順##
このモデルで開発をするためには、以下が必要になります。
- Git上でのハブおよびスポークそれぞれのリポジトリ
- Lookerでインポート機能の有効化
- ハブ側プロジェクトでのマニュフェストファイルの作成
- インポート・リポジトリに対しての認証設定
- リモートリポジトリのファイル参照
###Git上でのハブおよびスポークそれぞれのリポジトリ###
Lookerの開発でご利用いただいているGitリポジトリがあると思いますので、分割対象となるプロジェクトそれぞれでリポジトリを用意してください。
###インポート機能の有効化###
この機能は、現在ベータ版として提供されています。管理者パネルからLabsセクションを開いて頂き、Project ImportのトグルをONにしてください。
###ハブ側プロジェクトでのマニュフェストファイルの作成###
インポートをするプロジェクトで、マニュフェストファイルを追加します。
以下のようにコードを追加します。バージョンを指定する必要があります
project_name:"プロジェクト名"
remote_dependency: 参照名 {
url:"user@path.to.repository.git"
ref:"参照するバージョンのSHAキー"
}
###インポート・リポジトリに対しての認証設定###
上記のマニフェストファイルを追加すると、プロジェクト設定画面において、以下のようにImport Credentialsというタブが表示されます。
次に、Editアイコンをクリックすると以下のようにデプロイキーが表示されますので、コピーしてインポート元のGitリポジトリに追加します。(インポート元のプロジェクトを変更する必要が無いと思いますので、write_accessは不要です)
デプロイキーの設定が完了後にLookerのプロジェクト設定画面に戻り、Testボタンをクリックすると正常にファイルをインポートできるかを確認できます。
###リモートリポジトリのファイル参照###
インポートの設定が完了したら、以下のようにViewを拡張したり
include: "//sample1/order_items.view.lkml"
view: extended_order {
extends: [order_items]
dimension: tax {
type: number
sql: ${sale_price} * 0.08 ;;
}
measure: total_tax {
type: number
sql: ${total_revenue} * 0.08 ;;
}
measure: total_revenue_with_tax {
type: number
sql: ${total_revenue} + ${total_tax} ;;
}
}
modelを拡張することが可能です。
include: "*.view.lkml" # include all views in this project
include: "//sample1/*.view.lkml"
include: "//sample1/*.model.lkml"
explore: extended_order {
}
いかがでしたでしょうか。弊社では、Looker Blocksという、分析パターンやデータソースがわかっている場合には、そのままお使いいただけるLookMLコードをご提供しておりますので、上記方法で参照していただくことも可能です。