Looker Marketplace のブロックのカスタマイズ

Looker Blocks™ は一般的な分析パターンとデータソースのための事前構築済みデータモデルです。このページでは、デベロッパーが Looker Marketplace からインストールされた Looker Blocks をカスタマイズする方法について説明します。Looker Marketplace は、アプリケーション、可視化、プラグインなど、さまざまな種類の Looker コンテンツの検索、デプロイ、管理を一元的に行える場所です。

Looker Marketplace で現在利用できないブロックや、代替のブロックカスタマイズ方法など、使用可能な Looker Block の詳細については、Looker Blocks のドキュメント ページをご覧ください。

Looker Marketplace から Looker Blocks をインストールして管理するための要件

Looker Marketplace から一部のブロックをインストールして使用する前に、Looker 管理者は以下の機能を有効にする必要があります。

  • Looker Marketplace からブロックをインストールする場合は、Looker 管理者が Marketplace 機能を有効にする必要があります。
  • 特定のブロックに local_dependency パラメータが含まれている場合は、Looker 管理者がローカル プロジェクト インポートラボ機能も有効にする必要があります。これらのブロックには local_dependency パラメータが含まれます。

    • デジタルマーケティング
    • セールス分析
    • ウェブ解析

マーケットプレイスからパッケージをインストールして管理するには、ユーザーに developmanage_modelsdeploy の権限が必要です。

Looker Marketplace からの Looker Blocks のインストール管理については、Looker Marketplace のドキュメントをご覧ください。

Marketplace ブロックの LookML へのアクセス

絞り込みを使用するプロジェクトに基づくブロックは、CORE プロジェクトをリモートでインポートするための単一の CONFIG プロジェクトとして Marketplace からインストールします。このプロジェクトにはすべての LookML コードと定数パラメータ化が含まれます。

ブロックを Marketplace からインストールしたら、プロジェクト リストのプロジェクトの名前をクリックして、[開発] メニューからそのプロジェクトにアクセスできます。通常、Marketplace 絞り込みブロックの名前には、marketplace_ の後にリスティング ID が付加されます。

ブロックの読み取り専用の CORE プロジェクトを直接変更することはできませんが、ブロックの CONFIG ファイルをカスタマイズするときに、ブロックの読み取り専用の CORE ファイルで定義されている LookML をリファレンスとして使用することをおすすめします。ブロックの CORE ファイルを表示するには、IDE でブロックのプロジェクト ファイルに移動し、IDE ファイル ブラウザで imported_projects ディレクトリを展開します。

ブロック ファイルの構造

絞り込み用に構築されたブロックをインストールすると、これらのファイルはブロック プロジェクトの CONFIG 部分の一部として自動的に作成されます。

ファイル名 アクセス Function
<model_name>.model.lkml すべてのユーザーに対して読み取り専用 ブロックのインストールに関連付けられた仮想モデルファイル。は、ブロックの CORE プロジェクトからモデルのインポートを処理します。ブロックのアンインストールまたは更新を行うと、関連するモデルファイルが削除されるため、複数のブロックのインストール間でモデルの競合を防ぐことができます。
manifest.lkml develop 権限を持つユーザーが編集可能です プロジェクトとその外部依存関係を記述します。ブロック インストール用の Marketplace リスティング ID が含まれており、marketplace キーワードによりブロックの CORE プロジェクト ファイルをリモートでインポートできます。
marketplace_lock.lkml すべてのユーザーに対して読み取り専用 CORE プロジェクトのリモート インポートを処理するマニフェスト ファイルの marketplace_ref キーワードへの参照が含まれます。インストールに関連付けられている特定のリスト、バージョン、モデル情報を提供します。インストール中に構成される定数に関する情報が含まれます(Marketplace UI の [Manage] オプションを使用して更新できます)。
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 権限がある場合、カスタム LookML を CONFIG プロジェクトに追加して、追加データを混在させるか、ブロックのコア分析モデルを変更できます。新しいビューを作成して、既存の Explore に結合したり、新しいフィールドを定義したり、既存のフィールドを再定義したり、必要なラベルを適用したりして、提供する分析のモデルを作成できます。CONFIG プロジェクトで新しいファイルを作成した場合は、絞り込みファイルで include を行う必要があります。

たとえば、ブロックをインストールし、その refinements.lkml ファイルに以下が含まれている場合:

include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"

ここで、listing_idmanifest.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 プロジェクトのマニフェスト ファイルにすでに含まれているファイルにパラメータを追加できます。たとえば、ブロックを同じ Looker インスタンス上の別のブロックに結合するには、local_dependency を追加します。

local_dependency パラメータを含むブロックを使用または構築する前に、Looker 管理者は最初にローカル プロジェクトのインポート ラボ機能を有効にする必要があります。

定数の値を更新する

ブロックの定数は、インポートされた CORE プロジェクトのマニフェスト ファイルで定義されます。許可される場合は、設定時に、またはブロックを更新して、定数値をオーバーライドする必要があります。ブロックを更新するには、developmanage_modelsdeploy 権限が必要です。

ブロックを更新して定数値をオーバーライドするには、次のようにします。

  1. Looker Marketplace で、更新するブロックに移動します。
  2. [管理] ボタンをクリックします。
  3. 更新するブロックの名前の横にある歯車アイコンをクリックします。ブロックの構成ウィンドウが開きます。
  4. 必要に応じて定数値を変更します。
  5. [Update] をクリックしてブロック構成ウィンドウを閉じ、変更に合わせてブロックを更新します。

変更は、インストールされたプロジェクトの読み取り専用の marketplace_lock.lkml ファイルに反映されます。

拡張を使用する Marketplace ブロックからカスタマイズを保存する

Looker Marketplace から利用できるブロックの一部は、LookML 拡張を使用するプロジェクトで構成されています。Looker では、Looker 21.8 以降のインスタンスのすべての Marketplace ブロックが LookML の絞り込みを利用するプロジェクト構造に変換され、拡張に基づくブロックはサポートされなくなります。

Looker では、ブロックが使用可能になったときにインスタンスにあるすべての Marketplace ブロックの絞り込みベースのバージョンをインストールし、拡張で構築されたブロックを置き換えることをおすすめしています。この置換プロセスは、Looker Marketplace のブロック リストから新しい (絞り込み) ブロックをインストールし、Looker Marketplace の [管理] ページで元の (拡張) ブロックをアンインストールするだけの簡単なものですが、拡張で構築したブロックに対して行われた可能性のあるカスタマイズは保持されません。また、そのコンテンツに基づく Looker コンテンツや機能(ダッシュボード、Explore、スケジュールされたコンテンツ配信、アラート)は、元のブロックから新しいブロックに転送されません。

このセクションでは、本来なら拡張が困難か、最初からのやり直しが難しい拡張を使用したプロジェクトで構築されたブロックに対し、カスタマイズ内容を保存する方法について説明します。

ブロックのカスタマイズを保持するには、Marketplace からパッケージをインストールして管理する権限を持つユーザーが次のことを行う必要があります。

  1. 元のブロックの CONFIG プロジェクトを更新して移行の準備を行う
  2. Looker Marketplace から新しいバージョンのブロックをインストールする
  3. カスタマイズ設定を新しい Marketplace ブロックに転送する
  4. 元のブロックに基づいて Looker のコンテンツを再作成する
  5. 拡張で構築されたブロックのバージョンをアンインストールする

カスタマイズされたブロックを更新して移行を準備する

このセクションでは、拡張を使用して作成されたブロック内の主要なプロジェクト ファイルを更新して、ブロックのカスタマイズを新しい絞り込みベースのブロックにコピーできるようにする方法について説明します。拡張を使用するプロジェクトに基づくブロックは、読み取り専用の CORE プロジェクトおよび編集可能な CONFIG プロジェクトとしてマーケットプレイスからインストールされます。

  1. 次のいずれかの方法で、[開発] セクションからブロックの CONFIG プロジェクトに移動します。

    • [プロジェクト] オプションをクリックしてから、プロジェクトの名前をクリックします。
    • プロジェクトのリストで、ブロックの CONFIG プロジェクトの名前をクリックします。

    CONFIG プロジェクト名は通常 _config で終わりますが、CORE プロジェクトの名前には接尾辞がありません。

  2. プロジェクトのモデルファイルを開きます。たとえば、次のようになります。


    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
      }
    }

  1. 開発モードでは:

    1. extendsextension の行全体を削除します。
    2. explore の名前から _config を削除します。
    3. 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
      }
    }

  1. 以降の手順でこのファイルの内容をコピーして保持します。

新しい Marketplace Block のインストール

絞り込みを使用するプロジェクトに基づくブロックが、単一の LookML 編集プロジェクトとして Marketplace からインストールされます。このプロジェクトには、LookML と定数パラメータがすべて含まれているプロジェクトがリモートでインポートされます。

  1. Looker メニューバーのショップ アイコンを選択して、Looker Marketplace に移動します。
  2. 絞り込みベースの新しい Marketplace ブロックのリストをクリックします。このブロックの名前は、拡張を使用して作成された既存のブロックと同じ名前です。
  3. [インストール] をクリックして、新しいブロックをインストールします。このブロックがインストールされると、Looker Marketplace の [管理] ページに同じ 2 つのリストが表示されます。

新しい Marketplace ブロックにカスタマイズを転送する

このセクションでは、元の(拡張)ブロックに加えた変更を新しい(絞り込み)ブロックに転送する方法について説明します。

  1. [開発] セクションで、新しいブロックのプロジェクトを次のいずれかの方法で開きます。

    • [プロジェクト] オプションをクリックしてから、プロジェクトの名前をクリックします。
    • プロジェクトのリストで、ブロックのプロジェクトの名前をクリックします。

    通常、Marketplace 絞り込みブロックの名前には、marketplace_ の後にリスティング ID が付加されます。

  2. refinements.lkml ファイルに、元の(拡張)ブロックのモデルファイルの更新されたコンテンツを貼り付けます。すでに絞り込みファイルにある include ステートメントはすべて保持してください。

元のブロックに基づいて Looker コンテンツを再作成する

Marketplace ブロックの絞り込みベースのバージョンを導入する最後のステップは、元の拡張ベースのブロック バージョンをアンインストールすることです。一部の拡張ベースのブロックには、事前構築済みの LookML ダッシュボードと Explore が含まれています。ユーザーが元の(拡張)ブロックに定義された LookML ダッシュボードに基づいてアラート送信予定を作成している場合、そのブロックを Looker Marketplace からアンインストールすると、これらのアラートは無効になりスケジュールは失敗します。

これらのアラートまたは配信スケジュールを、新しい(絞り込み)ブロックの LookML ダッシュボードで再作成する必要があります。スケジュールアラートに対して適切な権限を持つ Looker 管理者とユーザーは、[管理] セクションの [アラートとスケジュール] ページで、(拡張)ブロックのダッシュボードを作成し、必要に応じて(絞り込み)ブロックの対応するダッシュボードで、新しいアラートまたはスケジュール配信を作成します。

また、必要に応じて、新しい(絞り込み)ブロックを指すために、元の(拡張)ブロックの Explore または LookML ダッシュボードを参照するその他の Looker コンテンツを修正することも必要です。

元のブロックをアンインストールする

拡張を使用して作成されたブロックのバージョンをアンインストールするには:

  1. Looker メニューバーのショップ アイコンを選択して、Looker Marketplace に移動します。

  2. Looker Marketplace で、左側のナビゲーションにある [管理] を選択して [管理] ページを開きます。

  3. [管理] ページで、ゴミ箱アイコンをクリックして、元の(拡張)ブロックをアンインストールします。バージョン番号を確認することで、拡張ブロックリストと絞り込みブロックリストを区別できます。拡張ブロックは、絞り込みブロックの 1 つのメジャー バージョンになります。たとえば、拡張ブロックがバージョン 1.0.4 で、絞り込みブロックがバージョン 2.0.0 の場合があります。

ブロックがアンインストールされると、元の(拡張)ブロックリストは Looker インスタンスの左側のナビゲーションから消え、Explore は [Explore] セクションから消え、LookML ダッシュボードは LookML ダッシュボードのフォルダ、その Blocks の LookML ダッシュボードに基づくアラートは無効になり、配信スケジュールは失敗します。

ブロックのトラブルシューティング

Marketplace ブロックにエラーが表示される場合は、スキーマがブロックの構造と一致していない可能性があります。

ブロックのインストール中に提供された定数(ブロックの接続、データベース、スキーマ)が、正しく定義されていることを確認することもできます。これを行う方法は次のとおりです。

  1. Looker メニューバーのショップ アイコンを選択して、Looker Marketplace に移動します。

  2. Looker Marketplace で、左側のナビゲーションにある [管理] を選択して [管理] ページを開きます。

  3. [管理] ページで、ブロックの歯車アイコンをクリックして構成設定を表示します。

  4. [構成を更新] ウィンドウで、ブロックが正しく構成されていることを確認します。変更を加えた後、[更新] をクリックしてブロック構成ウィンドウを閉じます。