publish_as_db_view

Uso

view: my_view {
  derived_table: {
    publish_as_db_view: yes
    ...
  }
}
Hierarquia
publish_as_db_view

- ou -

publish_as_db_view
Valor padrão
no

Aceita
Um booleano (yes ou no)

Regras especiais
  • A visualização estável do banco de dados é publicada (criada) no próximo ciclo do regenerador do Looker depois que o LookML da tabela persistente é implantado na produção com publish_as_db_view: yes.
  • As visualizações estáveis do banco de dados são compatíveis apenas com tabelas persistentes que usam estratégias de persistência de grupo de dados ou sql_trigger_value persistence strategies. Tabelas persistentes que usam persist_for não são compatíveis.
  • As visualizações estáveis do banco de dados são compatíveis apenas com conexões de banco de dados com permissões CREATE VIEW para o esquema temporário.

Definição

O parâmetro publish_as_db_view permite sinalizar tabelas persistentes (que incluem tanto tabelas derivadas permanentes quanto tabelas agregadas) para consulta fora do Looker. Para tabelas persistentes com publish_as_db_view definido como yes, o Looker cria uma visualização estável do banco de dados para a tabela persistente. A visualização estável do banco de dados é criada no próprio banco de dados para que possa ser consultada fora do Looker. O conceito de uma visualização estável do banco de dados é diferente de uma visualização do LookML, já que as visualizações do LookML existem na instância do Looker e não no próprio banco de dados.

A visualização estável do banco de dados será publicada (criada) no próximo ciclo do regenerador do Looker depois que o LookML da tabela persistente for implantado na produção com publish_as_db_view: yes.

Exemplos

Como criar uma visualização estável do banco de dados para uma PDT

Crie a PDT e_flights_pdt para a qual uma visualização estável do banco de dados é criada no banco de dados:


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

A visualização estável do banco de dados para e_flights_pdt será publicada no próximo ciclo do regenerador do Looker depois que o LookML da PDT for implantado na produção. Depois que o Looker criar a PDT, você poderá consultar a visualização estável do banco de dados.

Como criar uma visualização estável do banco de dados para uma tabela de agregação

Crie a tabela de agregação weekly_orders para a qual uma visualização estável do banco de dados é criada no banco de dados:

explore: orders {
  aggregate_table: weekly_orders {
    materialization: {
      sql_trigger_value: SELECT CURDATE() ;;
      publish_as_db_view:  yes
    }
    query: {
      dimensions: [orders.status, orders.created_week]
      measures: [orders.count]
    }
  }
}

A visualização estável do banco de dados para a tabela de agregação weekly_orders será publicada no próximo ciclo do regenerador do Looker depois que o LookML da tabela de agregação for implantado na produção. Depois que o Looker criar a tabela de agregação, você poderá consultar a visualização estável do banco de dados.

Como acessar a visualização estável do banco de dados

Quando a visualização estável do banco de dados é publicada para uma tabela persistente, é possível consultá-la diretamente depois de receber o nome estável. Há duas maneiras de receber o nome da visualização estável de uma tabela persistente:

Modal de detalhes da PDT

Se você for um administrador ou um usuário com a permissão see_pdts, poderá usar a página Tabelas derivadas permanentes na seção Administrador do Looker para receber o nome da visualização estável do banco de dados de uma tabela persistente:

  1. Clique no ícone do menu principal do Looker e selecione Administrador, se o menu Administrador ainda não estiver aberto. Se você estiver na seção Análise ou Desenvolver do menu principal do Looker, talvez seja necessário clicar na seta para voltar e ver o menu Administrador.
  2. No menu Administrador, selecione Tabelas derivadas permanentes.
  3. Na página Tabelas derivadas permanentes, pesquise o nome da tabela persistente.
  4. Clique no menu de três pontos da tabela persistente e selecione Detalhes da PDT.
  5. No modal Detalhes da PDT, procure o campo Nome estável.

Para consultar a tabela de visualização estável diretamente, adicione o nome do esquema de rascunho antes do nome da tabela. Por exemplo, se o nome do esquema de rascunho for tmp, você poderá consultar a visualização estável do banco de dados com um comando como este:


SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt

Guia SQL de uma análise

Se você não tiver acesso à página de administrador Tabelas derivadas permanentes, poderá usar as informações incluídas na guia SQL de uma análise para determinar o nome da visualização estável de uma tabela persistente. O nome da visualização estável usa este formato:

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

Por exemplo, se você tiver uma tabela persistente no modelo chamado faa e uma visualização com o nome e_flights_pdt, só precisará do nome do esquema de rascunho e da chave de registro da conexão. Você pode encontrar os dois na guia SQL na seção Dados de uma consulta na tabela persistente. Na instrução CREATE TABLE ou FROM na guia SQL, você pode encontrar as informações da seguinte maneira:

  • A chave de registro da conexão tem dois caracteres. Dependendo do dialeto do banco de dados, ela vai seguir um cifrão ou o primeiro sublinhado no nome da tabela persistente.
  • O nome do esquema de rascunho é o início da string após CREATE TABLE ou FROM, antes do ".".

Em todas as consultas de exemplo a seguir, a chave de registro da conexão é LB e o nome do esquema de rascunho é tmp.

Confira um exemplo de consulta SQL gerada pelo Looker com uma instrução CREATE TABLE para um dialeto que usa um cifrão antes da chave de registro da conexão. O nome da visualização é e_flights_pdt, e o nome da tabela derivada gerada é tmp.LR$LBC5Q1576702903774_e_flights_pdt.

generate derived table e_flights_pdt
Building e_flight::e_flights_pdt in dev mode on instance b6ff28049851f1954156526c66ca9912
CREATE TABLE tmp.LR$LBC5Q1576702903774_e_flights_pdt (INDEX(flight_num)) SELECT
  ontime.flight_num AS `flight_num`
  ontime.carrier AS `carrier,
    (TIMESTAMP(DATE (CONVERT_TZ(ontime.arr_time, 'UTC', 'America/Los_Angeles')))) AS
      `arr_date``
FROM `flightstats`.`ontime` AS `ontime`
GROUP BY
  1,
  2,
  3
-- finished e_flights_pdt => tmp.LR$LBC5Q1576702903774_e_flights_pdt

SELECT
  e_flights_pdt.flight_num AS `e_flights_pdt.flight_num`,
  e_flights_pdt.carrier AS `e_flights_pdt.carrier`
FROM tmp.LR$LBC5Q1576702903774_e_flights_pdt AS e_flights_pdt
GROUP BY
  1,
  2
ORDER BY
  e_flights_pdt.flight_num
LIMIT 5

Confira um exemplo de consulta SQL gerada pelo Looker com uma instrução FROM para um dialeto que usa um sublinhado antes da chave de registro da conexão. O nome da visualização é e_flights_pdt, e o nome da tabela derivada gerada é tmp.LR_LBFIM1580333699953_e_flights_pdt.


--use existing e flights pdt in tmp.LR_LBFIM1580333699953_e_flights_pdt

SELECT
  e_flights_pdt.id AS `e_flights_pdt.id`,
  DATE(e_flights_pdt.faa_event_date) AS `e_flights_pdt. faa_event_date`
FROM tmp.LR_LBFIM1580333699953_e_flights_pdt AS e_flights_pdt

GROUP BY 1,2
ORDER BY DATE(e_flights_pdt.faa_event_date) DESC
LIMIT 5

Novamente, a visualização estável do banco de dados tem o seguinte formato:

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

Confira todos os valores:

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

Este é o nome da visualização estável do banco de dados da tabela persistente:

tmp.LB_faa_e_flights_pdt

Depois de receber o nome da visualização estável do banco de dados, você pode consultá-la diretamente. Exemplo:


SELECT * from tmp.LB_faa_e_flights_pdt

Informações importantes

Alguns dialetos exigem sintaxe adicional

Se a chave de registro da conexão começar com um número, alguns dialetos vão exigir aspas duplas, acentos graves, colchetes ou sintaxe semelhante na segunda parte do nome da visualização estável do banco de dados. Por exemplo, o Amazon Redshift exige aspas duplas. Portanto, se a chave de registro da conexão começar com um número, este será o formato:

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

Por exemplo, se a chave de registro da conexão for 84, você vai colocar aspas na segunda parte do nome da tabela estável, após o ponto. Assim, as consultas ao banco de dados serão parecidas com esta:


SELECT * from tmp."84_faa_e_flights_pdt"

Consulte a documentação do seu dialeto para informações sobre a sintaxe específica necessária.

A conexão do banco de dados precisa ter permissões CREATE VIEW

Para criar uma visualização no banco de dados, a conta que o Looker usa para se conectar ao banco de dados precisa ter permissões CREATE VIEW para o esquema temporário do banco de dados.

O nome de usuário, a senha e o esquema temporário do banco de dados são configurados quando você conecta o Looker ao banco de dados.

Você pode testar sua conexão para saber se os nomes de visualização estáveis são compatíveis com ela. Se o seu dialeto for compatível com nomes de visualização estáveis e se as PDTs estiverem ativadas na conexão, o Looker vai testar a conexão para saber se ela permite visualizações estáveis:

  • Se a conexão permitir visualizações estáveis, o teste de conexão vai retornar um resultado como Can use stable views in temp schema "docsexamples_scratch" in database "flightstats".
  • Se a conexão não permitir visualizações estáveis, o teste de conexão vai retornar um resultado como Cannot use stable views in temp schema "docsexamples" in database "flightstats", além de outros detalhes, como CREATE VIEW command denied to user 'docsexamples'.

Suporte de dialeto para visualizações estáveis do banco de dados

A capacidade de criar uma visualização estável do banco de dados de tabela persistente depende do dialeto do banco de dados que a conexão do Looker está usando. Na versão mais recente do Looker, os seguintes dialetos são compatíveis com a visualização estável do banco de dados de tabela persistente:

Dialeto Compatível?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13+
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud AlloyDB for PostgreSQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica