publish_as_db_view

Uso

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

- o -

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 base de datos estables solo se admiten para las tablas persistentes que usan estrategias de persistencia de grupo de datos o sql_trigger_value estrategias de persistencia. No se admiten las tablas persistentes que usan persist_for.
  • Las vistas de base de datos estables solo se admiten para las conexiones de base de datos con permisos CREATE VIEW para el esquema temporal.

Definición

El parámetro publish_as_db_view te permite marcar tablas persistentes (que incluyen tanto tablas derivadas persistentes como tablas agregadas) para realizar consultas fuera de Looker. Para 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 de base de datos estable se crea en la base de datos en sí para que se pueda consultar fuera de Looker. El concepto de 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á (se creará) en el siguiente 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

Crea una vista de base de datos estable para una PDT

Crea la PDT e_flights_pdt para la que se crea una vista de base de datos estable en 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 siguiente ciclo del regenerador de Looker después de que el LookML de la PDT se implemente en producción. Una vez que Looker compile la PDT, podrás consultar la vista de base de datos estable en la base de datos.

Crea 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 de base de datos estable en 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 siguiente 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 compile la tabla de datos agregados, podrás consultar la vista de base de datos estable en la base de datos.

Accede a la vista de base de datos estable

Cuando se publica la vista de base de datos estable para una tabla persistente, puedes consultarla directamente una vez que obtengas el nombre estable. Hay dos formas de obtener el nombre de la vista estable para 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 de la vista de base de datos estable para 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 tu tabla persistente.
  4. Haz clic en el menú de tres puntos de tu tabla persistente y, luego, selecciona Detalles de la PDT.
  5. En el modal Detalles de la PDT, busca el campo Nombre estable.

Para consultar la tabla de vista estable directamente, agrega el nombre del esquema de borrador antes del nombre de la tabla. Por ejemplo, si el nombre del esquema de borrador es tmp, puedes consultar la vista de 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 Tablas derivadas persistentes, puedes usar la información que se incluye en la pestaña SQL de una exploración para determinar el nombre de la vista estable para 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 está 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 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 conexión tiene dos caracteres. Según el dialecto de tu 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 que sigue a CREATE TABLE o FROM, antes de ".".

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

Este es 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 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

Este es un ejemplo de una consulta en SQL generada por Looker con una instrucción FROM para un dialecto que usa un signo de guion bajo antes de la clave de registro de 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

Una vez más, la vista de 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.

Por lo tanto, este es el nombre de la vista de base de datos estable de la tabla persistente:

tmp.LB_faa_e_flights_pdt

Una vez que tengas el nombre de la vista de base de datos estable, 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 conexión comienza con un número, algunos dialectos requieren comillas dobles, acentos graves, corchetes o una sintaxis similar alrededor de la segunda parte del nombre de la vista de base de datos estable. Por ejemplo, Amazon Redshift requiere comillas dobles. Por lo tanto, si tu clave de registro de 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 conexión es 84, colocarías 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 requerida.

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

Para crear una vista en tu base de datos, la cuenta que usa Looker para conectarse a tu base de datos debe tener permisos 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 para tu conexión. Si tu dialecto admite nombres de vistas estables y si las PDT están habilitadas 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 mostrará 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 mostrará 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 de dialectos para vistas de base de datos estables

La capacidad de crear una vista de base de datos estable de tabla persistente depende del dialecto de 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 de base de datos estable de 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