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
|
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:
- 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.
- No menu Administrador, selecione Tabelas derivadas permanentes.
- Na página Tabelas derivadas permanentes, pesquise o nome da tabela persistente.
- Clique no menu de três pontos da tabela persistente e selecione Detalhes da PDT.
- 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 TABLEouFROM, 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, comoCREATE 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 |