Práctica recomendada: Cómo escribir LookML sostenible y mantenible

Estas prácticas recomendadas reflejan las recomendaciones compartidas por un equipo multidisciplinario de Lookers experimentados. Estas estadísticas provienen de años de experiencia trabajando con clientes de Looker desde la implementación hasta el éxito a largo plazo. Las prácticas están redactadas para funcionar para la mayoría de los usuarios y las situaciones. pero, como siempre, usa tu mejor criterio cuando implementes cualquiera de las sugerencias de esta página.

En esta página, se proporcionan recomendaciones para escribir LookML sustentable y mantenible. Estas recomendaciones se describen con más detalle en las siguientes secciones:

Usa operadores de sustitución

Se deben usar operadores de sustitución en todos los archivos de LookML. Un modelo de LookML debe tener un solo punto de referencia para cualquier objeto del modelo de datos físico. Cualquier definición posterior que necesite hacer referencia a ese objeto debe hacerlo apuntando al objeto de LookML ya definido.

Usa la sintaxis ${TABLE}.field_name cuando hagas referencia a la tabla de base de datos subyacente para todas las dimensiones base que extraigan datos directamente de las columnas de bases de datos subyacentes. Si cambia el nombre de un esquema o una tabla, esto le permite a un desarrollador actualizar el esquema o el nombre de la tabla en un solo lugar (dentro del parámetro sql_table_name) y que se propaguen por el resto del código.

Usa la sintaxis ${field_name} cuando hagas referencia a dimensiones o mediciones que ya se definieron en LookML. Si el nombre de una columna cambia, ese cambio solo deberá actualizarse en el parámetro sql de la dimensión o las mediciones base. Ese cambio se propagará automáticamente a todos los demás campos que hagan referencia a la columna. Por ejemplo, si el nombre de una columna en tu base de datos cambia de usersid a users_id, deberás cambiar la referencia en Looker. Usar ${field_name} significa que solo necesitas actualizar una línea.

Cuando múltiples dimensiones y mediciones hacen referencia a un campo de LookML existente con ${TABLE}.field_name, se necesitan muchos cambios. Por ejemplo, considera las medidas this_week_count y this_month_count en el siguiente código de LookML de ejemplo:

dimension: usersid {
  type: number
  sql: ${TABLE}.usersid ;; # Change here
}

measure: this_week_count {
  type: count_distinct
  sql: ${TABLE}.usersid ;; # Change here
  filters: [created_date: "7 days"]
}

measure: this_month_count {
  type: count_distinct
  sql: ${TABLE}.usersid ;; # Change here
  filters: [created_date: "1 month"]
}

Dado que tanto this_week_count como this_month_count usan la sintaxis ${TABLE}.usersid en el parámetro sql, será necesario actualizar el parámetro sql para los tres campos.

Con la referencia ${field_name}, solo se necesita un cambio:

dimension: usersid {
  type: number
  sql: ${TABLE}.usersid ;; # Change here
}

measure: this_week_count {
  type: count_distinct
  sql: ${usersid} ;;       #Using ${field_name} to reference the LookML field `usersid`
  filters: [created_date: "7 days"]
}

measure: this_month_count {
  type: count_distinct
  sql: ${usersid} ;;       #Using ${field_name} to reference the LookML field `usersid`
  filters: [created_date: "1 month"]
}

Para conocer más usos de los operadores de sustitución, consulta nuestra página de documentación Incorpora SQL y consulta objetos de LookML.

Define conjuntos de campos

Usa conjuntos para mantener listas de campos reutilizables dentro del modelo. Cualquier lista de campos que se repitan, ya sea con el parámetro fields o dentro de los campos de desglose, deben incorporarse a conjuntos para crear un solo lugar en el modelo donde se pueda actualizar esa lista de campos o cambiar las referencias de los campos. Puedes encontrar más información sobre los conjuntos en la página de documentación del parámetro set.

Evita repetir código

Piensa en los objetos de LookML como componentes básicos y usa el parámetro extends para combinar objetos de diferentes maneras sin repetir código. Puedes encontrar información detallada y ejemplos de cómo reutilizar código en la página de documentación Cómo reutilizar código con extensiones. Puedes ver ejemplos adicionales en las páginas de documentación de los parámetros extends (para vistas) y extends (para exploraciones), así como en la publicación de Comunidad sobre Cómo usar extensiones para definir las uniones.

No repitas el código en varios lugares para mantener la coherencia en todas las exploraciones. Si deseas obtener más ideas para lograr esto, consulta la publicación de Comunidad de Looker sobre cómo evitar incoherencias en las exploraciones.

Consolida elementos como capas de mapas y formatos de valor

Define capas de mapas personalizadas de forma centralizada en un archivo de LookML llamado map_layers.lkml, que puedes crear siguiendo la documentación sobre archivos de proyectos de Looker. Este archivo se puede incluir según sea necesario en los modelos. De manera alternativa, agrega archivos JSON directamente al repositorio arrastrando y soltando archivos de datos en tu proyecto de LookML, y haz referencia a ellos en el modelo.

Por ejemplo, supongamos que tienes un archivo de capas de mapa, map_layers.base.lkml, que contiene el siguiente código de LookML:

map_layer: example_africa {
  file: "africa_file_name.json"
  property_key: "geounit"
}

map_layer: example_asia {
  file: "asia_file_name.json"
  property_key: "geounit"
}

map_layer: example_europe {
  file: "europe_file_name.json"
  property_key: "geounit"
}

Puedes incluir el archivo de capas del mapa map_layers.base.lkml en cualquier modelo del proyecto. Para ello, agrega el código de LookML include: "map_layers.base.lkml" al archivo del modelo que desees.

Configura los formatos de valores personalizados de forma centralizada en el modelo. Usa el parámetro named_value_format para configurar cualquier formato personalizado dentro del modelo y, luego, haz referencia a aquellos con el parámetro value_format_name en las dimensiones y mediciones.

Crea lineamientos de desarrollo

Definir lineamientos de desarrollo para facilitar el desarrollo y escalamiento de un modelo de LookML. Consulta la publicación de Comunidad de Looker sobre los ejemplos de lineamientos de desarrollo de LookML para ver una explicación de una lista de lineamientos de desarrollo de muestra. Entre los lineamientos comunes, se incluyen los siguientes requisitos:

  • Organizar claramente los archivos de LookML para que sean coherentes y fáciles de navegar
  • Usar comentarios en las vistas y los modelos para agregar contexto a LookML escrito
  • Crear documentación en Looker con archivos de Markdown