Publicar_como_db_view

Este es un tema avanzado en el que se supone que el lector tiene un conocimiento sólido de LookML y tablas derivadas persistentes (PDT). Para comenzar a aprender sobre LookML, consulta la página de documentación Prepárate para el desarrollo. Para obtener más información sobre los PDT, consulta la página de documentación Tablas derivadas en Looker.

Uso

vista: my_view {
derived_table: {
publish_as_db_view: yes
...
}
}
Jerarquía
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 solo es compatible con los PDT que usan el almacenamiento en caché datagroup o sql_trigger_value. No se admiten los PDT que usan persist_for.

Además, la cuenta que usa Looker a fin de conectarse a tu base de datos debe tener permisos CREATE VIEW para el esquema temporal en tu base de datos. Para obtener más información, consulta la sección La conexión de la base de datos debe tener permisos CREATE VIEW en esta página.

El parámetro publish_as_db_view te permite marcar un PDT para realizar consultas fuera de Looker. Para los PDT con publish_as_db_view establecido en yes, Looker crea una vista de base de datos estable en la base de datos para el PDT. La vista de la base de datos estable se crea en la base de datos para que se pueda consultar fuera de Looker. El concepto de vista de base de datos estable es diferente de una vista LookML, ya que las vistas de LookML existen en tu instancia de Looker y no en tu base de datos.

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

Una vez que Looker cree la vista de base de datos estable en la base de datos, el PDT debe compilarse antes de que pueda consultar la vista de la base de datos estable en la base de datos.

Ejemplo

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

Accede a la vista de base de datos estable de PDT

Cuando se publica la vista de base de datos estable, puedes consultarla directamente una vez que tengas el nombre estable. Existen dos maneras de obtener el nombre de la vista estable para el PDT:

Los administradores o usuarios con el permiso see_pdts pueden obtener el nombre de la vista de base de datos estable desde la página Tablas derivadas persistentes en la sección Administrador de Looker. Haga clic en el menú de tres puntos del PDT y seleccione Detalles del PDT:

Para consultar esta tabla directamente, solo agrega el nombre del esquema desde cero antes del nombre de la tabla. Por ejemplo, si el nombre del esquema desde cero es tmp, puedes consultar la vista de la base de datos estable con un comando como el siguiente:


SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt

Pestaña SQL de Explorar

Si no tienes acceso a la página de administración de tablas persistentes derivadas, puedes usar la información proporcionada en la pestaña SQL de una pestaña Explorar para determinar el nombre de la vista estable. El nombre de la vista estable usa este formato:

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

Por ejemplo, si tienes un PDT en el modelo llamado faa y una vista llamada e_flights_pdt, solo necesitas el nombre del esquema temporal y la clave de registro de la conexión. Puede encontrar ambos datos en la pestaña SQL, en la sección Datos de una consulta en el PDT. En la instrucción CREATE TABLE o FROM en la pestaña SQL, haz lo siguiente:

  • La clave de registro de la conexión es de dos caracteres. Dependiendo del dialecto de la base de datos, seguirá un signo de dólar o el primer guión bajo en el nombre de la tabla del PDT.
  • El nombre del esquema temporal es el comienzo de la string que sigue a CREATE TABLE o FROM, antes de ".".

En todos los ejemplos siguientes, la clave de registro de conexión es LB y el nombre del esquema temporal es tmp.

A continuación, verás un ejemplo con una sentencia CREATE TABLE para un dialecto que usa un signo de dólar antes de la clave de registro de conexión:

A continuación, se muestra un ejemplo con una sentencia FROM para un dialecto que usa un signo de guion bajo antes de la clave de registro de conexión:

Nuevamente, la vista estable de la base de datos 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 de la vista de base de datos estable del PDT:

tmp.LB_faa_e_flights_pdt

Una vez que tengas el nombre estable de la vista de base de datos, puedes consultarlo directamente. Por ejemplo:


SELECT * from tmp.LB_faa_e_flights_pdt

Aspectos para tener en cuenta

Algunos dialectos requieren una sintaxis adicional

Si la clave de registro de la 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 su 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, debes colocar las comillas alrededor de la segunda parte del nombre de la tabla estable, después del punto. Por lo tanto, sus 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 CREATE VIEW

A fin de crear una vista en tu base de datos, la cuenta que usa Looker a fin de conectarse a ella 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 los nombres de las vistas estables son compatibles con tu conexión. 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 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 detalles adicionales, como CREATE VIEW command denied to user 'docsexamples'.

Compatibilidad de marcación para la vista de la base de datos estable de PDT

La capacidad de crear una vista de base de datos estable de PDT 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 PDT: