Práctica recomendada: Escribe LookML sustentable y sostenible

Estas prácticas recomendadas reflejan las recomendaciones compartidas por un equipo multifuncional 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 que funcionen para la mayoría de los usuarios y situaciones; pero, como siempre, usa tu mejor juicio cuando implementes cualquiera de las sugerencias de esta página.

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

Usa operadores de sustitución

Los operadores de sustitución deben usarse en todos los archivos de LookML. Un modelo de LookML debe tener un solo punto de referencia a cualquier objeto en el 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 extraen datos directamente de las columnas de base de datos subyacentes. Si cambia un nombre de esquema o de tabla, un desarrollador puede actualizar el nombre del esquema o de la tabla en un solo lugar (dentro del parámetro sql_table_name) y propagarlo por el resto del código.

Usa la sintaxis ${field_name} cuando hagas referencia a dimensiones o medidas que ya se definieron en LookML. Si cambia el nombre de una columna, ese cambio solo deberá actualizarse en el parámetro sql de la dimensión o las medidas 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 de tu base de datos cambia de usersid a users_id, deberás cambiar la referencia en Looker. Si usas ${field_name}, solo necesitas actualizar una línea.

Cuando varias 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 Incorporación de SQL y consulta a los 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, debe incorporarse en los conjuntos para crear un solo lugar en el modelo en el que 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 reutilización de código en la página de documentación Cómo reutilizar el 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 Usa extensiones para definir uniones.

No repitas código en varios lugares para mantener la coherencia en las exploraciones. Si quieres 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 valores

Define capas de mapa personalizadas de manera centralizada en un archivo de LookML llamado map_layers.lkml, que puedes crear siguiendo la documentación de Looker sobre archivos del proyecto. Este archivo se puede incluir según sea necesario en todos los modelos. Como alternativa, puedes agregar archivos JSON directamente al repositorio arrastrando y soltando archivos de datos en tu proyecto de LookML y hacer referencia a ellos dentro del modelo.

Por ejemplo, supongamos que tienes un archivo de capas de mapas, 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 de 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 deseado.

Establece cualquier formato de valor personalizado de manera centralizada en el modelo. Usa el parámetro named_value_format para configurar cualquier formato personalizado dentro del modelo y, luego, haz referencia a ellos mediante el parámetro value_format_name en las dimensiones y medidas.

Crea lineamientos de desarrollo

Definir lineamientos de desarrollo para facilitar el desarrollo y el escalamiento de un modelo de LookML Consulta la publicación de Comunidad de Looker sobre ejemplos de lineamientos para el desarrollo de LookML para obtener una explicación de una lista de ejemplos de lineamientos para el desarrollo. Los lineamientos comunes 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 al LookML que está escrito
  • Crear documentación en Looker mediante archivos de Markdown