El validador de SQL de integración continua (CI) verifica que las dimensiones de tus Exploraciones se ejecuten correctamente en tu base de datos. Para ello, el Validador de SQL ejecuta una serie de consultas en las exploraciones de tu proyecto de LookML.
De forma predeterminada, el validador de SQL realiza las siguientes tareas:
- Por cada exploración de tu proyecto, el Validador de SQL ejecuta una consulta de exploración que incluye todas las dimensiones de la exploración.
- Si Looker devuelve un error en la consulta de Exploración, el validador de SQL ejecutará una consulta de Exploración independiente para cada dimensión de la Exploración.
Si no quiere que el validador de SQL pruebe todas las dimensiones de todas las Exploraciones, puede hacer una o varias de las siguientes acciones:
- Configura el Validador de SQL para consultar solo determinadas Exploraciones.
- Configura el Validador de SQL para excluir determinadas exploraciones.
- Configura el validador de SQL para ignorar las dimensiones de LookML que se definan con
hidden: yes
. - Añade un comentario o etiqueta
ci: ignore
a la dimensión de LookML para evitar que el Validador de SQL incluya la dimensión en cualquiera de sus consultas Explorar.
Consulta la sección Opciones del validador de SQL de esta página para obtener información detallada sobre las opciones que puedes configurar al crear o editar un conjunto de pruebas de integración continua. Para obtener información sobre cómo ejecutar el Validador de SQL, consulta la página de documentación Ejecutar paquetes de integración continua.
En la página de resultados de la ejecución, el validador de SQL muestra cada error de SQL, categorizado por dimensión y Exploración, con un enlace al LookML problemático y un enlace Explorar desde aquí para depurar:
Consumo de recursos
El validador de SQL se ha diseñado para consumir la menor cantidad de recursos posible en Looker y en tu almacén de datos. Todas las consultas del Validador de SQL incluyen las cláusulas LIMIT 0
y WHERE 1=2
. Estas cláusulas indican al planificador de consultas de tu almacén de datos que no procese los datos, sino que compruebe la validez del SQL.
Por ejemplo, en BigQuery, este tipo de consulta es similar a ejecutar una consulta de prueba. En BigQuery, las consultas de LIMIT 0
no analizan datos, por lo que no se te debería cobrar por las consultas que ejecuta el validador de SQL.
Excluir dimensiones de la validación de SQL
Puede que le interese excluir determinadas dimensiones de la validación de SQL, como las que dependen de un parámetro, ya que el valor del parámetro será nulo durante la validación y siempre provocará un error de SQL.
También puede excluir dimensiones que no tengan un parámetro sql
, como las dimensiones de type: distance
, type: location
o type: duration
.
Para excluir una dimensión de la validación de SQL, puedes modificar el LookML de la dimensión de dos formas:
Puede añadir una instrucción
ci: ignore
al parámetrotags
de la definición de LookML de la dimensión, como se muestra en el siguiente ejemplo:dimension: addresses { sql: ${TABLE}.addresses ;; tags: ["ci: ignore"] }
Puedes añadir el comentario
-- ci: ignore
al camposql
del LookML de tu dimensión, tal como se muestra en el siguiente ejemplo:dimension: addresses { sql: -- ci: ignore ${TABLE}.addresses ;; }
Opciones del validador de SQL
Puede especificar varias opciones al crear o editar un conjunto de pruebas de integración continua para configurar cómo se ejecuta SQL Validator. Las opciones se describen en las siguientes secciones de esta página:
- Exploraciones que consultar
- Exploraciones que excluir
- Falla rápido
- Ignorar ocultas
- Simultaneidad de consultas
- Validación incremental
Exploraciones para consultar
De forma predeterminada, el Validador de SQL ejecutará la validación de SQL en todos los modelos y Exploraciones de tu proyecto de LookML.
Puede usar el campo Exploraciones para consultar para especificar las exploraciones y los modelos que quiera incluir en la validación de SQL.
Puede especificar Exploraciones con el siguiente formato: model_name/explore_name
Ten en cuenta lo siguiente:
- En
model_name
, usa el nombre del archivo de modelo sin la extensión.model.lkml
. Por ejemplo, para especificar el modelo definido enthelook.model.lkml
, escribiríasthelook
. - En el caso de
explore_name
, usa elexplore_name
del parámetro de LookMLexplore
. Por ejemplo, para especificar el Explore definido comoexplore: users
en tu proyecto de LookML, debes introducirusers
. - Puedes crear una lista separada por comas para especificar varias Exploraciones.
- Puedes usar el comodín
*
enmodel_name
oexplore_name
.
A continuación, se incluyen algunos ejemplos:
Para especificar solo la exploración Usuarios definida con
explore: users
en el archivothelook.model.lkml
, debe introducir lo siguiente:thelook/users
Para especificar los Exploradores llamados
users
yorders
en el archivothelook.model.lkml
, debes introducir lo siguiente:thelook/users, thelook/orders
Para especificar todas las exploraciones de
thelook.model.lkml
, debe introducir lo siguiente:thelook/*
Para especificar todas las Exploraciones llamadas
users
en todos los modelos de tu proyecto, debes introducir lo siguiente:*/users
Exploraciones que excluir
De forma predeterminada, el Validador de SQL ejecutará la validación de SQL en todos los modelos y Exploraciones de tu proyecto de LookML.
Puedes usar el campo Exploraciones que excluir para especificar las exploraciones y los modelos que quieras excluir de la validación de SQL.
Puede especificar Exploraciones con el siguiente formato: model_name/explore_name
Consulta la sección Exploraciones para consultar para obtener más información sobre cómo especificar Exploraciones para el validador de SQL.
Fallar rápido
De forma predeterminada, el Validador de SQL ejecuta una consulta por Exploración con todas las dimensiones de la consulta. Si esa consulta de Exploración falla, el Validador de SQL hará una consulta de Exploración para cada dimensión de la Exploración de forma individual.
Para que la validación sea más rápida, puedes habilitar la opción Fallar rápido para que el validador de SQL solo ejecute la consulta inicial de una exploración, es decir, la consulta que contiene todas las dimensiones a la vez. Si esa consulta devuelve un error, el validador de SQL mostrará ese error en los resultados de la ejecución de CI y pasará al siguiente Exploración que se esté validando.
Si la opción Fallo rápido está habilitada, la validación suele completarse más rápido. Sin embargo, los resultados del validador de SQL solo mostrarán el primer error de cada exploración, aunque varias dimensiones puedan tener errores. Esto significa que, después de corregir el primer error, la siguiente ejecución del validador de SQL puede mostrar otro error.
Ignorar ocultas
Habilita el campo Ignorar oculto si quieres que el validador de SQL ignore las dimensiones de LookML que tus desarrolladores de Looker hayan definido con hidden: yes
. El Validador de SQL no incluirá estas dimensiones en sus consultas de Exploración durante la validación.
Simultaneidad de consultas
De forma predeterminada, el Validador de SQL ejecuta un máximo de 10 consultas a la vez para no sobrecargar tu instancia de Looker. Puedes usar el campo Simultaneidad de consultas para especificar un número máximo de consultas diferente que el Validador de SQL pueda ejecutar simultáneamente.
El valor máximo del campo Concurrencia de consultas está limitado al ajuste Consultas simultáneas máximas para esta conexión de la conexión de tu base de datos.
Si observa que su instancia de Looker se ralentiza al ejecutar la validación de SQL, puede reducir este valor.
Validación incremental
La validación incremental es un método para detectar errores que son exclusivos de una rama de desarrollo específica (es decir, errores que no existen en producción). La validación incremental ayuda a los desarrolladores a encontrar y corregir los errores de los que son responsables sin distraerse con los errores que ya hay en el proyecto. Además, puede acelerar la validación, sobre todo en los proyectos de LookML que contienen muchas exploraciones.
En la validación incremental, el Validador de SQL solo ejecuta las consultas Exploración que han cambiado entre una versión de desarrollo (la referencia base) y la versión de producción (la referencia de destino). El validador de SQL solo devuelve los errores que son exclusivos de la versión de desarrollo, aunque la versión de producción tenga errores.
En los resultados del validador, el Validador de SQL indica cada Exploración que se ha omitido porque no se ha modificado su SQL compilado en la rama o la confirmación que se está validando. Consulta un ejemplo de resultados de validación incremental en Ver los resultados de la validación incremental.
Para habilitar la validación incremental en el validador de SQL, marca la casilla Solo errores incrementales en la sección Validador de SQL al crear o editar una suite de integración continua.
Ten en cuenta lo siguiente para la validación incremental:
- La configuración de validación incremental no se aplica cuando el validador de SQL valida la rama de producción (por ejemplo, en las ejecuciones manuales de la rama de producción). Al validar la rama de producción, el validador de SQL ejecuta una validación completa.
- El modo Fallar rápido no se admite en las ejecuciones de validación incremental, ya que se necesitan consultas de dimensiones individuales para mostrar los errores incrementales específicos de una rama de desarrollo del proyecto.