derived_table

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:

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_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 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