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 elaboradas para funcionar para a maioria dos usuários e situações. mas, como sempre, use o bom senso ao implementar qualquer uma das sugestões nesta 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 seções a seguir:

Usar operadores de substituição

Os operadores de substituição precisam ser usados em todos os arquivos do LookML. Um modelo do LookML deve ter apenas um ponto de referência para qualquer objeto no modelo de dados físicos. Qualquer definição subsequente que precise fazer referência a esse objeto precisa apontar para o objeto do LookML já definido.

Use a sintaxe ${TABLE}.field_name ao referenciar a tabela de banco de dados subjacente para todas as dimensões base que extraem dados diretamente das colunas do banco de dados. Se um esquema ou nome de tabela for alterado, isso permitirá que um desenvolvedor atualize o esquema ou o nome da tabela em um local (no parâmetro sql_table_name) e o propague 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, com o parâmetro fields ou em campos de detalhamento, precisam ser incorporadas a conjuntos para criar um único lugar no modelo em que a 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.

Evite repetir o código

Pense nos objetos do LookML como elementos básicos 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 outros exemplos nas páginas de documentação dos parâmetros extends (para visualizações) e extends (para Análises) e na postagem da Comunidade Como usar extensões para definir agrupamentos.

Mantenha a consistência entre as Análises 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 nas Análises detalhadas.

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. Como alternativa, adicione arquivos JSON diretamente ao repositório arrastando e soltando arquivos de dados no seu projeto do LookML e fazendo referência a eles 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"
}

Você pode incluir o arquivo de camadas de mapa map_layers.base.lkml em qualquer modelo no projeto adicionando o código do LookML include: "map_layers.base.lkml" ao arquivo de modelo desejado.

Defina formatos de valor personalizados de maneira 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

Defina diretrizes de desenvolvimento para facilitar o desenvolvimento e o escalonamento de um modelo do LookML. Consulte a postagem da Comunidade do Looker sobre exemplos de diretrizes de desenvolvimento do LookML para conferir um exemplo de lista de diretrizes de desenvolvimento. As diretrizes comuns incluem os seguintes requisitos:

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