Uso
view: my_view {
derived_table: { ... }
}
|
Jerarquía
derived_table |
Valor predeterminado
Ninguno
|
Definición
Una tabla derivada se puede tratar como si fuera una tabla normal en tu base de datos. Puedes crear cualquiera de los siguientes tipos de tablas derivadas:
- Una tabla derivada nativa que se define con el parámetro
explore_source - Una tabla derivada basada en SQL que usa una consulta en SQL sin procesar que defines con el parámetro
sql
En ciertos casos extremos, no se permitirá el uso del parámetro
sql. En esos casos, Looker admite los siguientes parámetros para definir una consulta en SQL para las PDT:create_processsql_createCon el parámetro
sql,create_processosql_create, en todos estos casos, defines la tabla derivada con una consulta en SQL, por lo que todas se consideran tablas derivadas basadas en SQL.
El parámetro derived_table inicia una sección de LookML en la que defines cómo se debe calcular una tabla derivada, qué índices o claves debe usar y cuándo se debe volver a generar.
Las tablas derivadas pueden ser tablas derivadas temporales que se calculan de forma ad hoc a medida que los usuarios solicitan datos de ellas, o bien pueden ser tablas derivadas persistentes (PDT) que se conservan en tu base de datos con una estrategia de persistencia.
Si tu dialecto las admite, puedes usar PDT incrementales en tu proyecto. Una PDT incremental es una PDT que se compila de forma incremental agregando datos recientes a la tabla, en lugar de volver a compilarla en su totalidad. Consulta la página de documentación sobre PDT incrementales para obtener más información sobre las PDT incrementales.
Consulta la página de documentación Tablas derivadas en Looker para obtener más información sobre las tablas derivadas.
Subparámetros de tablas derivadas
En esta sección, se enumeran los subparámetros de la tabla derivada.
| Parámetro | Descripción |
|---|---|
cluster_keys: ["column_name", "column_name", ...] |
Especifica que una PDT se agrupe por uno o más campos en BigQuery y Snowflake. |
create_process: { sql_step:SQL query ;; } |
Especifica una secuencia ordenada de pasos para crear una PDT en un dialecto de base de datos que requiere comandos de DDL personalizados. |
datagroup_trigger: datagroup_name |
Especifica el grupo de datos que se usará para la política de reconstrucción de PDT. |
distribution: "column_name" |
Establece la clave de distribución de una PDT que se compila en Redshift o Aster. |
distribution_style: all | even |
Establece el estilo de distribución de una PDT que se compila en Redshift. |
explore_source: explore_name { # Desired subparameters (described on explore_source page) } |
Especifica una tabla derivada nativa basada en una exploración. |
increment_key: "column_name" |
Especifica el incremento de tiempo durante el cual se deben consultar los datos recientes y agregarlos a una PDT incremental. |
increment_offset: N |
Especifica la cantidad de períodos anteriores (con la granularidad de la clave de incremento) que se vuelven a crear para tener en cuenta los datos que llegan tarde para una PDT incremental. |
indexes: ["column_name", "column_name", ...] |
Establece los índices de una PDT compilada en una base de datos tradicional (por ejemplo, MySQL o Postgres) o una clave de ordenamiento intercalada en Redshift. |
interval_trigger: "N (seconds | minutes | hours)" |
Especifica un programa de reconstrucción para una PDT. |
materialized_view: yes | no |
Crea una vista materializada en tu base de datos para una tabla derivada. |
partition_keys: ["column_name", "column_name", ...] |
Especifica que una PDT se particione por uno o más campos en Presto, o por un solo campo de fecha y hora en BigQuery. |
persist_for: "N (seconds | minutes | hours)" |
Establece la antigüedad máxima de una PDT antes de que se vuelva a generar. |
publish_as_db_view: yes | no |
Crea una vista de base de datos estable para la PDT que permita consultar la tabla fuera de Looker. |
sortkeys: ["column_name", "column_name", ...] |
Establece las claves de orden de una PDT que se compila en Redshift. |
sql: SQL query ;; |
Declara la consulta en SQL para una tabla derivada. |
sql_create: { SQL query ;; } |
Define una sentencia CREATE de SQL para crear una PDT en un dialecto de base de datos que requiere comandos de DDL personalizados. |
sql_trigger_value: SQL query ;; |
Especifica la condición que hace que se vuelva a generar una PDT. |
table_compression: GZIP | SNAPPY |
Especifica la compresión de tabla que se usará para una PDT en Amazon Athena. |
table_format: PARQUET | ORC | AVRO | JSON | TEXTFILE |
Especifica el formato de tabla que se usará para una PDT en Amazon Athena. |
Ejemplos
Crea una tabla derivada nativa customer_order_facts con el 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 }
}
}
}
Crea una tabla derivada customer_order_facts con el 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 ;;
}
}
Aspectos para tener en cuenta
Evita el uso excesivo de tablas derivadas para crear soluciones de SQL puro
Los usuarios que tienen un conocimiento particular de SQL suelen usar tablas derivadas para resolver problemas con consultas en SQL complejas, cuyos resultados se pueden exponer a los usuarios. Si bien a veces puede ser necesario hacerlo, también puede perderse la naturaleza modular y reutilizable de LookML y puede bloquear a los usuarios en formas rígidas de explorar sus datos.
Nuestra sugerencia general es que pienses en el propósito subyacente de tu consulta en SQL y, luego, conviertas esa lógica en LookML, en lugar de copiar y pegar consultas existentes en una tabla derivada. Si necesitas ayuda para crear análisis que no dependan de tablas derivadas, los analistas de asistencia de Looker están aquí para ayudarte con las prácticas recomendadas.
Dialectos de bases de datos compatibles con las tablas derivadas
Dialectos de bases de datos compatibles con las tablas derivadas temporales
Para que Looker admita tablas derivadas en tu proyecto de Looker, el dialecto de tu base de datos también debe admitirlas. En la siguiente tabla, se muestran los dialectos que admiten tablas derivadas en la versión más reciente de Looker:
| Dialecto | ¿Es compatible? |
|---|---|
| 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 |
Dialectos de bases de datos compatibles con las PDT
Para que Looker admita PDT en tu proyecto de Looker, el dialecto de tu base de datos también debe admitirlas.
Para admitir cualquier tipo de PDT (basadas en LookML o en SQL), el dialecto debe admitir escrituras en la base de datos, entre otros requisitos. Existen algunos parámetros de configuración de bases de datos de solo lectura que no permiten que funcione la persistencia (en la mayoría de los casos, bases de datos de réplica de intercambio en caliente de Postgres). En estos casos, puedes usar tablas derivadas temporales en su lugar.
En la siguiente tabla, se muestran los dialectos que admiten tablas derivadas persistentes basadas en SQL en la versión más reciente de Looker:
| Dialecto | ¿Es compatible? |
|---|---|
| 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 admitir tablas derivadas nativas persistentes (que tienen consultas basadas en LookML), el dialecto también debe admitir una función DDL CREATE TABLE. Aquí tienes una lista de los dialectos que admiten tablas derivadas nativas (basadas en LookML) persistentes en la versión más reciente de Looker:
| Dialecto | ¿Es compatible? |
|---|---|
| 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 |
Las PDT no son compatibles con las conexiones de Snowflake que usan OAuth.
Dialectos de bases de datos admitidos para PDT incrementales
Para que Looker admita PDT incrementales en tu proyecto de Looker, el dialecto de tu base de datos debe admitir comandos de lenguaje de definición de datos (DDL) que permitan borrar e insertar filas.
En la siguiente tabla, se muestran los dialectos que admiten PDT incrementales en la versión más reciente de Looker:
| Dialecto | ¿Es compatible? |
|---|---|
| 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 |