高度なトピックは、読者が LookML と永続的な派生テーブル(PDT)について確かな知識を持っていることを前提としています。LookML の学習を開始するには、開発の準備をするドキュメント ページをご覧ください。PDT の詳細については、Looker の派生テーブルのドキュメントをご覧ください。
使用状況
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_view
が yes
に設定された 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 つあります。
- PDT の詳細パネル
- Explore の [SQL] タブ ### PDT の詳細パネル
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 の安定版データベース ビューが以下の言語に対応しています。