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
|
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:
- 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).
- En el menú Administrador, selecciona Tablas derivadas persistentes.
- En la página Tablas derivadas persistentes, busca el nombre de tu tabla persistente.
- Haz clic en el menú de tres puntos de tu tabla persistente y, luego, selecciona Detalles de la PDT.
- 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 TABLEoFROM, 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]estmp.[connection registration key]esLB.[model_name]esfaa.[view_name]ese_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, comoCREATE 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 |