Prática recomendada: escrever um LookML sustentável e que possa ser mantido

Essas práticas recomendadas refletem as recomendações compartilhadas por uma equipe multidisciplinar de profissionais experientes do Looker. Esses insights vêm de anos de experiência trabalhando com clientes do Looker, desde a implementação até o sucesso a longo prazo. As práticas foram criadas para funcionar na maioria dos usuários e situações. No entanto, como sempre, use seu melhor julgamento ao implementar qualquer uma das sugestões desta página.

Esta página fornece recomendações para escrever LookML sustentável e sustentável. Essas recomendações são descritas em mais detalhes nas seguintes seções:

Usar operadores de substituição

Os operadores de substituição precisam ser usados em todos os arquivos do LookML. Um modelo do LookML precisa ter apenas um ponto de referência para qualquer objeto no modelo de dados físico. Todas as definições subsequentes que precisam fazer referência a esse objeto precisam apontar para o objeto LookML já definido.

Use a sintaxe ${TABLE}.field_name ao fazer referência à tabela de banco de dados subjacente para todas as dimensões de base que extraem dados diretamente das colunas de banco de dados subjacentes. Se um esquema ou nome de tabela mudar, isso permitirá que o desenvolvedor atualize o esquema ou o nome da tabela em um só lugar (no parâmetro sql_table_name) e faça com que ele seja propagado pelo restante do código.

Use a sintaxe ${field_name} ao fazer referência a dimensões ou medidas que já foram definidas no LookML. Se o nome de uma coluna mudar, essa mudança só vai precisar ser atualizada no parâmetro sql da dimensão ou das métricas de base. Essa mudança será propagada automaticamente para todos os outros campos que fazem referência à coluna. Por exemplo, se o nome de uma coluna no seu banco de dados mudar de usersid para users_id, você vai precisar mudar a referência no Looker. O uso de ${field_name} significa que você só precisa atualizar uma linha.

Quando várias dimensões e medidas fazem referência a um campo do LookML com ${TABLE}.field_name, muitas mudanças são necessárias. Por exemplo, considere as medidas this_week_count e this_month_count no exemplo de código do LookML a seguir:

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"]
}

Como this_week_count e this_month_count usam a sintaxe ${TABLE}.usersid no parâmetro sql, será necessário atualizar o parâmetro sql nos três campos.

Com a referência ${field_name}, apenas uma mudança é necessária:

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 ver mais usos dos operadores de substituição, consulte a página de documentação Como incorporar SQL e se referir a objetos do LookML.

Definir conjuntos de campos

Use conjuntos para manter listas de campos reutilizáveis no modelo. Todas as listas de campos repetidos, seja com o parâmetro fields ou nos campos de detalhamento, precisam ser incorporadas a conjuntos para criar um único local no modelo em que essa lista de campos possa ser atualizada ou as referências de campo alteradas. Saiba mais sobre os conjuntos na página de documentação do parâmetro set.

Evitar código repetitivo

Pense nos objetos do LookML como blocos de construção e use o parâmetro extends para combinar objetos de maneiras diferentes sem repetir o código. Você pode encontrar informações detalhadas e exemplos de reutilização de código na página de documentação Reutilizar código com extensões. Confira mais exemplos nas páginas de documentação dos parâmetros extends (para visualizações) e extends (para Análises) e na postagem na Comunidade Como usar extensões para definir agrupamentos.

Mantenha a consistência entre as análises detalhadas não repetindo o código em vários lugares. Para mais ideias sobre como fazer isso, consulte a postagem da Comunidade do Looker sobre como evitar inconsistências entre as Análises (em inglês).

Consolidar itens como camadas de mapas e formatos de valor

Defina camadas de mapa personalizadas no centro de um arquivo LookML chamado map_layers.lkml. Para criar esse arquivo, siga a documentação do Looker sobre arquivos de projeto. Esse arquivo pode ser incluído conforme necessário em todos os modelos. Se preferir, adicione arquivos JSON diretamente ao repositório arrastando e soltando os arquivos de dados no projeto do LookML e referencie-os no modelo.

Por exemplo, suponha que você tenha um arquivo de camadas de mapa, map_layers.base.lkml, contendo o seguinte código do 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"
}

É possível incluir o arquivo de camadas do mapa map_layers.base.lkml em qualquer modelo do projeto adicionando o código do LookML include: "map_layers.base.lkml" ao arquivo de modelo desejado.

Defina qualquer formato de valor personalizado de forma centralizada no modelo. Use o parâmetro named_value_format para definir formatos personalizados no modelo e faça referência a eles usando o parâmetro value_format_name em dimensões e medições.

Criar diretrizes de desenvolvimento

Definir diretrizes de desenvolvimento para facilitar o desenvolvimento e o escalonamento de um modelo do LookML. Confira a postagem na Comunidade do Looker com exemplos de diretrizes de desenvolvimento do LookML para conferir um tutorial de uma lista de diretrizes de desenvolvimento. As diretrizes comuns incluem requisitos para:

  • Organizar os arquivos LookML de forma clara para que sejam consistentes e fáceis de navegar
  • Usar comentários nas visualizações e modelos para adicionar contexto ao LookML escrito
  • Criar documentação no Looker usando arquivos Markdown