Como maximizar a reutilização de códigos com o DRY LookML: como definir listas de campos reutilizáveis com o parâmetro "set"

Uma maneira de tornar seus projetos LookML mais eficientes e fáceis de manter é com o parâmetro set do LookML. O parâmetro set permite agrupar campos que podem ser repetidos com frequência em todo o projeto no parâmetro fields ou nos campos de detalhamento. Se você usar um conjunto para agrupar campos repetidos, crie um único local dentro do modelo em que esse grupo de campos possa ser mantido.

Esta página inclui os seguintes exemplos de uso de conjuntos do LookML para tornar os projetos do LookML mais eficientes e fáceis de manter:

Componentes

Pré-requisitos

Exemplo: como adicionar os mesmos campos de detalhamento a várias medidas

Suponha que você queira que os usuários confiram informações mais detalhadas sempre que encontrarem métricas de vendas em um relatório. Assim, ao selecionar um valor para a medida Contagem na interface "Explorar", uma consulta será aberta nos campos ID, Cidade, Estado e País:

A seleção de um valor para a medida de contagem abre uma consulta nos campos ID, Cidade, Estado e País.

É possível criar um conjunto chamado user_details que inclua os campos id, city, state e country e, em seguida, referenciá-los em várias medidas para os usuários analisarem:


set: user_details {
  fields: [id, city, state, country]
}

O conjunto user_details pode ser usado para definir um campo de detalhamento para a medida count:


measure: count {
  type: count
  drill_fields: [user_details*]
}

Nesse exemplo, a sintaxe [set_name*] é usada para especificar que os campos em user_details vão aparecer nos resultados da consulta quando você detalhar a medida Count.

Em seguida, é possível reutilizar esse conjunto para criar outros campos de detalhamento. Por exemplo, é possível adicionar o código LookML drill_fields: [user_details*] às medidas order_count, total_sale_price e average_sale_price:


measure: order_count {
  view_label: "Orders"
  type: count_distinct
  description: "Number of orders"
  sql: ${order_id} ;;
  drill_fields: [user_details*]

}

measure: total_sale_price {
  type: sum
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [user_details*]
}

measure: average_sale_price {
  type: average
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [user_details*]
}

Assim como na medida Contagem, quando um usuário seleciona um valor de Contagem de pedidos, Preço total de venda ou Preço médio de venda na interface da Análise, o Looker abre uma janela com uma consulta nos campos ID, Cidade, Estado e País.

Se você quiser mudar algo nos campos de detalhamento, como adicionar ou remover um campo, basta atualizar o conjunto user_details.

Também é possível referenciar um conjunto no parâmetro drill_fields de uma visualização para definir campos de detalhamento para todas as medidas nessa visualização que ainda não têm campos de detalhamento especificados no nível do campo.

Exemplo: incluir ou omitir um conjunto de campos de um Explore

Suponha que você queira simplificar o seletor de campo "Explorar" para os usuários excluindo campos que não são essenciais para eles.

Por exemplo, suponha que você tenha uma visualização users com informações sobre seus clientes, incluindo campos para ID, Nome, Sobrenome, E-mail e Idade, bem como campos de local, como Cidade, Estado, País e CEP. A visualização users é combinada à Análise orders:

O seletor de campo da visualização "Pedidos" inclui todos os campos da visualização "Pedidos" e "Usuários", inclusive aqueles que você quer omitir.

E se você quiser excluir os campos Nome, Sobrenome, E-mail, Idade e Gênero da opção "Explorar" para seus usuários? É possível criar um conjunto chamado user_info que lista os campos que você quer excluir da Análise Orders:

A guia "Pedidos sem dados do usuário" exclui os campos "Nome", "Sobrenome", "E-mail", "Idade" e "Gênero" do seletor de campos "Explorar".

O LookML do conjunto user_info ficaria assim:


set: user_info {
  fields: [first_name, last_name, email, age, gender]
}

Para definir uma Análise de Pedidos com o rótulo Pedidos sem dados do usuário, mescle a vista users com a Análise orders. Adicione o código LookML fields: [ALL_FIELDS*, -users.user_info*] à Análise orders para incluir todos os campos, exceto os do conjunto user_info da visualização users:


explore: orders {
  fields: [ALL_FIELDS*, -users.user_info*]
  label: "Orders Without User Data"
  join: users {
    type: left_outer
    sql_on: ${orders.user_id} = ${users.id} ;;
    relationship: many_to_one
  }
}

Como o conjunto user_details é excluído da Análise com a sintaxe -users.user_details* no parâmetro fields da Análise orders, a visualização Pedidos na Análise Pedidos sem dados do usuário omite os campos listados no conjunto users_user.info do seletor de campos da Análise.

Você pode reutilizar o conjunto user_info para omitir esses campos da interface da ferramenta Análises em outras Análises em que a visualização users é unida. Se você quiser mudar algo no conjunto user_info, como adicionar ou remover um campo, basta atualizar o conjunto user_info.