Esta página se refere ao parâmetro
fields
que faz parte de um Explorar.O
fields
também pode ser usado como parte de uma mesclagem, descrita na página de documentação do parâmetrofields
(para mesclagens).O
fields
também pode ser usado como parte de um conjunto, descrito na página de documentação do parâmetroset
.
Uso
fields: [
field-or-set-specified,
field-or-set-specified,
...
]
}
Hierarquia
fields |
Valor padrão
ALL_FIELDS* Aceita
Colchetes contendo uma lista de campos ou conjuntos separados por vírgulasRegras especiais
|
Definição
fields
permite especificar quais campos de um Explorar são expostos na IU do Explorar. Esses campos podem estar na visualização base ou nos campos disponíveis nas mesclagens. Se você não usar fields
, o Looker usará como padrão a exposição de todos os campos.
Uma lista de campos pode ser usada desta forma: [view_name.field_a, view_name.field_b]
.
Também é possível fazer referência a um conjunto de campos, que é 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 em vez de um nome de campo.
Nos dois casos, o campo ou o conjunto precisa ter escopo total. Em outras palavras, é preciso incluir o nome da visualização e do campo.
O Looker cria automaticamente um conjunto chamado ALL_FIELDS*
, que contém todos os campos na visualização base e nas mesclagens do Explore. Isso é especialmente útil para excluir vários campos indesejados, como estes:
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, o Explorar a seguir inclui apenas campos na visualização customers
:
explore: all_people {
fields: [customers*]
}
Examples
Mostre apenas o campo chamado name
na visualização customer
em "Explorar" do customer
:
explore: customer {
fields: [customer.name]
}
Mostre apenas os campos chamados name
, address
e age
na visualização customer
em customer
Explore:
explore: customer {
fields: [customer.name, customer.address, customer.age]
}
Mostre apenas o conjunto de campos no conjunto export_fields
, na visualização customer
, em customer
Explorar:
explore: customer {
fields: [customer.export_fields*]
}
Exclua o campo status
na visualização customer
do order
"Explorar":
explore: order {
fields: [ALL_FIELDS*, -customer.status]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Informações úteis
É possível excluir itens individuais ou conjuntos de itens usando fields
com explore
Você pode usar o fields
no parâmetro explore
para aproveitar o conjunto de ALL_FIELDS*
e excluir os campos. Exemplo:
explore: order {
fields: [
ALL_FIELDS*,
-customer.unwanted_field_a,
-customer.unwanted_field_b
]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Conseguimos referenciar campos da visualização mesclada customer
no parâmetro fields
do nível "Explorar" usando a sintaxe view_name.field_name
.
Com 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 é filho de explore
. Quando usado dessa forma, é possível acessar o conjunto ALL_FIELDS*
e excluir campos indesejados, conforme mostrado acima.
Há também um parâmetro fields
filho de join
. Quando usado dessa maneira, não é possível usar o conjunto ALL_FIELDS*
.
O conjunto ALL_FIELDS
é limitado pelo parâmetro fields
que faz parte de um join
.
Esta página descreve o 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 o 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 podem ser escolhidos pelo Explorar. Veja este exemplo:
explore: orders {
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
Nesse caso:
- Todos os campos de
orders
estarão disponíveis e serão incluídos emALL_FIELDS*
. - O
name
dausers
estará disponível e será incluído naALL_FIELDS*
. - Outros campos em
users
não estariam disponíveis nem incluídos no conjuntoALL_FIELDS*
.
Agora, se adicionarmos um parâmetro fields
em explore
, vamos adicionar 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
deorders
será exibido conforme o esperado, porque ele está no conjuntoALL_FIELDS*
que criamos.- Os
address
deusers
não serão exibidos porque não estavam incluídos quandousers
entrou (apenasname
estava). - O
name
deusers
também não será exibido porque não o adicionamos ao recurso Explorar na linhafields: [orders.price, users.address]
.