Uso
derived_table: { ... }
}
Jerarquía
derived_table |
Valor predeterminado
Ninguna |
Definición
Una tabla derivada se puede tratar como si fuera una tabla normal en la 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 con una consulta de SQL sin procesar que se define con el parámetro
sql
Algunos casos extremos no permiten el uso del parámetro
sql
. En esos casos, Looker admite los siguientes parámetros para definir una consulta de SQL de PDT:create_process
sql_create
Con los parámetros
sql
,create_process
osql_create
, en todos estos casos se define la tabla derivada con una consulta de SQL, por lo que todas se consideran tablas derivadas basadas en SQL.
El parámetro derived_table
comienza una sección de LookML en la que se define 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 temporales derivadas que se calculan ad hoc a medida que los usuarios solicitan datos de ellas, o pueden ser tablas persistentes derivadas (PDT) que persisten en la base de datos mediante una estrategia de persistencia.
Si su administrador habilitó la función Labs de PDT incremental y si su dialecto los admite, puede utilizar PDT incrementales en su proyecto. Un PDT incremental es un PDT que se compila de manera incremental mediante la adición de datos nuevos a la tabla, en lugar de volver a compilarla por completo. Consulte la página de documentación de PDT incrementales para obtener más información sobre los PDT incrementales.
Consulta la página de documentación Tablas derivadas en Looker para obtener más información sobre las tablas derivadas.
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
Evitar el uso excesivo de tablas derivadas para crear soluciones puras de SQL
Los usuarios que son expertos en SQL a menudo utilizan tablas derivadas para resolver problemas con consultas complejas de SQL, cuyos resultados pueden exponerse 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 de formas rígidas para explorar sus datos.
Nuestra sugerencia general es que piense en el propósito subyacente de su consulta en SQL y luego convierta esa lógica en LookML, en vez de copiar y pegar consultas existentes en una tabla derivada. Si necesitas ayuda para crear análisis que no se basen en tablas derivadas, los analistas de asistencia de Looker están aquí para ayudarte con las prácticas recomendadas.
Dialectos de bases de datos compatibles para tablas derivadas
Dialectos de bases de datos admitidos para tablas temporales derivadas
Para que Looker admita tablas derivadas en tu proyecto de Looker, tu dialecto de base de datos también debe admitirlas. En la siguiente tabla, se muestra qué dialectos admiten tablas derivadas en la versión más reciente de Looker:
Dialectos de bases de datos admitidos para tablas derivadas persistentes
Para que Looker admita los PDT en tu proyecto de Looker, el dialecto de tu base de datos también debe admitirlos.
Para admitir cualquier tipo de tablas derivadas persistentes (basadas en LookML o SQL), el dialecto debe admitir escrituras en la base de datos, entre otros requisitos. Existen algunas configuraciones de bases de datos de solo lectura que no permiten la persistencia de la persistencia (por lo general, las bases de datos de réplica de intercambio en caliente de Postgres). En estos casos, puedes usar tablas derivadas temporales.
En la siguiente tabla, se muestran los dialectos que admiten tablas derivadas basadas en SQL persistentes en la versión más reciente de Looker:
Para admitir tablas nativas derivadas persistentes (que tienen consultas basadas en LookML), el dialecto también debe admitir una función DDL CREATE TABLE
. En esta lista de los dialectos que admiten tablas nativas derivadas (basadas en LookML) en la versión más reciente de Looker:
Los PDT no son compatibles con conexiones de Snowflake que usan OAuth.
Dialectos de bases de datos admitidos para PDT incremental
Para que Looker admita PDT incrementales en su proyecto de Looker, el dialecto de su base de datos debe admitir comandos del lenguaje de definición de datos (DDL) que habiliten la inserción y eliminación de filas.
En la siguiente tabla, se muestra qué dialectos admiten PDT incrementales en la versión más reciente de Looker: