Validador de SQL de integración continua

El validador de SQL de integración continua (CI) verifica que las dimensiones de tus Explorar 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:

  1. Para cada Explorar de tu proyecto, el validador de SQL ejecuta una consulta de Explorar que incluye todas las dimensiones del Explorar.
  2. Si Looker devuelve un error para la consulta de Explorar, el Validador de SQL ejecutará una consulta de Explorar independiente para cada dimensión de la exploración.

Si no quieres que el Validador de SQL pruebe cada dimensión en cada Explorar, puedes realizar una o más de las siguientes acciones de forma opcional:

Consulta la sección Opciones del validador de SQL en esta página para obtener detalles sobre las opciones que puedes configurar cuando creas o editas un conjunto de pruebas de CI. Para obtener información sobre cómo ejecutar el validador de SQL, consulta la página de documentación Ejecución de conjuntos de pruebas 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 Explore, con un vínculo al LookML problemático y un vínculo para explorar desde aquí para la depuración:

Página de resultados de la integración continua que muestra los resultados del validador de SQL

Consumo de recursos

El validador de SQL está diseñado para consumir la menor cantidad de recursos posible dentro de Looker y de tu almacén de datos. Todas las consultas del validador de SQL incluyen una cláusula LIMIT 0 y WHERE 1=2. Estas cláusulas indican de manera eficaz al optimizador de consultas de tu almacén de datos que no procese datos, sino que verifique la validez del SQL.

Con BigQuery, por ejemplo, este tipo de consulta es similar a ejecutar una consulta de prueba en BigQuery. En el caso de BigQuery, las consultas LIMIT 0 no analizan datos, por lo que no se te debería cobrar por las consultas que ejecuta el validador de SQL.

Excluye dimensiones de la validación de SQL

Es posible que desees excluir ciertas dimensiones de la validación de SQL, como las dimensiones que dependen de un parámetro, ya que el valor del parámetro será nulo durante la validación y siempre causará un error de SQL.

También puedes excluir las dimensiones que no tienen 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 una de las siguientes dos maneras:

  • Puedes agregar una instrucción ci: ignore en el parámetro tags 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 agregar el comentario -- ci: ignore al campo sql del LookML de tu dimensión, como se muestra en el siguiente ejemplo:

    dimension: addresses {
      sql:
        -- ci: ignore
        ${TABLE}.addresses ;;
    }
    

Opciones del validador de SQL

Puedes especificar varias opciones cuando creas o editas 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 para consultar

De forma predeterminada, el validador de SQL ejecutará la validación de SQL en todos los modelos y las exploraciones de tu proyecto de LookML.

Puedes usar el campo Explores to query para especificar los Explores y los modelos que deseas incluir en la validación de SQL.

Puedes especificar Explorar en el siguiente formato: model_name/explore_name

Ten en cuenta lo siguiente:

  • Para model_name, usa el nombre del archivo del modelo sin la extensión .model.lkml. Por ejemplo, para especificar el modelo definido en thelook.model.lkml, debes ingresar thelook.
  • Para explore_name, usa el explore_name del parámetro de LookML explore. Por ejemplo, para especificar la exploración definida como explore: users en tu proyecto de LookML, ingresarías users.
  • Puedes crear una lista separada por comas para especificar varias Exploraciones.
  • Puedes usar el comodín * en model_name o explore_name.

Estos son algunos ejemplos:

  • Para especificar solo la función Explorar Users que se define con explore: users en el archivo thelook.model.lkml, deberías ingresar lo siguiente:

    thelook/users
    
  • Para especificar los Explorar llamados users y orders en el archivo thelook.model.lkml, ingresarías lo siguiente:

    thelook/users, thelook/orders
    
  • Para especificar todos los Explorar en thelook.model.lkml, debes ingresar lo siguiente:

    thelook/*
    
  • Para especificar cada Explore llamado users en todos los modelos de tu proyecto, ingresarías lo siguiente:

    */users
    

Exploraciones para excluir

De forma predeterminada, el validador de SQL ejecutará la validación de SQL en todos los modelos y las exploraciones de tu proyecto de LookML.

Puedes usar el campo Explores to exclude para especificar los Explores y los modelos que deseas excluir de la validación de SQL.

Puedes especificar Explorar en 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.

Falta de miedo al fracaso

De forma predeterminada, el validador de SQL ejecuta una consulta por Explorar con todas las dimensiones de la consulta. Si falla esa consulta de Explorar, el Validador de SQL realizará una consulta de Explorar para cada dimensión de la exploración de forma individual.

Para una validación más rápida, puedes habilitar la opción Fail fast 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 la CI y pasará al siguiente Explore que se valide.

Con la opción Fail fast 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, incluso si varias dimensiones pueden tener errores. Esto significa que, después de corregir el primer error, la siguiente ejecución del validador de SQL puede mostrar un error adicional.

Ignorar ocultos

Habilita el campo Ignorar oculto si deseas que el validador de SQL ignore las dimensiones de LookML que tus desarrolladores de Looker definieron con hidden: yes. El validador de SQL omitirá estas dimensiones de sus consultas de Explorar durante la validación.

Simultaneidad de consultas

De forma predeterminada, el validador de SQL no ejecuta más de 10 consultas a la vez para evitar sobrecargar tu instancia de Looker. Puedes usar el campo Simultaneidad de consultas para especificar una cantidad máxima diferente de consultas que el validador de SQL puede ejecutar de forma simultánea.

El valor máximo para el campo Simultaneidad de consultas está limitado al parámetro de configuración Cantidad máx. de consultas simultáneas para esta conexión en la conexión de la base de datos.

Si notas una ralentización en tu instancia de Looker mientras se ejecuta la validación de SQL, puedes disminuir este valor.

Validación incremental

La validación incremental es un método para encontrar errores que son únicos en una rama de desarrollo específica, errores que aún no existen en la 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 existentes en el proyecto. También puede acelerar la validación, en especial para los proyectos de LookML que contienen muchas Exploraciones.

Para la validación incremental, el validador de SQL solo ejecuta las consultas de Explorar que cambiaron 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, incluso si la versión de producción tiene errores.

En los resultados del validador, el Validador de SQL indica cada Explore que se omitió porque no tuvo cambios en su SQL compilado en la rama o la confirmación que se valida. Consulta Cómo ver los resultados de la validación incremental para ver un ejemplo de los resultados de la validación incremental.

Puedes habilitar la validación incremental para el validador de SQL marcando la casilla de verificación Solo errores incrementales en la sección Validador de SQL cuando creas o editas un conjunto de pruebas de integración continua.

Ten en cuenta lo siguiente para la validación incremental:

  • El parámetro de configuración de validación incremental no se aplica cuando el validador de SQL valida la rama de producción en sí, como con ejecuciones manuales en la rama de producción. Cuando se valida la rama, el validador de SQL ejecuta una validación completa.
  • El modo de falla rápida no es compatible con las ejecuciones de validación incremental, ya que se requieren consultas de dimensiones individuales para exponer los errores incrementales que son específicos de una rama de desarrollo del proyecto.