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