Looker Blocks™ は一般的な分析パターンとデータソースのための事前構築済みデータモデルです。このページでは、Looker Marketplace からインストールした Looker Blocks をデベロッパーがカスタマイズする方法について説明します。Looker Marketplace では、アプリケーション、ビジュアリゼーション、プラグインなど、さまざまな種類の Looker コンテンツの検索、デプロイ、管理を一元的に行うことができます。
現在 Looker Marketplace で利用できないブロックなど、すべての利用可能な Looker Blocks と、ブロックの代替のカスタマイズ方法については、Looker Blocks のドキュメント ページをご覧ください。
Looker Marketplace から Looker Blocks をインストールして管理するための要件
Looker Marketplace から一部のブロックをインストールして使用するには、Looker 管理者が以下の機能を有効にする必要があります。
- Looker Marketplace からブロックをインストールする場合は、Looker 管理者が Marketplace 機能を有効にする必要があります。
特定のブロックに
local_dependency
パラメータが含まれている場合は、Looker 管理者がローカル プロジェクトのインポート ラボ機能も有効にする必要があります。これらのブロックにはlocal_dependency
パラメータが含まれています。- デジタルマーケティング
- セールス分析
- ウェブ解析
ユーザーには、Marketplace からパッケージをインストールして管理するための develop
、manage_models
、deploy
権限が必要です。
Looker Marketplace から Looker Blocks をインストールして管理する方法については、Looker Marketplace のドキュメント ページをご覧ください。
Marketplace ブロックの LookML にアクセスする
絞り込みを使用するプロジェクトに基づくブロックは、単一の編集可能な CONFIG プロジェクトとして Marketplace からインストールされます。このプロジェクトには、すべての LookML コードと定数パラメータが含まれている CORE プロジェクトがリモートでインポートされます。
ブロックをMarketplace からインストールしたら、[開発] メニューからプロジェクト リストでプロジェクト名をクリックして、そのプロジェクトにアクセスできます。通常、Marketplace 絞り込みブロックの名前は、先頭に marketplace_ が付いて、その後にリスティング ID が続きます。
ブロックの読み取り専用 CORE プロジェクトを直接変更することはできませんが、ブロックの CONFIG ファイルをカスタマイズするときに、ブロックの読み取り専用 CORE ファイルで定義されている LookML を参照として使用できます。ブロックの CORE ファイルを表示するには、IDE でブロックのプロジェクト ファイルに移動し、IDE ファイル ブラウザで imported_projects
ディレクトリを開きます。
ブロック ファイルの構造
絞り込み用にビルドされたブロックをインストールすると、ブロック プロジェクトの CONFIG の一部として、次のファイルが自動的に作成されます。
ファイル名 | アクセス | 関数 |
---|---|---|
<model_name>.model.lkml |
すべてのユーザーが読み取り専用 | ブロックのインストールに関連付けられた仮想モデルファイル。ブロックの CORE プロジェクトからモデルのインポートを処理します。ブロックのアンインストールまたは更新が行われると、関連するモデルファイルが削除され、複数のブロックのインストール間でモデルの競合が発生するのを防ぎます。 |
manifest.lkml |
develop 権限を持つユーザーが編集可能 |
プロジェクトとその外部依存関係を記述します。ブロックのインストールの Marketplace リスティング ID が含まれており、marketplace キーワードを使用してブロックの CORE プロジェクト ファイルのリモート インポートを容易にします。 |
marketplace_lock.lkml |
すべてのユーザーが読み取り専用 | CORE プロジェクトのリモート インポートを処理するマニフェスト ファイルの marketplace_ref キーワードへの参照が含まれています。インストールに関連付けられている特定のリスティング、バージョン、モデルに関する情報を提供します。インストール時に構成された定数に関する情報(Marketplace UI の [管理] オプションを使用して更新可能)が含まれます。 |
refinements.lkml |
develop 権限を持つユーザーが編集可能 |
インポートした CORE プロジェクト ファイルで定義されたビューと Explore をデベロッパーが絞り込むことができます。 |
Marketplace ブロックのカスタマイズ
Development Mode を有効にして、ブロックの編集可能なファイルをカスタマイズします。
develop
権限がある場合は、ブロックの CONFIG プロジェクトの refinements.lkml
ファイルで LookML をカスタマイズできます。ブロックの CORE プロジェクトですでに定義されているビューと Explore を絞り込むことができます。また、CORE プロジェクトでまだ定義されていない新しいビューと Explore を追加することもできます。他の LookML プロジェクトで LookML の絞り込みによりできる操作は、ブロックの refinements.lkml
ファイル内でできます。絞り込まれた LookML と元の LookML を組み合わせると、オブジェクトの元の LookML のように動作します。
また、CONFIG プロジェクトの manifest.lkml
ファイルを変更して、そのブロックでキャプチャする必要がある依存関係を指定することもできます。
必要なカスタマイズを実現するために、これらのファイルを変更することだけに限定されるわけではありません。CONFIG プロジェクトに新しいファイルを作成することもできます。その場合は、refinements.lkml
ファイルで新しいファイルを include
にしてください。
絞り込みファイルのカスタマイズ
develop
権限がある場合は、カスタム LookML を CONFIG プロジェクトに追加して、追加データを混在させたり、ブロックのコア分析モデルを変更したりできます。新しいビューを作成して既存の Explore に結合したり、新しいフィールドを定義したり、既存のフィールドを再定義したり、必要に応じてラベルを適用したりして、提供したい分析のモデルを作成できます。CONFIG プロジェクトに新しいファイルを作成した場合は、絞り込みファイルでそのファイルを include
する必要があります。
たとえば、ブロックをインストールし、その refinements.lkml
ファイルに次の内容が含まれているとします。
include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"
ここで、listing_id
は manifest.lkml
ファイルの listing
パラメータの値です。
絞り込みを使用して、flights
という名前のビューに新しいディメンションを追加できます。
include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"
view: +flights {
dimension: air_carrier {
type: string
sql: ${TABLE}.air_carrier ;;
}
}
または、aircraft
という Explore にラベルを適用して、UI に「Aircraft Simplified」として表示させることができます。
include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"
explore: +aircraft {
label: "Aircraft Simplified"
}
refinements.lkml
ファイルは、ブロックの「仮想」モデルファイルに自動的に含まれます。これは、基本的に CORE プロジェクトからモデルをインポートします。
この高度なトピックの詳細については、LookML の絞り込みのドキュメントをご覧ください。
編集可能なマニフェスト ファイルのカスタマイズ
絞り込みを利用するブロックでは、CORE プロジェクトと CONFIG プロジェクトの両方にマニフェスト ファイルがありますが、編集できるのは CONFIG プロジェクトのマニフェスト ファイルのみです。
CONFIG manifest.lkml
ファイルを編集して、CORE プロジェクトのマニフェスト ファイルにすでに存在するプロジェクト パラメータにプロジェクト パラメータを追加できます。たとえば、local_dependency
を追加して、同じ Looker インスタンス上の別のブロックにブロックを結合できます。
local_dependency
パラメータを含むブロックを使用または構築する前に、Looker 管理者は最初にローカル プロジェクトのインポート ラボ機能を有効にする必要があります。
定数の値の更新
ブロックの定数は、インポートした CORE プロジェクトのマニフェスト ファイルで定義されます。定数の値をオーバーライドする場合は、許可されている場合は、構成中に Marketplace UI で行うか、ブロックを更新して行う必要があります。ブロックを更新するには、develop
、manage_models
、deploy
の各権限が必要です。
ブロックを更新して定数の値をオーバーライドするには:
- Looker Marketplace で、更新するブロックに移動します。
- [管理] ボタンをクリックします。
- 更新するブロックの名前の横にある歯車アイコンをクリックします。ブロック構成ウィンドウが開きます。
- 必要に応じて定数値を変更します。
- [更新] をクリックしてブロック構成ウィンドウを閉じ、変更内容でブロックを更新します。
変更は、インストールされたプロジェクトの読み取り専用 marketplace_lock.lkml
ファイルに反映されます。
拡張を使用する Marketplace ブロックのカスタマイズを保持する
Looker Marketplace から利用できるブロックの一部は、LookML 拡張を使用するプロジェクトで構成されています。Looker では、Looker 21.8 以降のインスタンスのすべての Marketplace ブロックが LookML の絞り込みを利用するプロジェクト構造に変換され、拡張に基づくブロックはサポートされなくなります。
Looker では、ブロックが使用可能になったときにインスタンスにあるすべての Marketplace ブロックの絞り込みベースのバージョンをインストールし、拡張で構築されたブロックを置き換えることをおすすめしています。この置換プロセスは、Looker Marketplace のブロック リストから新しい (絞り込み) ブロックをインストールし、Looker Marketplace の [管理] ページで元の (拡張) ブロックをアンインストールするだけの簡単なものですが、拡張で構築したブロックに対して行われた可能性のあるカスタマイズは保持されません。また、Looker コンテンツやそのコンテンツに基づく関数(ダッシュボード、Explore、コンテンツのスケジュール配信、アラート)は、元のブロックから新しいブロックに転送されません。
このセクションでは、本来なら拡張が困難か、最初からのやり直しが難しい拡張を使用したプロジェクトで構築されたブロックに対し、カスタマイズ内容を保存する方法について説明します。
ブロックのカスタマイズを維持するには、Marketplace からパッケージをインストールして管理する権限を持つユーザーが次の操作を行う必要があります。
- 元のブロックの CONFIG プロジェクトを更新して移行の準備を行う
- Looker Marketplace からブロックの新しいバージョンをインストールする
- カスタマイズ設定を新しい Marketplace ブロックに転送する
- 元のブロックに基づいて Looker コンテンツを再作成する
- 拡張で構築されたブロックのバージョンをアンインストールする
カスタマイズされたブロックを更新して移行の準備を行う
このセクションでは、拡張を使用して作成されたブロック内の主要なプロジェクト ファイルを更新して、ブロックのカスタマイズを新しい絞り込みベースのブロックにコピーできるようにする方法について説明します。拡張を使用するプロジェクトに基づくブロックは、読み取り専用の CORE プロジェクトおよび編集可能な CONFIG プロジェクトとしてマーケットプレイスからインストールされます。
次のいずれかの方法で、[開発] セクションからブロックの CONFIG プロジェクトに移動します。
- [プロジェクト] オプションをクリックし、プロジェクトの名前をクリックします。
- プロジェクトのリストで、ブロックの CONFIG プロジェクトの名前をクリックします。
通常、CONFIG プロジェクト名は _config で終わりますが、CORE プロジェクトの名前には通常サフィックスがありません。
プロジェクトのモデルファイルを開きます。ファイルは次のようになります。
explore: ga_sessions_config {
extends: [ga_sessions_core]
extension: required
join: user_sales_data {
sql_on: ${user_sales_data.full_visitor_id} = ${ga_sessions.full_visitor_id} ;;
}
join: sales__by__category {
sql: LEFT JOIN UNNEST(${user_sales_data.sales_by_category}) as sales__by__category;;
}
}
explore: future_input_config {
extends: [future_input_core]
extension: required
join: future_purchase_prediction {
type: left_outer
sql_on: ${future_input.full_visitor_id} = ${future_purchase_prediction.full_visitor_id} ;;
relationship: one_to_one
}
}
開発モードでは:
extends
行とextension
行全体を削除します。explore
名から_config
を削除します。explore
名の前に+
を追加します。
上記のモデルファイルの例は次のようになります。
explore: +ga_sessions {
join: user_sales_data {
sql_on: ${user_sales_data.full_visitor_id} = ${ga_sessions.full_visitor_id} ;;
}
join: sales__by__category {
sql: LEFT JOIN UNNEST(${user_sales_data.sales_by_category}) as sales__by__category;;
}
}
explore: +future_input {
join: future_purchase_prediction {
type: left_outer
sql_on: ${future_input.full_visitor_id} = ${future_purchase_prediction.full_visitor_id} ;;
relationship: one_to_one
}
}
- このファイルの内容をコピーして、後の手順で使用できるようにします。
新しい Marketplace Block のインストール
絞り込みを使用するプロジェクトに基づくブロックが、単一の LookML 編集プロジェクトとして Marketplace からインストールされます。このプロジェクトには、LookML と定数パラメータがすべて含まれているプロジェクトがリモートでインポートされます。
- Looker のメニューバーでショップ アイコンを選択して、Looker Marketplace に移動します。
- 絞り込みベースの新しい Marketplace ブロックのリスティングをクリックします。このブロックの名前は、拡張で作成された既存のブロックと同じです。
- [インストール] をクリックして、新しいブロックをインストールします。このブロックがインストールされると、Looker Marketplace の [管理] ページに 2 つの同じリスティングが表示されます。
カスタマイズ設定を新しい Marketplace ブロックに転送する
このセクションでは、元の(拡張)ブロックに加えた更新を新しい(絞り込み)ブロックに転送する方法について説明します。
[開発] セクションで、新しいブロックのプロジェクトを次のいずれかの方法で開きます。
- [プロジェクト] オプションをクリックし、プロジェクトの名前をクリックします。
- プロジェクトのリストで、ブロックのプロジェクトの名前をクリックします。
通常、Marketplace 絞り込みブロックの名前は、先頭に marketplace_ が付いて、その後にリスティング ID が続きます。
refinements.lkml
ファイルに、元の(拡張)ブロックのモデルファイルの更新された内容を貼り付けます。絞り込みファイルにすでに含まれているinclude
ステートメントは必ず保持してください。
元のブロックに基づいて Looker コンテンツを再作成する
Marketplace ブロックの絞り込みベースのバージョンを導入する最後のステップは、元の拡張ベースのバージョンのブロックをアンインストールすることです。拡張ベースのブロックには、事前構築済みの LookML ダッシュボードと Explore が含まれているものもあります。ユーザーが元の(拡張)ブロックに定義された LookML ダッシュボードに基づいてアラートや送信予定を作成している場合、そのブロックを Looker Marketplace からアンインストールすると、これらのアラートは無効になりスケジュールは失敗します。
これらのアラートや送信予定は、新しい(絞り込み)ブロックの LookML ダッシュボードで再作成する必要があります。スケジュールとアラートに対して適切な権限を持つ Looker 管理者とユーザーは、[管理] セクションの [アラートとスケジュール] ページで、(拡張)ブロックのダッシュボードを作成し、必要に応じて(絞り込み)ブロックの対応するダッシュボードで、新しいアラートまたはスケジュール配信を作成します。
また、必要に応じて、新しい(絞り込み)ブロックを指すために、元の(拡張)ブロックの Explore または LookML ダッシュボードを参照するその他の Looker コンテンツを修正することも必要です。
元のブロックのアンインストール
拡張を使用して作成されたブロックのバージョンをアンインストールするには:
Looker のメニューバーでショップ アイコンを選択して、Looker Marketplace に移動します。
Looker Marketplace で、左側のナビゲーションにある [管理] を選択して [管理] ページを開きます。
[管理] ページで、ゴミ箱アイコンをクリックして元の(拡張)ブロックをアンインストールします。バージョン番号を確認することで、拡張ブロックリストと絞り込みブロックリストを区別できます。拡張ブロックは、絞り込みブロックの 1 つのメジャー バージョンになります。たとえば、拡張ブロックがバージョン
1.0.4
で、絞り込みブロックがバージョン2.0.0
の場合があります。
ブロックがアンインストールされると、元の(拡張)ブロックリストは Looker インスタンスの左側のナビゲーションから消え、Explore は [Explore] セクションから消え、LookML ダッシュボードは LookML ダッシュボードのフォルダ、その Blocks の LookML ダッシュボードに基づくアラートは無効になり、配信スケジュールは失敗します。
ブロックのトラブルシューティング
Marketplace ブロックにエラーが表示される場合は、スキーマがブロックの構造と一致していない可能性があります。
また、ブロックのインストール時に指定された、ブロックの接続、データベース、スキーマを表す定数が正しく定義されていることを確認することもできます。そのためには、次の方法があります。
Looker のメニューバーでショップ アイコンを選択して、Looker Marketplace に移動します。
Looker Marketplace で、左側のナビゲーションにある [管理] を選択して [管理] ページを開きます。
[管理] ページで、ブロックの歯車アイコンをクリックして構成設定を表示します。
[構成を更新] ウィンドウで、ブロックが正しく構成されていることを確認します。変更を加えた後、[更新] をクリックしてブロック構成ウィンドウを閉じます。