Looker 拡張フレームワーク

Looker 拡張フレームワークは、次のようなカスタムの JavaScript データ アプリケーションやツールを構築するための労力と複雑さを大幅に削減する開発フレームワークです。

  • 社内向けプラットフォーム アプリケーション
  • お客様の外部プラットフォーム(Looker のデータで構築された組み込み型分析アプリケーションのカスタマー ポータルなど)
  • 対象となる内部ツール
  • 外部アプリケーションに埋め込むアプリケーション

Looker Marketplace から利用できる Looker の拡張機能の例としては、現在、Looker データ ディクショナリLookML ダイアグラムなどがあります。

拡張フレームワークを使用する理由

ウェブ アプリケーションの構築には、簡単で楽しい部分もありますが、明らかに時間がかかるうえに、楽しいとは言い切れない部分もあります。拡張フレームワークにより、あまり楽しくないタスクの多くを効率化できます。

拡張フレームワークでは、ウェブ アプリケーションの構築といった面倒な作業の一部が管理されるため、すぐに開発を開始できます。拡張フレームワークで作成されたカスタム アプリケーションやツールは Looker 内からアクセス可能で、Looker では次のような種類の機能に対応できます。

拡張フレームワーク機能

Looker の拡張フレームワークには次の機能があります。

  • Looker Extension SDKLooker public API にアクセスし、Looker 環境内部とやり取りするための機能を提供します。
  • Looker コンポーネント。拡張機能内で使用できる事前構築済みの React UI コンポーネントのライブラリです。
  • Embed SDK。拡張機能内へのダッシュボード、Looks、Explores の埋め込みに使用できるライブラリです。サンプルコードについては、キッチンシンクの拡張機能をご覧ください。Embed SDK を使用して、拡張機能をサードパーティ アプリケーションに埋め込むこともできます。Explore、Look、ダッシュボードを拡張機能に埋め込む場合は、ブラウザで Cookie を有効にする必要があります。
  • create-looker-extension ユーティリティ。必要な拡張機能ファイルと依存関係をすべて含む基本的な拡張機能を作成します。また、この拡張機能を構築のベースとなる開始点として使用できます。
  • Looker 拡張フレームワークのサンプル リポジトリ。すぐに作業を開始するためのテンプレートとサンプル拡張機能が用意されています。
  • サードパーティの API エンドポイントにアクセスし、拡張機能にサードパーティ データを追加する機能。
  • Looker で全画面表示の拡張機能を作成する機能。内部および外部のプラットフォーム アプリケーションで全画面表示の拡張機能が使用できます。

    全画面表示の拡張機能では、拡張機能専用ユーザー グループにユーザーを追加すると、一連のユーザーが拡張機能から Looker の他の部分に移動できないようにすることが可能です。Looker のナビゲーション バーを、拡張機能 URL で /extensions/spartan に置き換えて削除することもできます。

  • 作成された拡張機能にアクセスキーを構成する機能。この機能を使用することで、ユーザーは拡張機能の実行にキーの入力が必要になります。これは拡張機能に課金する場合に便利ですが、標準の Looker 権限を使用して、拡張機能にアクセスできないユーザーのアクセスを制御する必要があります。

  • Looker 24.0 以降では、拡張機能をダッシュボードのタイル内で実行するように開発できます。タイルまたはビジュアリゼーションとして実行できる拡張機能は、ダッシュボードの編集モード中に追加するか、Explore からビジュアリゼーションとしてダッシュボードに保存できます。拡張機能は、LookML ダッシュボードでタイルとして構成することもできます。

拡張フレームワークの要件

Looker 拡張フレームワークを使用して開発するには:

  • インスタンスに対する LookML デベロッパー権限が必要です。
  • Looker 管理者は、拡張フレームワーク機能を有効にする必要があります。
  • JavaScript や TypeScript の十分な知識があることが推奨されます。
  • React での開発をおすすめしますが、未加工の JavaScript 向けの拡張 SDK も利用できます。

Looker 内部で実行するには、その機能に関係なく、すべての拡張機能が Looker 内部に次の要素を持っている必要があります。

  • 次の要件を満たす LookML プロジェクト

  • LookML モデルファイルには、インスタンス上の有効なデータベース接続を指す connection パラメータが必要です。

  • プロジェクト マニフェスト ファイルには、application パラメータが必要です。application パラメータは、拡張機能にラベルを割り当て、Looker に拡張機能の JavaScript を検索する場所を指示し、拡張機能のエンタイトルメントのリストを提供します。エンタイトルメントは、拡張機能がアクセスできる Looker リソースを定義します。そのリソースが権限のリストに含まれていない場合、拡張機能は Looker リソースにアクセスできません。

    application パラメータを使用したプロジェクト マニフェスト ファイルの例を以下に示します。

      project_name: "super_duper_extension"
      application: super_duper_extension {
        label: "Super Duper Extension"
        url: "http://localhost:8080/dist/bundle.js"
        mount_points: {
          standalone: no
        }
        entitlements: {
          local_storage: no
          navigation: no
          new_window: no
          new_window_external_urls: []
          use_form_submit: yes
          use_embeds: no
          use_downloads: no
          core_api_methods: []
          external_api_urls: []
          oauth2_urls: []
          scoped_user_attributes: []
          global_user_attributes: []
        }
      }
    

    詳細については、application パラメータのドキュメント ページをご覧ください。

Looker 拡張フレームワークを使って開発を始める

最も簡単な方法は、最初にテンプレートから新しいスターター拡張機能を生成し、そのスターターをカスタマイズして機能を追加することです。これにより、手作業で行うのが難しいことのあるすべての構成とパッケージングも、正しく行われます。拡張機能用の新しい Looker プロジェクトを作成し、スターター拡張機能を生成する手順については、Looker の拡張機能の構築ドキュメント ページをご確認ください。

よりカスタマイズされたテンプレートや高度なテンプレートについては、Looker 拡張フレームワークのサンプル リポジトリをご覧ください。このリポジトリ内の拡張機能はすべて、クローンを作成して、プロジェクトの開始点として再利用できます。

簡単な拡張機能を作成して、すべてが正常に動作していることを確認したら、別の機能やカスタマイズの追加を開始できます。

  • 一般的なユースケースのリストとサンプルコードについては、Looker の拡張フレームワークのコード例のドキュメントをご覧ください。

  • Looker UI コンポーネントのサイトを参照して、UI とレイアウトの迅速な開発にコンポーネント ライブラリを使用します。

  • Looker Extension Kitchensink Templateは、さまざまな拡張機能の例を示す拡張機能です。このテンプレートは、規範や参考資料として利用できますが、出発点や実際のテンプレートとして使用することはできません。まずは、拡張機能生成ツールを使用するか、最も簡単なサンプルからクローンを作成することをおすすめします。

  • ダッシュボード タイルとして使用できる拡張機能の例も用意されています。タイル可視化拡張機能では、拡張フレームワークを使用してカスタム可視化を作成する方法が示されます。タイル SDK 拡張機能では、タイル拡張機能に固有の API メソッドが表示されます。