Esta página se refere ao parâmetro
fields, que faz parte de uma análise detalhada.
fieldstambém pode ser usado como parte de uma junção, conforme descrito na página de documentação do parâmetrofields(para junções).
fieldstambém pode ser usado como parte de um conjunto, descrito na página de documentação do parâmetroset.
Uso
explore: explore_name {
fields: [
field-or-set-specification,
field-or-set-specification,
...
]
}
|
Hierarquia
fields |
Valor padrão
ALL_FIELDS*
Aceita
Colchetes contendo uma lista de campos ou conjuntos separados por vírgulas
Regras especiais
|
Definição
fields permite especificar quais campos de uma Análise detalhada são mostrados na interface dela. Esses campos podem estar na visualização básica da Análise ou disponíveis nas junções dela. Se você não usar fields, o Looker vai expor todos os campos por padrão.
Uma lista de campos pode ser usada assim: [view_name.field_a, view_name.field_b].
Também é possível fazer referência a um conjunto de campos (definido no parâmetro set de uma visualização), como [view_name.set_a*]. O asterisco informa ao Looker que você está fazendo referência a um nome de conjunto, e não a um nome de campo.
Em ambos os casos, o campo ou conjunto precisa estar totalmente no escopo. Em outras palavras, você precisa incluir o nome da visualização e o nome do campo.
O Looker cria automaticamente um conjunto chamado ALL_FIELDS*, que contém todos os campos na visualização de base e nas junções da Análise. Isso é particularmente útil para excluir alguns campos indesejados, como este:
explore: view_name {
fields: [ALL_FIELDS*, -joined_view_name.unwanted_field]
}
O Looker também cria automaticamente conjuntos que contêm todos os campos em uma determinada visualização, que podem ser referenciados com o formato view_name*. Por exemplo, a análise detalhada a seguir inclui apenas campos na visualização customers:
explore: all_people {
fields: [customers*]
}
Exemplos
Mostre apenas o campo chamado name da visualização customer na Análise customer:
explore: customer {
fields: [customer.name]
}
Mostre apenas os campos chamados name, address e age da visualização customer na análise detalhada customer:
explore: customer {
fields: [customer.name, customer.address, customer.age]
}
Mostre apenas o conjunto de campos no conjunto export_fields, da visualização customer, na análise detalhada customer:
explore: customer {
fields: [customer.export_fields*]
}
Exclua o campo chamado status na visualização customer da análise detalhada order:
explore: order {
fields: [ALL_FIELDS*, -customer.status]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Informações importantes
É possível excluir itens individuais ou conjuntos de itens usando fields com explore.
Você pode usar 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} ;;
}
}
Foi possível referenciar campos da visualização unida customer no parâmetro fields do nível de análise detalhada usando a sintaxe view_name.field_name.
Usando a sintaxe -, também é possível excluir conjuntos definidos de campos:
explore: orders {
fields: [ALL_FIELDS*, -users.statezip*]
join: users {
sql_on: ${orders.user_id} = ${users.id} ;;
relationship: many_to_one
}
}
view: users {
set: statezip {
fields:[state, zip]
}
}
O parâmetro fields que faz parte de um join não pode usar o conjunto ALL_FIELDS.
Esta página se refere ao parâmetro fields, que é um filho de explore. Ao usar o parâmetro fields dessa forma, é possível acessar o conjunto ALL_FIELDS* e excluir campos indesejados, conforme mostrado anteriormente.
Há também um parâmetro fields que é filho de join. Quando usado dessa forma, não é possível usar o conjunto ALL_FIELDS*.
O conjunto ALL_FIELDS é limitado pelo parâmetro fields, que faz parte de um join.
Nesta página, descrevemos fields quando ele está aninhado em um parâmetro explore. Há também um parâmetro fields semelhante, aninhado em join. É importante entender as implicações de aplicar fields aos dois níveis ao mesmo tempo.
Primeiro, todos os parâmetros fields em join são aplicados. Isso cria o conjunto de campos que a Análise pode escolher. Por exemplo,
explore: orders {
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
Nesse caso:
- Todos os campos de
ordersestarão disponíveis e incluídos emALL_FIELDS*. namedeusersvai estar disponível e incluído emALL_FIELDS*.- Outros campos em
usersnão estariam disponíveis ou incluídos no conjuntoALL_FIELDS*.
Agora, se adicionarmos um parâmetro fields em explore, vamos adicionar uma restrição a esse conjunto. Suponha que fizemos isso:
explore: orders {
fields: [orders.price, users.address]
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
Nesse caso:
pricedeordersvai aparecer conforme o esperado porque está no conjuntoALL_FIELDS*que criamos.addressdeusersnão vai aparecer porque não foi incluído quandousersfoi associado (apenasnamefoi).namedeuserstambém não vai aparecer porque não adicionamos a opção "Analisar" na linhafields: [orders.price, users.address].