Uso
view: my_view {
derived_table: { ... }
}
|
Hierarquia
derived_table |
Valor padrão
Nenhum
|
Definição
Uma tabela derivada pode ser tratada como se fosse uma tabela normal no banco de dados. É possível criar os seguintes tipos de tabelas derivadas:
- Uma tabela derivada nativa definida usando o parâmetro
explore_source. - Uma tabela derivada com base em SQL que usa 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 aceita 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 elas são consideradas tabelas derivadas com base 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 deve ser gerada novamente.
As tabelas derivadas podem ser tabelas derivadas temporárias, que são calculadas de forma ad hoc quando os usuários solicitam dados delas, ou tabelas derivadas persistentes (TDPs), que são mantidas no banco de dados usando uma estratégia de persistência.
Se o dialeto for compatível, você poderá usar TDPs incrementais no seu projeto. Uma TDP incremental é uma TDP criada de forma incremental, adicionando ao final dados novos à tabela, em vez de recriá-la por completo. Consulte a página de documentação sobre TDPs incrementais para mais informações.
Consulte a página de documentação Tabelas derivadas no Looker para mais informações sobre tabelas derivadas.
Subparâmetros de tabela derivada
Nesta seção, listamos os subparâmetros de tabela derivada.
| Parâmetro | Descrição |
|---|---|
cluster_keys: ["column_name", "column_name", ...] |
Especifica que uma TDP 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 TDP em um dialeto de banco de dados que exige comandos DDL personalizados. |
datagroup_trigger: datagroup_name |
Especifica o datagroup a ser usado para a política de recriação de TDP. |
distribution: "column_name" |
Define a chave de distribuição de uma TDP criada no Redshift ou no Aster. |
distribution_style: all | even |
Define o estilo de distribuição de uma TDP 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 em que os dados novos precisam ser consultados e adicionados ao final de 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 os dados que chegam atrasados para uma TDP incremental. |
indexes: ["column_name", "column_name", ...] |
Define os índices de uma TDP 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 TDP. |
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 TDP 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 TDP antes de ser gerada novamente. |
publish_as_db_view: yes | no |
Cria uma visualização de banco de dados estável para a TDP, permitindo consultar a tabela fora do Looker. |
sortkeys: ["column_name", "column_name", ...] |
Define as chaves de classificação de uma TDP 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 TDP 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 TDP seja gerada novamente. |
table_compression: GZIP | SNAPPY |
Especifica a compactação de tabela a ser usada para uma TDP no Amazon Athena. |
table_format: PARQUET | ORC | AVRO | JSON | TEXTFILE |
Especifica o formato de tabela a ser usado para uma TDP 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 de SQL
Os usuários que têm mais conhecimento em 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 fazer isso, também é possível perder a natureza modular e reutilizável do LookML e prender os usuários a maneiras rígidas de analisar os dados.
Nossa sugestão geral é pensar no propósito subjacente da consulta SQL e converter essa lógica em LookML, em vez de copiar e colar consultas existentes em uma tabela derivada. Se você precisar de ajuda para criar análises que não dependem 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 seja compatível com tabelas derivadas no seu projeto, o dialeto do banco de dados também precisa ser compatível com elas. 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.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| ClickHouse 26+ | |
| 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+ | |
| Dremio 26+ with Arrow Flight SQL | |
| 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 | |
| MongoSQL | |
| 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 TDPs
Para que o Looker seja compatível com TDPs no seu projeto, o dialeto do banco de dados também precisa ser compatível com elas.
Para oferecer suporte a qualquer tipo de TDP (baseada em LookML ou SQL), o dialeto precisa permitir 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 (geralmente, bancos de dados de réplica de hot-swap do Postgres). Nesses casos, use tabelas derivadas temporárias.
A tabela a seguir mostra os dialetos que aceitam 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.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| ClickHouse 26+ | |
| 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+ | |
| Dremio 26+ with Arrow Flight SQL | |
| 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 | |
| MongoSQL | |
| 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 persistentes (que têm consultas baseadas em LookML), o dialeto também precisa oferecer suporte a uma função DDL CREATE TABLE. Confira uma lista dos dialetos que aceitam 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.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| ClickHouse 26+ | |
| 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+ | |
| Dremio 26+ with Arrow Flight SQL | |
| 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 | |
| MongoSQL | |
| 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 o OAuth.
Dialetos de banco de dados compatíveis com TDPs incrementais
Para que o Looker ofereça suporte a TDPs incrementais no seu projeto do Looker, o dialeto do banco de dados precisa oferecer suporte a comandos de linguagem de definição de dados (DDL) que permitam excluir e inserir linhas.
A tabela a seguir mostra quais dialetos são compatíveis com TDPs 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.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| ClickHouse 26+ | |
| 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+ | |
| Dremio 26+ with Arrow Flight SQL | |
| 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 | |
| MongoSQL | |
| 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 |