derived_table

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:

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_process
  • sql_create
  • Com o parâmetro sql, create_process ou sql_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