Esta página se refere ao parâmetro
extends
que faz parte de um Explorar.O
extends
também pode ser usado como parte de uma visualização, conforme descrito na página de documentação do parâmetroextends
(para visualizações).O
extends
também pode ser usado como parte de um painel do LookML, conforme descrito na página de documentação Parâmetros do painel.
Uso
extends: [explore_name, explore_name, ...]
}
Hierarquia
extends |
Valor padrão
NenhumaAceita
Colchetes com uma lista separada por vírgulas de nomes de Explorar |
Definição
O parâmetro extends
permite aproveitar o conteúdo e as configurações de outro recurso Explorar, usando o outro como ponto de partida. Se houver algum conflito, a extensão "Explorar" usará as próprias configurações, modificando as configurações da extensão em questão. Consulte a página de documentação Como reutilizar código com extends
para mais detalhes sobre como o Looker faz isso.
Confira os refinamentos do LookML.
Estender uma visualização ou uma exploração é ideal para cenários em que você queira ter várias versões da visualização ou Explorar. No entanto, caso seu objetivo seja apenas modificar uma visualização ou uma análise sem editar o arquivo LookML que o contém, use um refinamento. Também é possível usar um parâmetroextends
dentro de um refinamento. Consulte a página de documentação Refinamentos de LookML para mais informações e casos de uso.
Ao estender uma exploração, é importante ter o parâmetro view_name
na exploração que será estendido. O parâmetro view_name
define a visualização em que uma exploração se baseia. O valor padrão é o nome da exploração. Se o Explorar base não tiver um view_name
especificado, o padrão será o nome dele. Mas isso não funciona para outras explorações que estão estendendo a base base. Portanto, o erro "visualização desconhecida" seria exibido. Para que o Looker use o arquivo de visualização correto, é necessário especificá-lo usando o parâmetro view_name
. Como isso será necessário em qualquer versão estendida da ferramenta, a prática recomendada é adicioná-la à guia "Explorar" base para que seja sempre usada como referência.
Se o recurso Explorar base ainda não tiver um parâmetro view_name
, basta adicionar o parâmetro view_name
e especificar o mesmo valor do nome dele.
Você também pode usar o parâmetro view_label
na sua base e ampliar as explorações. O parâmetro view_label
determina o rótulo em que os campos da visualização são agrupados no seletor de campo. Consulte a página de documentação do parâmetro view_label
(para "explores") para ver um exemplo. Se você não especificar um view_label
para sua base e estender "Explorar", os dois usarão o nome "Explorar" da base.
Exemplo
Veja um exemplo de "Explore" definido em nosso arquivo de modelo:
explore: orders {
view_name: orders
view_label: "Orders"
# The normal contents of the Explore follow
}
Aqui, adicionamos uma nova exploração que estende a orders
explora que foi definida acima:
explore: name_of_the_new_explore {
extends: [orders]
view_label: "Order Information"
# The additional things you want to add or change
# in the new Explore
}
Se você estiver estendendo uma exploração com base em uma visualização estendida, também precisará usar o parâmetro from
. Adicione from
à guia "Explorar" e estender e atribua a ela o nome da visualização estendida.
explore: new_explore {
extends: [orders]
from: extended_orders_view
#The normal contents of the Explore follow
}
Como usar extends
para limitar campos para usuários diferentes
Um caso de uso muito útil para estender uma exploração é exibir apenas um subconjunto dos campos dela para determinados usuários. Por exemplo, suponha que você tenha uma exploração products
com todos os campos disponíveis nas tabelas mescladas:
explore: products {
view_name: products
from: products
join: inventory_items {
type: left_outer
sql_on: ${products.id}=${inventory_items.product_id} ;;
relationship: many_to_one
}
join: order_items {
type: left_outer
sql_on: ${order_items.inventory_item_id}=${inventory_items.id} ;;
relationship: one_to_one
}
}
Se você tem uma equipe que só precisa ver a categoria dos produtos e as devoluções, amplie a seção products
"Explorar" e use o parâmetro fields
para especificar que apenas os campos "Categoria do produto" e "Devoluções" precisam ser incluídos:
explore: products_extended {
extends: [products]
fields: [products.category,order_items.returned_date]
}
O Explorar products_extended
exibirá apenas estes dois campos: products.category
e order_items.returned_date
.
Como ampliar uma exploração em vários modelos
As explorações geralmente são definidas em um arquivo de modelo. Se você quiser estender uma exploração, basta definir a extensão no mesmo arquivo do modelo, como nos exemplos acima.
No entanto, se você quiser estender um recurso "Explorar" para vários modelos, crie um arquivo diferente do "Explorar" para usar como um arquivo de base. Depois de definir a base de exploração no próprio arquivo, você pode incluir o arquivo de exploração no arquivo do seu modelo e estender o recurso no arquivo do modelo.
Como é possível incluir um arquivo de exploração em outro, você também pode compartilhar esse arquivo em vários outros, se necessário.
Os arquivos do Explorar vão detectar a conexão do modelo incluído. Lembre-se disso ao incluir os arquivos Explorar em modelos configurados com uma conexão diferente do modelo pai do arquivo Explorar. Se o esquema da conexão do modelo incluído for diferente do esquema da conexão do modelo pai, isso poderá causar erros de consulta.
Como usar metadados para ver extensões de um objeto
Clique em um parâmetro explore
ou view
no ambiente de desenvolvimento integrado do Looker e use o painel de metadados para ver as extensões no objeto ou o objeto que ele estende. Para mais informações, consulte a página de documentação Metadados para objetos LookML.
Considerações
Alguns parâmetros são aditivos
Em muitos casos, se o objeto estendido contiver o mesmo parâmetro que o objeto que está sendo estendido, os valores do objeto estendido substituirão os valores de parâmetro do objeto estendido. No entanto, as extensões podem ser aditivas em alguns parâmetros, o que significa que os valores do objeto estendido são usados em conjunto com os valores do objeto estendido.
Os seguintes parâmetros de exploração são aditivos:
access_filter
aggregate_table
extends
(é possível encadear váriosextends
)join
query
No exemplo a seguir, a exploração aircraft_base
usa o parâmetro join
para mesclar a visualização aircraft
à visualização aircraft_types
:
explore: aircraft {
view_name: aircraft
label: "Aircraft"
join: aircraft_types {
type: left_outer
sql_on: ${aircraft.aircraft_type_id} = ${aircraft_types.aircraft_type_id} ;;
relationship: many_to_one
}
}
E a exploração aircraft_extended
estende a exploração aircraft_base
. Além disso, a exploração aircraft_extended
tem um parâmetro join
que é integrado à visualização aircraft_engine_types
:
explore: aircraft_extended {
extends: [aircraft]
label: "Aircraft Extended"
join: aircraft_engine_types {
type: left_outer
sql_on: ${aircraft.aircraft_engine_type_id} = ${aircraft_engine_types.aircraft_engine_type_id} ;;
relationship: many_to_one
}
}
O parâmetro join
é aditivo, portanto, a visualização resultante vai mostrar as visualizações mescladas na visualização base e as visualizações mescladas na visualização estendida. Nesse caso, a exploração aircraft_extended
contém as visualizações aircraft
, aircraft_types
e aircraft_engine_types
:
Projetos com localização
Ao estender um objeto, lembre-se de que as regras de localização também se aplicam às suas extensões. Se você estiver estendendo um objeto e definindo novos rótulos ou descrições, forneça definições de localização nos arquivos de strings de localidade do seu projeto. Consulte a página de documentação Como localizar seu modelo LookML para mais informações.