tabella_derivata

Utilizzo

view: my_view {
  derived_table: { ... }
}
Gerarchia
derived_table
Valore predefinito
Nessuno

Definizione

Una tabella derivata può essere trattata come una tabella normale nel database. Puoi creare uno dei seguenti tipi di tabelle derivate:

Alcuni casi limite non consentono l'utilizzo del parametro sql. In questi casi, Looker supporta i seguenti parametri per definire una query SQL per le Tabelle derivate persistenti (PDT):

  • create_process
  • sql_create
  • Con il parametro sql, create_process o sql_create, in tutti questi casi stai definendo la tabella derivata con una query SQL, quindi queste sono tutte considerate tabelle derivate basate su SQL.

    Il parametro derived_table inizia una sezione di LookML in cui definisci come deve essere calcolata una tabella derivata, quali indici o chiavi deve utilizzare e quando deve essere rigenerata.

    Le tabelle derivate possono essere tabelle derivate temporanee, calcolate ad hoc quando gli utenti richiedono i dati, oppure tabelle derivate permanenti (PDT), salvate nel database utilizzando una strategia di persistenza.

    Se l'amministratore ha abilitato la funzionalità PDT incrementali di Labs e se il tuo dialetto le supporta, puoi utilizzare le PDT incrementali nel tuo progetto. Una PDT incrementale è una PDT creata in modo incrementale aggiungendo nuovi dati alla tabella, anziché ricrearla interamente. Per saperne di più sui PDT incrementali, consulta la pagina di documentazione PDT incrementali.

    Per saperne di più sulle tabelle derivate, consulta la pagina della documentazione Tabelle derivate in Looker.

    Sottoparametri della tabella derivata

    Questa sezione elenca i sottoparametri della tabella derivata.

    Parametro Descrizione
    cluster_keys: ["column_name", "column_name", ...] Specifica che una PDT deve essere raggruppata in cluster in base a uno o più campi in BigQuery e Snowflake.
    create_process: { sql_step:SQL query ;; } Specifica una sequenza ordinata di passaggi per creare una tabella derivata persistente in un dialetto del database che richiede comandi DDL personalizzati.
    datagroup_trigger: datagroup_name Specifica il gruppo di dati da utilizzare per i criteri di ricreazione della PDT.
    distribution: "column_name" Imposta la chiave di distribuzione di un PDT integrato in Redshift o Aster.
    distribution_style: all | even Imposta lo stile di distribuzione di una tabella derivata persistente (PDT) creata in Redshift.
    explore_source: explore_name { # Desired subparameters (described on explore_source page) } Specifica una tabella derivata nativa basata su un'esplorazione.
    increment_key: "column_name" Specifica l'incremento di tempo per il quale devono essere interrogati e aggiunti a una PDT incrementale i dati aggiornati.
    increment_offset: N Specifica il numero di periodi di tempo precedenti (con la granularità della chiave di incremento) che vengono ricreati per tenere conto dei dati in arrivo in ritardo per un PDT incrementale.
    indexes: ["column_name", "column_name", ...] Imposta gli indici di un PDT creato in un database tradizionale (ad esempio, MySQL, Postgres) o una chiave di ordinamento interleaved in Redshift.
    interval_trigger: "N (seconds | minutes | hours)" Specifica una pianificazione della ricompilazione per una PDT.
    materialized_view: yes | no Crea una vista materializzata nel database per una tabella derivata.
    partition_keys: ["column_name", "column_name", ...] Specifica che una PDT deve essere partizionata in base a uno o più campi in Presto o in base a un singolo campo di data/ora in BigQuery.
    persist_for: "N (seconds | minutes | hours)" Imposta l'età massima di un PDT prima che venga rigenerato.
    publish_as_db_view: yes | no Crea una vista del database stabile per la PDT per consentire l'esecuzione di query sulla tabella al di fuori di Looker.
    sortkeys: ["column_name", "column_name", ...] Imposta le chiavi di ordinamento di una PDT creata in Redshift.
    sql: SQL query ;; Dichiara la query SQL per una tabella derivata.
    sql_create: { SQL query ;; } Definisce un'istruzione SQL CREATE per creare una PDT su un dialetto del database che richiede comandi DDL personalizzati.
    sql_trigger_value: SQL query ;; Specifica la condizione che causa la rigenerazione di un PDT.
    table_compression: GZIP | SNAPPY Specifica la compressione della tabella da utilizzare per una PDT in Amazon Athena.
    table_format: PARQUET | ORC | AVRO | JSON | TEXTFILE Specifica il formato della tabella da utilizzare per un PDT in Amazon Athena.

    Esempi

    Crea una tabella derivata nativa customer_order_facts con il parametro 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 }
        }
      }
    }
    

    Crea una tabella derivata customer_order_facts con il parametro 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 ;;
      }
    }
    

    Aspetti da considerare

    Evita di utilizzare eccessivamente le tabelle derivate per creare soluzioni SQL pure

    Gli utenti particolarmente esperti di SQL spesso utilizzano tabelle derivate per risolvere problemi con query SQL complesse, i cui risultati possono poi essere mostrati agli utenti. Anche se a volte può essere necessario, può anche perdere la natura modulare e riutilizzabile di LookML e può bloccare gli utenti in modi rigidi di esplorare i propri dati.

    Il nostro suggerimento generale è di pensare allo scopo sottostante della query SQL e quindi convertire la logica in LookML, anziché copiare e incollare le query esistenti in una tabella derivata. Se hai bisogno di assistenza per creare analisi che non si basano su tabelle derivate, gli analisti dell'assistenza Looker sono a tua disposizione per aiutarti a seguire le best practice.

    Dialetti di database supportati per le tabelle derivate

    Dialetti di database supportati per le tabelle derivate temporanee

    Affinché Looker supporti le tabelle derivate nel tuo progetto Looker, anche il dialetto del database deve supportarle. La tabella seguente mostra quali dialetti supportano le tabelle derivate nell'ultima release di Looker:

    Dialetto Supportata?
    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

    Dialetti di database supportati per le PDT

    Affinché Looker supporti le PDT nel tuo progetto Looker, anche il dialetto del database deve supportarle.

    Per supportare qualsiasi tipo di PDT (basate su LookML o SQL), il dialetto deve supportare le scritture nel database, tra gli altri requisiti. Esistono alcune configurazioni di database di sola lettura che non consentono il funzionamento della persistenza (più comunemente i database di replica hot-swap Postgres). In questi casi, puoi utilizzare le tabelle derivate temporanee.

    La tabella seguente mostra i dialetti che supportano le tabelle derivate basate su SQL permanenti nell'ultima release di Looker:

    Dialetto Supportata?
    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

    Per supportare le tabelle derivate native persistenti (che hanno query basate su LookML), il dialetto deve supportare anche una funzione DDL CREATE TABLE. Ecco un elenco dei dialetti che supportano le tabelle derivate native (basate su LookML) permanenti nell'ultima release di Looker:

    Dialetto Supportata?
    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

    Le PDT non sono supportate per le connessioni Snowflake che utilizzano OAuth.

    Dialetti di database supportati per le PDT incrementali

    Affinché Looker supporti le PDT incrementali nel tuo progetto Looker, il dialetto del database deve supportare i comandi Data Definition Language (DDL) che consentono l'eliminazione e l'inserimento di righe.

    La tabella seguente mostra quali dialetti supportano le PDT incrementali nell'ultima release di Looker:

    Dialetto Supportata?
    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