publish_as_db_view

高度なトピックは、読者が LookML と永続的な派生テーブル(PDT)について確かな知識を持っていることを前提としています。LookML の学習を開始するには、開発の準備をするドキュメント ページをご覧ください。PDT の詳細については、Looker の派生テーブルのドキュメントをご覧ください。

使用状況

view: my_view {
derived_table: {
publish_as_db_view: はい
...
}
}
階層
publish_as_db_view
デフォルト値
no

許可
ブール値(yes または no

特別なルール

定義

publish_as_db_view パラメータは、datagroup または sql_trigger_value キャッシュを使用する PDT でのみサポートされます。persist_for を使用した PDT はサポートされていません。

また、Looker がデータベースへの接続に使用するアカウントには、データベースの一時スキーマに対する CREATE VIEW 権限が必要です。詳細については、このページのデータベース接続には CREATE VIEW 権限が必要をご覧ください。

publish_as_db_view パラメータを使用すると、Looker の外部でクエリを実行するための PDT を報告できます。publish_as_db_viewyes に設定された PDT の場合、Looker は PDT のデータベースに安定したデータベース ビューを作成します。データベース自体で安定的なデータベース ビューが作成され、Looker の外部でクエリを実行できます。「安定的なデータベース ビュー」のコンセプトは LookML ビューとは異なります。LookML ビューは、データベース自体ではなく、Looker インスタンスに存在します。

PDT の LookML が publish_as_db_view: yes を使用して本番環境にデプロイされると、安定版のデータベース ビューが Looker リジェネレータの次のサイクルで公開(作成)されます。

Looker でデータベースに安定版データベース ビューを作成したら、データベースで安定版データベース ビューにクエリを実行する前に、PDT をビルドする必要があります。

データベース上に安定したデータベース ビューが作成される e_flights_pdt PDT を作成します。


view: e_flights_pdt {
  derived_table: {
    publish_as_db_view: yes
    datagroup_trigger: e_flights_default_datagroup
    explore_source: ontime {
      timezone: "America/Los_Angeles"
      column: flight_num {}
      column: carrier {}
      column: arr_date {}
    }
  }
  dimension: flight_num {}
  dimension: carrier {}
  dimension: arr_date {
    type: date
  }
}

e_flights_pdt の安定版データベース ビューは、PDT の LookML が本番環境にデプロイされた後、Looker リジェネレータの次のサイクルで公開されます。Looker で PDT がビルドされると、データベースで安定しているデータベース ビューにクエリを実行できます。

PDT の安定版データベース ビューにアクセスする

安定版データベース ビューが公開されている場合、安定版名を取得したら直接クエリできます。PDT の安定したビュー名を取得する方法は 2 つあります。

see_pdts 権限を持つユーザーまたはユーザーは、Looker の [管理] セクションにある [永続的な派生テーブル] ページから、安定したデータベース ビュー名を取得できます。PDT のその他メニューをクリックし、[PDT の詳細] を選択します。

このテーブルを直接クエリするには、テーブル名の前にスクラッチ スキーマ名を追加します。たとえば、スクラッチ スキーマ名が tmp の場合、次のようなコマンドを使用して、安定したデータベース ビューにクエリを実行できます。


SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt

Explore の [SQL] タブ

永続的な派生テーブルの管理者ページにアクセスできない場合は、Explore の [SQL] タブに記載されている情報を使用して、安定したビュー名を確認できます。安定ビュー名は次の形式を使用します。

[scratch schema name].[connection registration key]_[model_name]_[view_name]

たとえば、faa という名前のモデルに PDT があり、e_flights_pdt という名前のビューがある場合、必要なのはスクラッチ スキーマ名と接続登録キーだけです。どちらも、PDT のクエリの [データ] にある [SQL] タブにあります。[SQL] タブの CREATE TABLE または FROM ステートメントで、次の操作を行います。

  • 接続登録キーは 2 文字です。データベースの言語によっては、PDT のテーブル名にあるドル記号またはアンダースコアが 1 文字続きます。
  • スクラッチ スキーマ名は、CREATE TABLE または FROM の後の、「.」の前の文字列の先頭です。

次のすべての例で、接続登録鍵は LB、スクラッチ スキーマ名は tmp です。

接続登録キーの前にドル記号を使用する言語用の CREATE TABLE ステートメントを使用した例を以下に示します。

接続登録キーの前にアンダースコアを使用する言語を使用する FROM ステートメントを使用した例を次に示します。

繰り返しますが、安定版のデータベース ビューの形式は次のとおりです。

[scratch schema name].[connection registration key]_[model_name]_[view_name]

すべての値は次のとおりです。

  • [scratch schema name]tmp
  • [connection registration key]LB
  • [model_name]faa
  • [view_name]e_flights_pdt

これは PDT の安定版データベース ビュー名です。

tmp.LB_faa_e_flights_pdt

安定したデータベース ビュー名を取得したら、クエリを直接実行できます。例:


SELECT * from tmp.LB_faa_e_flights_pdt

注意点

一部の言語では追加の構文が必要です

接続登録キーが数字で始まる場合、方言によっては、安定したデータベース ビュー名の 2 番目の部分が二重引用符、バッククォート、かっこ、および同様の構文を必要とすることがあります。たとえば、Amazon Redshift では二重引用符が必要となります。たとえば、接続登録キーが数字で始まる場合、次のような形式になります。

[scratch schema name]."[connection registration key]_[model_name]_[view_name]"

たとえば、接続登録キーが 84 の場合、ピリオドの後のテーブル名の先頭を引用符で囲みます。データベースに対するクエリは次のようになります。


SELECT * from tmp."84_faa_e_flights_pdt"

必要な構文については、該当する言語のドキュメントをご覧ください。

データベース接続には CREATE VIEW 権限が必要です

データベースのビューを作成するには、Looker がデータベースへの接続に使用するアカウントに、データベースの一時スキーマに対する CREATE VIEW 権限が必要です。

Looker をデータベースに接続すると、データベースのユーザー名、パスワード、一時スキーマが構成されます。

接続をテストして、接続で安定したビュー名がサポートされているかどうかを確認します。ダイアレクトが安定したビュー名をサポートしていて、接続で PDT が有効になっている場合、Looker は接続をテストし、安定したビューが利用可能かどうかを確認します。

  • 接続で安定したビューが許可されている場合、接続テストでは Can use stable views in temp schema "docsexamples_scratch" in database "flightstats" のような結果が返されます。
  • 接続で安定したビューが許可されない場合、接続テストでは Cannot use stable views in temp schema "docsexamples" in database "flightstats" のような結果と、CREATE VIEW command denied to user 'docsexamples' などの詳細情報が返されます。

PDT の安定版データベース ビューの言語サポート

PDT の安定したデータベース ビューを作成できるかどうかは、Looker 接続で使用されているデータベース言語によって異なります。Looker の最新リリースでは、PDT の安定版データベース ビューが以下の言語に対応しています。