Looker Blocks は一般的な分析パターンとデータソースのための事前構築済みデータモデルです。このページでは、デベロッパーが Looker Marketplace からインストールされた Looker Blocks をカスタマイズする方法について説明します。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 編集プロジェクトとして 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 と同様に動作します。
また、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 は、そのコンテンツ(ダッシュボード、Explore、スケジュールされたコンテンツ配信、アラート)に基づく Looker コンテンツや関数を、元のブロックから新しいブロックに転送しません。
このセクションでは、本来なら拡張が困難か、最初からのやり直しが難しい拡張を使用したプロジェクトで構築されたブロックに対し、カスタマイズ内容を保存する方法について説明します。
ブロックのカスタマイズを保持するには、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
}
}
Development Mode で、次の操作を行います。
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 で、メイン ナビゲーション パネルの [管理] を選択して [管理] ページを開きます。
[管理] ページで、ブロックの歯車アイコンをクリックして構成設定を表示します。
[構成を更新] ウィンドウで、ブロックが正しく構成されていることを確認します。変更を加えた後、[更新] をクリックしてブロック構成ウィンドウを閉じます。