campos (para mesclagens)

Esta página se refere ao parâmetro fields que faz parte de uma mesclagem.

O fields também pode ser usado como parte de uma exploração, descrita na página de documentação do parâmetro fields (para explorações).

O fields também pode ser usado como parte de um conjunto, descrito na página de documentação do parâmetro set.

Uso

explore: view_name_1 {
join: view_name_2 {
campos: [
field-or-set-specified,
field-or-set-specified,

...
]
}
}
Hierarquia
fields
Valor padrão
Todos os campos na visualização mesclada

Aceita
Colchetes contendo uma lista de campos ou conjuntos separados por vírgulas

Regras especiais
  • Os nomes de conjuntos sempre terminam com um asterisco (*)
  • No nível da mesclagem, só é possível incluir campos e conjuntos, não excluir eles. No entanto, é possível excluir todos os campos usando o parâmetro fields com uma lista vazia, como esta: fields: []

Definição

fields no nível da mesclagem permite que você especifique quais campos de uma visualização mesclada são trazidos para uma exploração. Se você não usar fields, os padrões do Looker serão adicionados para todos os campos da visualização.

Uma lista de campos pode ser usada, como [field_a, field_b].

Também é possível referenciar um conjunto de campos, que são criados pelo parâmetro set, como [set_a*]. O asterisco informa ao Looker que você faz referência a um nome de conjunto em vez de um nome de campo.

Examples

Adicione apenas o campo chamado name da visualização customer ao order "Explorar":

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name]
  }
}

Adicione os campos chamados name, address e age da visualização customer ao Explorar order:

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name, address, age]
  }
}

Adicione o conjunto de campos chamado order_fields da visualização customer ao order "Explorar":

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [order_fields* ]
  }
}

Desafios comuns

fields só pode referenciar campos do próprio join.

fields será filho de um join, que referencia uma visualização. Todas as dimensões ou medidas referenciadas em fields precisam fazer parte dessa visualização. Por exemplo, imagine que temos:

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name]
  }
}

Para funcionar corretamente, uma dimensão ou medida chamada name precisa existir na visualização customer.

Informações úteis

Use fields: [] com uma lista vazia para excluir todos os campos

É possível excluir todos os campos de uma visualização mesclada usando o parâmetro fields com uma lista vazia na mesclagem, desta forma:

explore: order {
  join: customer {
    fields: []
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

Neste exemplo, nenhum dos campos da visualização customer será exibido em order Explore.

A única maneira de remover campos no nível join é excluir todos de uma vez com fields: []. Não é possível usar o conjunto ALL_FIELDS* para excluir todos os campos no nível join.

No entanto, no nível da explore, é possível usar o conjunto de ALL_FIELDS* para excluir itens individuais, conforme descrito na seção É possível excluir itens individuais usando fields com explore nesta página.

Você pode excluir itens individuais usando fields com explore

Quando fields estiver aninhado em um parâmetro join, será possível excluir todos os campos de uma vez usando fields: [] ou incluir campos específicos. No entanto, não é possível excluir campos específicos individualmente. Por exemplo, se você tiver 100 campos e quiser excluir apenas um deles, precisará listar todos os 99 campos que quiser.

No entanto, você pode aninhar fields no parâmetro explore para aproveitar o conjunto ALL_FIELDS* e excluir campos. Exemplo:

explore: order {
  fields: [
    ALL_FIELDS*,
    -customer.unwanted_field_a,
    -customer.unwanted_field_b
  ]
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

Observe que conseguimos referenciar campos da visualização mesclada customer no parâmetro fields do nível "Explorar" usando a sintaxe view_name.field_name.

Diferentes tipos de parâmetros fields são aplicados em momentos distintos

Esta página descreve o fields quando ele está aninhado em um parâmetro join. Há também um parâmetro fields semelhante aninhado em explore. Quando ambos são usados ao mesmo tempo, eles são aplicados em uma ordem específica, o que afeta o comportamento resultante:

Primeiro, todos os parâmetros fields em join são aplicados. Isso cria o conjunto de campos que podem ser escolhidos pelo Explorar. Veja este exemplo:

explore: orders {
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

Nesse caso, os campos disponíveis são todos de orders e name de users. Esse é o grupo de campos que estaria no conjunto ALL_FIELDS* (descrito acima).

Agora, se adicionarmos um parâmetro fields em explore, adicionaremos uma restrição nesse conjunto. Imagine que fizemos isso:

explore: orders {
  fields: [orders.price, users.address]
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

Nesse caso:

  • price de orders será exibido conforme o esperado, porque ele está no conjunto ALL_FIELDS* que criamos.
  • Os address de users não serão exibidos porque não estavam incluídos quando users entrou (apenas name estava).
  • O name de users também não será exibido porque não o adicionamos ao recurso Explorar na linha fields: [orders.price, users.address].