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 a LookML da tabela persistente é implantada na produção com publish_as_db_view: yes
  • As visualizações de banco de dados estáveis são compatíveis apenas com tabelas persistentes que usam grupo de dados ou sql_trigger_value estratégias de persistência. Tabelas persistentes que usam persist_for não são compatíveis.
  • As visualizações estáveis de banco de dados são compatíveis apenas com conexões de banco de dados que têm permissões CREATE VIEW para o esquema temporário.

Definição

O parâmetro publish_as_db_view permite sinalizar tabelas persistentes (que incluem tabelas derivadas persistentes e tabelas agregadas) para consultas 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 de banco de dados estável é diferente de uma visualização do LookML, já que as visualizações do LookML existem na sua instância do Looker e não no banco de dados em si.

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

Exemplos

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

Crie a PDT e_flights_pdt para que uma visualização estável do banco de dados seja criada nele:


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 a LookML da PDT for implantada na produção. Depois que o Looker cria a PDT, é possível consultar a visualização estável do banco de dados.

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

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

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 agregada weekly_orders será publicada no próximo ciclo do regenerador do Looker depois que o LookML da tabela agregada for implantado na produção. Depois que o Looker cria a tabela agregada, é possível 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 assim que você recebe o nome estável. Há duas maneiras de conseguir o nome da visualização estável de uma tabela persistente:

Modal de detalhes da TDP

Se você for um administrador ou um usuário com a permissão see_pdts, use a página Tabelas derivadas persistentes na seção Administrador do Looker para acessar o nome estável da visualização 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 Desenvolvimento do menu principal do Looker, talvez seja necessário clicar na seta para voltar e acessar o menu Administrador.
  2. No menu Administrador, selecione Tabelas derivadas persistentes.
  3. Na página Tabelas derivadas persistentes, pesquise o nome da sua tabela persistente.
  4. Clique no menu de três pontos da sua tabela persistente e selecione Detalhes da PDT.
  5. No modal Detalhes da PDT, procure o campo Nome estável.

Para consultar diretamente a tabela de visualização estável, adicione o nome do esquema temporário 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 persistentes, use as informações incluídas na guia SQL de uma Análise para determinar o nome da visualização estável de uma tabela persistida. 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ó vai precisar do nome do esquema temporário e da chave de registro da conexão. Você pode encontrar os dois na guia SQL da 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 de conexão tem dois caracteres. Dependendo do dialeto do banco de dados, ela segue 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 de ".".

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 estável da visualização de banco de dados da tabela persistida:

tmp.LB_faa_e_flights_pdt

Depois de ter o nome estável da visualização 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, crases, colchetes ou uma 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 sua 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, coloque aspas na segunda parte do nome da tabela estável, depois do ponto. Assim, suas consultas ao banco de dados ficariam 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 com o 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 a ele 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 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 verificar se ela permite visualizações estáveis:

  • Se a conexão permitir visualizações estáveis, o teste 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 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 a dialetos para visualizações estáveis de banco de dados

A capacidade de criar uma visualização de banco de dados estável de uma tabela persistente depende do dialeto do banco de dados usado pela sua conexão do Looker. Na versão mais recente do Looker, os seguintes dialetos são compatíveis com a visualização de banco de dados estável da 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 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