public_as_db_view

Este é um tópico avançado que pressupõe que o leitor tenha um conhecimento sólido de LookML e de tabelas derivadas permanentes (PDTs, na sigla em inglês). Para saber mais sobre o LookML, consulte a página de documentação Prepare-se para o desenvolvimento. Para saber mais sobre PDTs, consulte a página de documentação Tabelas derivadas no Looker.

Uso

view: my_view {
derived_table: {
publish_as_db_view: sim
...
}
}
Hierarquia
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 é compatível somente com PDTs que usam o armazenamento em cache do grupo de dados ou do sql_trigger_value. Os PDTs que usam persist_for não são compatíveis.

Além disso, a conta que o Looker usa para se conectar ao seu banco de dados precisa ter permissões CREATE VIEW para o esquema temporário no seu banco de dados. Consulte a seção A conexão do banco de dados precisa ter permissões CREATE VIEW nesta página para mais informações.

O parâmetro publish_as_db_view permite sinalizar uma PDT para consulta fora do Looker. Para PDTs com publish_as_db_view definido como yes, o Looker cria uma visualização estável do banco de dados para o PDT. 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 LookML, porque as visualizações LookML existem na instância do Looker, e não no próprio banco de dados.

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

Depois que o Looker cria a visualização de banco de dados estável no banco de dados, a PDT precisa ser criada antes de ser consultada.

Exemplo

Crie o PDT e_flights_pdt para o qual uma visualização de banco de dados estável é 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 de e_flights_pdt será publicada no próximo ciclo do regenerador do Looker depois que o LookML do PDT for implantado na produção. Depois que o Looker criar o PDT, será possível consultar a visualização estável do banco de dados.

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

Quando a visualização do banco de dados estável é publicada, você pode consultá-la diretamente assim que tiver o nome estável. Há duas maneiras de conseguir o nome da visualização estável do PDT:

Os administradores ou usuários com a permissão see_pdts podem ver o nome da visualização do banco de dados estável na página Tabelas derivadas permanentes, na seção Administrador do Looker. Clique no menu de três pontos do PDT e selecione Detalhes do PDT:

Para consultar essa tabela, basta adicionar o nome do esquema de rascunho antes do nome da tabela. Por exemplo, se o nome do esquema de rascunho for tmp, será possível 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 exploração

Se você não tiver acesso à página de administrador Tabelas derivadas permanentes, poderá usar as informações fornecidas na guia SQL de uma exploração para determinar o nome da visualização estável. 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 um PDT no modelo chamado faa e uma visualização chamada e_flights_pdt, precisará apenas do nome do esquema de rascunho e da chave de registro de conexão. É possível encontrar ambos na guia SQL na seção Dados de uma consulta no PDT. Na instrução CREATE TABLE ou FROM da guia SQL:

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

Em todos os exemplos a seguir, a chave de registro de conexão é LB e o nome do esquema de rascunho é tmp.

Veja um exemplo com uma instrução CREATE TABLE para um dialeto que usa um cifrão antes da chave de registro da conexão:

Veja um exemplo com uma instrução FROM para um dialeto que usa um sinal de sublinhado antes da chave de registro de conexão:

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

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

Veja todos os valores:

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

Em seguida, este é o nome da visualização do banco de dados estável do PDT:

tmp.LB_faa_e_flights_pdt

Quando você tiver o nome da visualização do banco de dados estável, poderá fazer uma consulta diretamente. Exemplo:


SELECT * from tmp.LB_faa_e_flights_pdt

Considerações

Alguns dialetos precisam de sintaxe adicional

Se a chave do registro de conexão começar com um número, alguns dialetos exigem aspas duplas, crases, colchetes ou sintaxe semelhante ao redor da segunda parte do nome da visualização do banco de dados estável. Por exemplo, o Amazon Redshift exige aspas duplas. Portanto, se sua chave de registro de 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 de conexão for 84, você vai colocar a segunda parte do nome da tabela estável entre aspas, após o ponto. Dessa forma, as consultas ao banco de dados seriam semelhantes a estas:


SELECT * from tmp."84_faa_e_flights_pdt"

Consulte a documentação do seu dialeto para saber mais 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 seu banco de dados, a conta que o Looker usa para se conectar ao seu 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 ver se nomes de visualização estável são compatíveis com sua conexão. Se o dialeto for compatível com nomes de visualização estável e se os PDTs estiverem ativados na conexão, o Looker testará a conexão para ver se ela é estável:

  • Se a conexão permitir visualizações estáveis, o teste de conexão 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 retornará um resultado como Cannot use stable views in temp schema "docsexamples" in database "flightstats" e outros detalhes, como CREATE VIEW command denied to user 'docsexamples'.

Suporte ao dialeto para a visualização do banco de dados PDT estável

A capacidade de criar uma visualização estável do banco de dados PDT depende do dialeto do banco de dados que a conexão do Looker está usando. Na versão mais recente do Looker, os dialetos a seguir oferecem suporte à visualização estável do banco de dados PDT: