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:
- Una tabella derivata nativa definita utilizzando il parametro
explore_source - Una tabella derivata basata su SQL che utilizza una query SQL non elaborata definita utilizzando il parametro
sql
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_processsql_createCon il parametro
sql,create_processosql_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 |