Esta página se refere ao parâmetro
extends, que faz parte de uma análise detalhada.
extendstambém pode ser usado como parte de uma visualização, conforme descrito na página de documentação do parâmetroextends(para visualizações).
extendstambém pode ser usado como parte de um painel do LookML, conforme descrito na página de documentação Parâmetros do painel.
Uso
explore: explore_name {
extends: [explore_name, explore_name, ...]
}
|
Hierarquia
extends |
Valor padrão
Nenhum
Aceita
Colchetes contendo uma lista separada por vírgulas de nomes de análises detalhadas
|
Definição
Com o parâmetro extends, você pode criar conteúdo e configurações de outra análise, usando essa análise como ponto de partida. Se houver conflitos, a extensão vai usar as próprias configurações, substituindo as do recurso que está sendo estendido. Consulte a página de documentação Reutilizar código com extends para saber como o Looker faz isso.
Confira os refinamentos do LookML.
Estender uma visualização ou uma análise detalhada é ideal para cenários em que você quer ter várias versões da visualização ou da análise detalhada. Mas se o objetivo for apenas modificar uma visualização ou um recurso do Explore sem editar o arquivo do LookML que o contém, use um refinamento. Também é possível usar um parâmetroextendsem um refinamento. Consulte a página de documentação Refinamentos da LookML para mais informações e casos de uso.
Ao estender uma análise detalhada, é importante ter o parâmetro view_name na análise que será estendida. O parâmetro view_name define a visualização em que uma análise detalhada se baseia. O valor padrão é o nome da Análise. Se a análise detalhada básica não tiver um view_name especificado, o padrão será o nome da análise. Mas isso não funciona para outras análises que estão estendendo a análise de base, então receberíamos o erro "visualização desconhecida". Para que o Looker use o arquivo de visualização correto, precisamos especificá-lo usando o parâmetro view_name. Como isso será necessário em qualquer versão estendida da Análise, a prática recomendada é adicionar à Análise básica para que ela seja referenciada de forma consistente sempre que a Análise for estendida.
Se a análise detalhada básica ainda não tiver um parâmetro view_name, basta adicionar o parâmetro view_name e especificar o mesmo valor do nome da análise.
Você também pode usar o parâmetro view_label nas análises detalhadas básicas e estendidas. O parâmetro view_label determina o rótulo em que os campos da visualização são agrupados no seletor de campos. Consulte a página de documentação do parâmetro view_label (para análises detalhadas) para ver um exemplo. Se você não especificar um view_label para suas análises detalhadas básicas e estendidas, ambas usarão o nome da análise detalhada básica.
Exemplo
Confira um exemplo de análise detalhada definida no arquivo de modelo:
explore: orders {
view_name: orders
view_label: "Orders"
# The normal contents of the Explore follow
}
Aqui, adicionamos uma nova análise que estende a análise orders definida anteriormente:
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 análise detalhada baseada em uma visualização estendida, também precisará usar o parâmetro from. Adicione from à Análise em extensão 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 diferentes usuários
Um caso de uso muito útil para estender uma análise detalhada é mostrar apenas um subconjunto dos campos dela para determinados usuários. Por exemplo, suponha que você tenha uma análise detalhada products com todos os campos disponíveis das tabelas unidas:
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ê tiver uma equipe que só precisa ver a categoria de produto e os retornos, estenda a análise detalhada products e use o parâmetro fields para especificar que apenas os campos "Categoria de produto" e "Retornos" devem ser incluídos:
explore: products_extended {
extends: [products]
fields: [products.category,order_items.returned_date]
}
A análise detalhada products_extended vai mostrar apenas estes dois campos: products.category e order_items.returned_date.
Como estender uma análise detalhada em vários modelos
As análises geralmente são definidas em um arquivo de modelo. Se quiser estender uma análise detalhada, basta definir a análise de extensão no mesmo arquivo de modelo, como nos exemplos anteriores.
No entanto, se você quiser estender uma análise em vários modelos, crie um arquivo de análise separado para usar como base. Depois de definir a análise base em um arquivo próprio, você pode incluir o arquivo de análise no arquivo de modelo e estender a análise no arquivo de modelo.
Como é possível incluir um arquivo de análise em outro, você também pode compartilhar o arquivo de análise base em vários outros arquivos de análise, se necessário.
Os arquivos de análise vão detectar a conexão do modelo em que estão incluídos. Tenha isso em mente ao incluir arquivos de análise em modelos configurados com uma conexão diferente do modelo principal do arquivo de análise. Se o esquema da conexão do modelo de inclusão for diferente do esquema da conexão do modelo principal, poderão ocorrer erros de consulta.
Usar metadados para ver extensões de um objeto
Clique em um parâmetro explore ou view no Looker IDE e use o painel de metadados para conferir as extensões do objeto ou qual objeto ele estende. Consulte a página de documentação Metadados para objetos do LookML para mais informações.
Informações importantes
Alguns parâmetros são aditivos
Em muitos casos, se o objeto de extensão tiver o mesmo parâmetro do objeto que está sendo estendido, os valores do objeto de extensão vão substituir os valores de parâmetro do objeto estendido. No entanto, as extensões podem ser aditivas para alguns parâmetros, ou seja, os valores do objeto de extensão são usados em conjunto com os valores do objeto estendido.
Os seguintes parâmetros do Explorar são aditivos:
access_filteraggregate_tableextends(você pode encadear váriosextends)joinquery
No exemplo a seguir, a análise detalhada aircraft_base usa o parâmetro join para mesclar as visualizações aircraft e aircraft_types:
explore: aircraft_base {
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 análise aircraft_extended estende a análise aircraft_base. Além disso, a Análise aircraft_extended tem um parâmetro join que se une à visualização aircraft_engine_types:
explore: aircraft_extended {
extends: [aircraft_base]
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 análise detalhada resultante vai mostrar as visualizações mescladas na análise detalhada de base, além das visualizações mescladas na análise detalhada de extensão. Nesse caso, a análise detalhada aircraft_extended contém as visualizações aircraft, aircraft_types e aircraft_engine_types.

Projetos com localização
Ao estender um objeto, saiba 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 projeto. Consulte a página de documentação Localizar seu modelo do LookML para mais informações.