Looker Blocks は一般的な分析パターンとデータソースのための事前構築済みデータモデルです。このページでは、Looker Marketplace からインストールした Looker ブロックをデベロッパーがカスタマイズする方法について説明します。Looker Marketplace では、アプリケーション、ビジュアリゼーション、プラグインなど、さまざまな種類の Looker コンテンツの検索、デプロイ、管理を一元的に行うことができます。
すべての利用可能な Looker Blocks と、ブロックの代替のカスタマイズ方法については、Looker Blocks のドキュメント ページをご覧ください。
Looker Marketplace から Looker Blocks をインストールして管理するための要件
Looker Marketplace から一部のブロックをインストールして使用する前に、次の要件に注意してください。
- Looker Marketplace を通じてブロックをインストールする場合は、Looker 管理者が Marketplace 機能を有効にする必要があります。
- ユーザーには、Marketplace からパッケージをインストールして管理するための
develop
、manage_models
、deploy
権限が必要です。 特定のブロックに
local_dependency
パラメータが含まれている場合、ブロックはローカル プロジェクトのインポート プロセスを使用します。プロジェクトのインポートの詳細については、他のプロジェクトからのファイルのインポートに関するドキュメント ページをご覧ください。次のブロックにはlocal_dependency
パラメータが含まれています。- デジタルマーケティング
- セールス分析
- ウェブ解析
Looker Marketplace から Looker Blocks をインストールして管理する方法については、Looker Marketplace のドキュメント ページをご覧ください。
Marketplace ブロックの LookML にアクセスする
絞り込みを使用するプロジェクトに基づくブロックは、すべての LookML コードと定数パラメータを含む CORE プロジェクトをリモートでインポートする単一の編集可能な CONFIG プロジェクトとして Marketplace からインストールされます。
ブロックを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 ブロックのカスタマイズ
開発モードを有効にして、ブロックの編集可能なファイルをカスタマイズします。
develop
権限がある場合は、ブロックの CONFIG プロジェクトの refinements.lkml
ファイルで LookML をカスタマイズできます。ブロックの CORE プロジェクトですでに定義されているビューと Explore を絞り込んだり、CORE プロジェクトですでに定義されていない新しいビューと Explore を追加したりできます。他の LookML プロジェクトで LookML の絞り込みによりできる操作は、ブロックの refinements.lkml
ファイル内でできます。絞り込みと元の LookML を組み合わせると、オブジェクトの元の LookML と同様の動作になります。
CONFIG プロジェクトの manifest.lkml
ファイルを変更して、そのブロックでキャプチャする必要がある依存関係を指定することもできます。
必要なカスタマイズを実現するために、これらのファイルを変更することだけに限定されるわけではありません。CONFIG プロジェクトで新しいファイルを作成することもできます。ただし、refinements.lkml
ファイルで新しいファイルを include
してください。
絞り込みファイルのカスタマイズ
develop
権限がある場合は、CONFIG プロジェクトにカスタム LookML を追加して、追加のデータを組み込んだり、ブロックのコア分析モデルを変更したりできます。新しいビューを作成して既存の Explore に結合したり、新しいフィールドを定義したり、既存のフィールドを再定義したり、必要に応じてラベルを適用して、提供する分析のモデルを作成したりできます。CONFIG プロジェクトに新しいファイルを作成した場合は、絞り込みファイルで include
する必要があります。
たとえば、ブロックをインストールし、その refinements.lkml
ファイルに次の LookML が含まれているとします。
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 インスタンス上の別のブロックに結合できます。
定数の値を更新する
ブロックの定数は、インポートした 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 は、元のブロックから新しいブロックに、そのコンテンツに基づく 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
の場合があります。
ブロックのトラブルシューティング
Marketplace ブロックにエラーが表示される場合は、スキーマがブロックの構造と一致していない可能性があります。
ブロックの接続、データベース、スキーマを表す、ブロックのインストール時に指定された定数が正しく定義されていることを確認することもできます。その手順は次のとおりです。
Looker のメニューバーでショップ アイコンを選択して、Looker Marketplace に移動します。
Looker Marketplace で、メインのナビゲーション パネルにある [管理] を選択して [管理] ページを開きます。
[管理] ページで、ブロックの歯車アイコンをクリックして構成設定を表示します。
[構成を更新] ウィンドウで、ブロックが正しく構成されていることを確認します。変更を加えた後、[更新] をクリックしてブロック構成ウィンドウを閉じます。