Uso
view: my_view {
derived_table: { ... }
}
|
Hierarquia
derived_table |
Valor padrão
Nenhum
|
Definição
Uma tabela derivada pode ser tratada como uma tabela normal no banco de dados. É possível criar um dos seguintes tipos de tabelas derivadas:
- Uma tabela derivada nativa definida usando o parâmetro
explore_source - Uma tabela derivada baseada em SQL usando uma consulta SQL bruta definida com o parâmetro
sql
Alguns casos extremos não permitem o uso do parâmetro
sql. Nesses casos, o Looker é compatível com os seguintes parâmetros para definir uma consulta SQL para PDTs:create_processsql_createCom o parâmetro
sql,create_processousql_create, em todos esses casos, você define a tabela derivada com uma consulta SQL. Portanto, todas são consideradas tabelas derivadas baseadas em SQL.
O parâmetro derived_table inicia uma seção do LookML em que você define como uma tabela derivada deve ser calculada, quais índices ou chaves ela deve usar e quando ela precisa ser regenerada.
As tabelas derivadas podem ser temporárias, calculadas ad hoc conforme os usuários solicitam dados, ou persistentes (PDTs), que são mantidas no banco de dados usando uma estratégia de persistência.
Se o administrador tiver ativado o recurso incremental de PDTs do Labs e se o dialeto for compatível, você poderá usar PDTs incrementais no seu projeto. Uma TDP incremental é criada de forma incremental ao adicionar dados novos à tabela, em vez de recriar a tabela inteira. Consulte a página de documentação TDPs incrementais para mais informações.
Consulte a página de documentação Tabelas derivadas no Looker para mais informações.
Subparâmetros da tabela derivada
Esta seção lista os subparâmetros da tabela derivada.
| Parâmetro | Descrição |
|---|---|
cluster_keys: ["column_name", "column_name", ...] |
Especifica que uma PDT seja agrupada por um ou mais campos no BigQuery e no Snowflake. |
create_process: { sql_step:SQL query ;; } |
Especifica uma sequência ordenada de etapas para criar uma PDT em um dialeto de banco de dados que exige comandos DDL personalizados. |
datagroup_trigger: datagroup_name |
Especifica o datagroup a ser usado na política de recriação da PDT. |
distribution: "column_name" |
Define a chave de distribuição de uma PDT criada no Redshift ou no Aster. |
distribution_style: all | even |
Define o estilo de distribuição de uma PDT criada no Redshift. |
explore_source: explore_name { # Desired subparameters (described on explore_source page) } |
Especifica uma tabela derivada nativa com base em uma análise. |
increment_key: "column_name" |
Especifica o incremento de tempo para o qual os dados atualizados devem ser consultados e anexados a uma TDP incremental. |
increment_offset: N |
Especifica o número de períodos anteriores (na granularidade da chave de incremento) que são recriados para considerar dados que chegam atrasados em uma PDT incremental. |
indexes: ["column_name", "column_name", ...] |
Define os índices de uma PDT criada em um banco de dados tradicional (por exemplo, MySQL, Postgres) ou uma chave de classificação intercalada no Redshift. |
interval_trigger: "N (seconds | minutes | hours)" |
Especifica uma programação de recriação para uma PDT. |
materialized_view: yes | no |
Cria uma visualização materializada no banco de dados para uma tabela derivada. |
partition_keys: ["column_name", "column_name", ...] |
Especifica que uma PDT seja particionada por um ou mais campos no Presto ou por um único campo de data/hora no BigQuery. |
persist_for: "N (seconds | minutes | hours)" |
Define a idade máxima de uma PDT antes que ela seja regenerada. |
publish_as_db_view: yes | no |
Cria uma visualização de banco de dados estável para a PDT, permitindo consultar a tabela fora do Looker. |
sortkeys: ["column_name", "column_name", ...] |
Define as chaves de classificação de uma PDT criada no Redshift. |
sql: SQL query ;; |
Declara a consulta SQL para uma tabela derivada. |
sql_create: { SQL query ;; } |
Define uma instrução SQL CREATE para criar uma PDT em um dialeto de banco de dados que exige comandos DDL personalizados. |
sql_trigger_value: SQL query ;; |
Especifica a condição que faz com que uma PDT seja regenerada. |
table_compression: GZIP | SNAPPY |
Especifica a compactação de tabela a ser usada para uma PDT no Amazon Athena. |
table_format: PARQUET | ORC | AVRO | JSON | TEXTFILE |
Especifica o formato de tabela a ser usado para uma PDT no Amazon Athena. |
Exemplos
Crie uma tabela derivada nativa customer_order_facts com o parâmetro explore_source:
view: customer_order_facts {
derived_table: {
explore_source: order {
column: customer_id { field: order.customer_id }
column: lifetime_orders { field: order.count }
column: lifetime_spend { field: order.total_spend }
}
}
}
Crie uma tabela derivada customer_order_facts com o parâmetro sql:
view: customer_order_facts {
derived_table: {
sql:
SELECT
customer_id,
COUNT(*) AS lifetime_orders,
SUM(total) AS lifetime_spend
FROM
order
GROUP BY
customer_id ;;
}
}
Informações importantes
Evite o uso excessivo de tabelas derivadas para criar soluções puras em SQL
Os usuários que entendem de SQL costumam usar tabelas derivadas para resolver problemas com consultas SQL complexas, cujos resultados podem ser expostos aos usuários. Embora às vezes seja necessário, ele também pode perder a natureza modular e reutilizável da LookML e restringir as formas de os usuários analisarem os dados.
Nossa sugestão geral é pensar na finalidade da sua consulta SQL e converter essa lógica em LookML, em vez de copiar e colar consultas em uma tabela derivada. Se você precisar de ajuda para criar análises que não dependam de tabelas derivadas, os analistas de suporte do Looker estão aqui para ajudar com as práticas recomendadas.
Dialetos de banco de dados compatíveis com tabelas derivadas
Dialetos de banco de dados compatíveis com tabelas derivadas temporárias
Para que o Looker ofereça suporte a tabelas derivadas no seu projeto, o dialeto do banco de dados também precisa oferecer. A tabela a seguir mostra quais dialetos são compatíveis com tabelas derivadas na versão mais recente do Looker:
| 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 |
Dialetos de banco de dados compatíveis com PDTs
Para que o Looker ofereça suporte a PDTs no seu projeto, o dialeto do banco de dados também precisa ser compatível.
Para oferecer suporte a qualquer tipo de PDT (com base em LookML ou SQL), o dialeto precisa ser compatível com gravações no banco de dados, entre outros requisitos. Há algumas configurações de banco de dados somente leitura que não permitem que a persistência funcione (mais comumente bancos de dados de réplica de troca a quente do Postgres). Nesses casos, use tabelas derivadas temporárias.
A tabela a seguir mostra os dialetos que oferecem suporte a tabelas derivadas persistentes com base em SQL na versão mais recente do Looker:
| 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 |
Para oferecer suporte a tabelas derivadas nativas permanentes (que têm consultas baseadas em LookML), o dialeto também precisa ser compatível com uma função DDL CREATE TABLE. Confira uma lista dos dialetos que oferecem suporte a tabelas derivadas nativas (com base no LookML) persistentes na versão mais recente do Looker:
| 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 |
As TDPs não são compatíveis com conexões do Snowflake que usam OAuth.
Dialetos de banco de dados compatíveis com TDPs incrementais
Para que o Looker ofereça suporte a PDTs incrementais no seu projeto do Looker, o dialeto do banco de dados precisa ser compatível com comandos da Linguagem de definição de dados (DDL) que permitem excluir e inserir linhas.
A tabela a seguir mostra quais dialetos são compatíveis com PDTs incrementais na versão mais recente do Looker:
| 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 |