publish_as_db_view

Uso

view: my_view {
  derived_table: {
    publish_as_db_view: yes
    ...
  }
}
Jerarquía
publish_as_db_view

O bien:

publish_as_db_view
Valor predeterminado
no

Acepta
Un valor booleano (yes o no)

Reglas especiales
  • La vista de base de datos estable se publica (se crea) en el siguiente ciclo del regenerador de Looker después de que el LookML de la tabla persistente se implementa en producción con publish_as_db_view: yes.
  • Las vistas de bases de datos estables solo son compatibles con las tablas persistentes que usan estrategias de persistencia de grupos de datos o sql_trigger_value . No se admiten las tablas persistentes que usan persist_for.
  • Las vistas de bases de datos estables solo se admiten para las conexiones de bases de datos con permisos de CREATE VIEW para el esquema temporal.

Definición

El parámetro publish_as_db_view te permite marcar las tablas persistentes (que incluyen tanto las tablas derivadas persistentes como las tablas de agregación) para realizar consultas fuera de Looker. En el caso de las tablas persistentes con publish_as_db_view configurado como yes, Looker crea una vista de base de datos estable en la base de datos para la tabla persistente. La vista estable de la base de datos se crea en la propia base de datos para que se pueda consultar fuera de Looker. El concepto de una vista de base de datos estable es diferente de una vista de LookML, ya que las vistas de LookML existen en tu instancia de Looker y no en tu base de datos.

La vista de base de datos estable se publicará (creará) en el próximo ciclo del regenerador de Looker después de que el LookML de la tabla persistente se implemente en producción con publish_as_db_view: yes.

Ejemplos

Cómo crear una vista de base de datos estable para un PDT

Crea el PDT e_flights_pdt para el que se crea una vista estable de la base de datos:


view: e_flights_pdt {
  derived_table: {
    publish_as_db_view: yes
    datagroup_trigger: e_flights_default_datagroup
    explore_source: ontime {
      timezone: "America/Los_Angeles"
      column: flight_num {}
      column: carrier {}
      column: arr_date {}
    }
  }
  dimension: flight_num {}
  dimension: carrier {}
  dimension: arr_date {
    type: date
  }
}

La vista de base de datos estable para e_flights_pdt se publicará en el próximo ciclo del regenerador de Looker después de que el LookML del PDT se implemente en producción. Una vez que Looker compila el PDT, puedes consultar la vista estable de la base de datos.

Cómo crear una vista de base de datos estable para una tabla de datos agregados

Crea la tabla de datos agregados weekly_orders para la que se crea una vista estable de la base de datos:

explore: orders {
  aggregate_table: weekly_orders {
    materialization: {
      sql_trigger_value: SELECT CURDATE() ;;
      publish_as_db_view:  yes
    }
    query: {
      dimensions: [orders.status, orders.created_week]
      measures: [orders.count]
    }
  }
}

La vista de base de datos estable para la tabla de datos agregados weekly_orders se publicará en el próximo ciclo del regenerador de Looker después de que el LookML de la tabla de datos agregados se implemente en producción. Una vez que Looker compila la tabla de datos agregados, puedes consultar la vista estable de la base de datos.

Cómo acceder a la vista estable de la base de datos

Cuando se publica la vista estable de la base de datos para una tabla persistente, puedes consultarla directamente una vez que obtengas el nombre estable. Existen dos formas de obtener el nombre de la vista estable de una tabla persistente:

Modal de detalles de la PDT

Si eres administrador o usuario con el permiso see_pdts, puedes usar la página Tablas derivadas persistentes en la sección Administrador de Looker para obtener el nombre estable de la vista de la base de datos de una tabla persistente:

  1. Haz clic en el ícono del menú principal de Looker y selecciona Administrador si el menú Administrador aún no se muestra. (Si estás en la sección Explorar o Desarrollar del menú principal de Looker, es posible que debas hacer clic en la flecha hacia atrás para ver el menú Administrador).
  2. En el menú Administrador, selecciona Tablas derivadas persistentes.
  3. En la página Tablas derivadas persistentes, busca el nombre de la tabla persistente.
  4. Haz clic en el menú de tres puntos de la tabla persistente y, luego, selecciona Detalles del PDT.
  5. En el modal de Detalles del PDT, busca el campo Nombre estable.

Para consultar la tabla de vistas estables directamente, agrega el nombre del esquema de borrador antes del nombre de la tabla. Por ejemplo, si el nombre del esquema de trabajo es tmp, puedes consultar la vista de la base de datos estable con un comando como este:


SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt

Pestaña SQL de una exploración

Si no tienes acceso a la página de administrador de Persistent Derived Tables, puedes usar la información que se incluye en la pestaña SQL de una Exploración para determinar el nombre de vista estable de una tabla persistente. El nombre de la vista estable usa este formato:

[scratch schema name].[connection registration key]_[model_name]_[view_name]

Por ejemplo, si tienes una tabla persistente que se encuentra en el modelo llamado faa y una vista con el nombre e_flights_pdt, solo necesitas el nombre del esquema de borrador y la clave de registro de la conexión. Puedes encontrar ambos en la pestaña SQL de la sección Datos de una consulta en la tabla persistente. En la instrucción CREATE TABLE o FROM de la pestaña SQL, puedes encontrar la información de la siguiente manera:

  • La clave de registro de la conexión tiene dos caracteres y, según el dialecto de la base de datos, seguirá un signo de dólar o el primer guion bajo en el nombre de la tabla persistente.
  • El nombre del esquema de borrador es el comienzo de la cadena después de CREATE TABLE o FROM, antes de ".".

En todas las siguientes consultas de ejemplo, la clave de registro de la conexión es LB y el nombre del esquema de trabajo es tmp.

A continuación, se muestra un ejemplo de una consulta en SQL generada por Looker con una instrucción CREATE TABLE para un dialecto que usa un signo de dólar antes de la clave de registro de la conexión. El nombre de la vista es e_flights_pdt y el nombre de la tabla derivada generada es tmp.LR$LBC5Q1576702903774_e_flights_pdt.

generate derived table e_flights_pdt
Building e_flight::e_flights_pdt in dev mode on instance b6ff28049851f1954156526c66ca9912
CREATE TABLE tmp.LR$LBC5Q1576702903774_e_flights_pdt (INDEX(flight_num)) SELECT
  ontime.flight_num AS `flight_num`
  ontime.carrier AS `carrier,
    (TIMESTAMP(DATE (CONVERT_TZ(ontime.arr_time, 'UTC', 'America/Los_Angeles')))) AS
      `arr_date``
FROM `flightstats`.`ontime` AS `ontime`
GROUP BY
  1,
  2,
  3
-- finished e_flights_pdt => tmp.LR$LBC5Q1576702903774_e_flights_pdt

SELECT
  e_flights_pdt.flight_num AS `e_flights_pdt.flight_num`,
  e_flights_pdt.carrier AS `e_flights_pdt.carrier`
FROM tmp.LR$LBC5Q1576702903774_e_flights_pdt AS e_flights_pdt
GROUP BY
  1,
  2
ORDER BY
  e_flights_pdt.flight_num
LIMIT 5

A continuación, se muestra un ejemplo de una consulta en SQL generada por Looker con una instrucción FROM para un dialecto que usa un signo de subrayado antes de la clave de registro de la conexión. El nombre de la vista es e_flights_pdt y el nombre de la tabla derivada generada es tmp.LR_LBFIM1580333699953_e_flights_pdt.


--use existing e flights pdt in tmp.LR_LBFIM1580333699953_e_flights_pdt

SELECT
  e_flights_pdt.id AS `e_flights_pdt.id`,
  DATE(e_flights_pdt.faa_event_date) AS `e_flights_pdt. faa_event_date`
FROM tmp.LR_LBFIM1580333699953_e_flights_pdt AS e_flights_pdt

GROUP BY 1,2
ORDER BY DATE(e_flights_pdt.faa_event_date) DESC
LIMIT 5

Nuevamente, la vista de la base de datos estable tiene el siguiente formato:

[scratch schema name].[connection registration key]_[model_name]_[view_name]

Estos son todos los valores:

  • [scratch schema name] es tmp
  • [connection registration key] es LB
  • [model_name] es faa
  • [view_name] es e_flights_pdt

Este es el nombre estable de la vista de la base de datos de la tabla persistente:

tmp.LB_faa_e_flights_pdt

Una vez que tengas el nombre estable de la vista de la base de datos, podrás consultarla directamente. Por ejemplo:


SELECT * from tmp.LB_faa_e_flights_pdt

Aspectos para tener en cuenta

Algunos dialectos requieren sintaxis adicional

Si la clave de registro de la conexión comienza con un número, algunos dialectos requieren comillas dobles, comillas inversas, corchetes o una sintaxis similar alrededor de la segunda parte del nombre estable de la vista de la base de datos. Por ejemplo, Amazon Redshift requiere comillas dobles, por lo que, si la clave de registro de tu conexión comienza con un número, este sería el formato:

[scratch schema name]."[connection registration key]_[model_name]_[view_name]"

Por ejemplo, si la clave de registro de la conexión es 84, debes colocar comillas alrededor de la segunda parte del nombre de la tabla estable, después del punto. Por lo tanto, tus consultas a la base de datos se verían de la siguiente manera:


SELECT * from tmp."84_faa_e_flights_pdt"

Consulta la documentación de tu dialecto para obtener información sobre la sintaxis específica que se requiere.

La conexión de la base de datos debe tener permisos de CREATE VIEW.

Para crear una vista en tu base de datos, la cuenta que usa Looker para conectarse a ella debe tener permisos de CREATE VIEW para el esquema temporal de la base de datos.

El nombre de usuario, la contraseña y el esquema temporal de la base de datos se configuran cuando conectas Looker a tu base de datos.

Puedes probar tu conexión para ver si se admiten nombres de vistas estables. Si tu dialecto admite nombres de vistas estables y si los PDT están habilitados en la conexión, Looker probará la conexión para ver si permitirá vistas estables:

  • Si la conexión permite vistas estables, la prueba de conexión devolverá un resultado como Can use stable views in temp schema "docsexamples_scratch" in database "flightstats".
  • Si la conexión no permite vistas estables, la prueba de conexión devolverá un resultado como Cannot use stable views in temp schema "docsexamples" in database "flightstats", junto con más detalles, como CREATE VIEW command denied to user 'docsexamples'.

Compatibilidad con dialectos para vistas de bases de datos estables

La capacidad de crear una vista de base de datos estable de una tabla persistente depende del dialecto de la base de datos que usa tu conexión de Looker. En la versión más reciente de Looker, los siguientes dialectos admiten la vista estable de la base de datos de la tabla persistente:

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