Maximizar a reutilização de código com o DRY LookML: como personalizar uma única visualização base para vários casos de uso

Imagine que você tem muitos usuários que compartilham um Explore, mas com diferentes casos de uso, dependendo da equipe ou da região. Cada usuário quer ver apenas os campos que se aplicam aos casos de uso únicos. Para atender às diversas necessidades dos usuários, use os refinamentos do LookML para personalizar visualizações e Análises detalhadas sem precisar modificar o LookML original. É possível incluir essas visualizações e Análises detalhadas em arquivos de modelo separados e específicos, personalizados para as necessidades diferentes dos usuários.

Nesta página, mostramos um exemplo de como usar refinamentos do LookML para personalizar uma única visualização base e criar Análises distintas para duas equipes diferentes da sua empresa. Ele também inclui exemplos de como ocultar e adicionar campos em conteúdo refinado.

Componentes

Pré-requisitos

Exemplo: criar várias Análises personalizadas na mesma visualização de base

Suponha que você tenha uma Análise de Vendas com dados sobre clientes, compras, frete e local. As equipes de marketing e logística da sua empresa precisam analisar esses dados, mas cada uma se concentra em campos diferentes na Análise de vendas.

Para facilitar a navegação, mostre apenas os campos úteis para cada equipe no seletor de campos "Explorar". Para isso, você pode definir dois refinamentos diferentes da Análise de vendas e da visualização sales em que ela se baseia. A opção "Explorar" da equipe de marketing mostra campos relacionados aos clientes e às tendências de compra, e a opção "Explorar" da equipe de logística mostra campos relacionados a frete e localização. Também é possível adicionar novos campos a cada visualização refinada, que são específicos para as necessidades de cada equipe.

No momento, o seletor da Análise Sales mostra todos os campos da visualização Sales:

A visualização "Vendas" inclui campos para data de criação, entrega, devolução e envio, além de ID, lucro, status, preço de venda médio e total e contagem.

O seletor de campo também mostra todos os campos da visualização Usuários associada:

A visualização Usuários inclui campos para idade, cidade, país, data de criação, e-mail, nome e sobrenome, ID, estado, CEP e número de telefone.

É possível refinar a visualização sales para criar duas Análises detalhadas separadas que contenham apenas os campos de interesse das equipes de marketing e logística seguindo estas etapas:

  1. Crie um arquivo LookML. Neste exemplo, um arquivo chamado base_analysis.lkml. Ele contém o LookML da Análise Sales, que é baseada na visualização sales e na visualização users combinada. Como você quer usar a Análise sales base e as visualizações correspondentes a fim de criar uma Análise personalizada para cada equipe, defina todos os campos e propriedades compartilhados em um único local, como um único arquivo.

    
    # base_analysis.lkml
    
    include: "views/sales.view.lkml"
    include: "views/inventory_items.view.lkml"
    include: "views/users.view.lkml"
    
    explore: sales {
      join: inventory_items {
        type: left_outer
        sql_on: ${sales.inventory_item_id} = ${inventory_items.id} ;;
        relationship: many_to_one
      }
    
      join: users {
        type: left_outer
        sql_on: ${sales.user_id} = ${users.id} ;;
        relationship: many_to_one
      }
    }
    
  2. Crie dois arquivos separados para armazenar os refinamentos da Análise de vendas, que você vai definir para cada equipe. É possível nomear os arquivos como marketing_analysis.lkml e logistics_analysis.lkml. O código LookML, mostrado a seguir, refina a Análise de base sales, conforme definido no arquivo base_analysis.lkml, mostrado anteriormente, para adicionar o rótulo Análise de vendas para a equipe de marketing em um novo arquivo chamado marketing_analysis.lkml. A instrução include: "/base/base_analysis.lkml" disponibiliza o conteúdo do arquivo base_analysis.lkml para referência no arquivo marketing_analysis.lkml.

    
    # marketing_analysis.lkml
    
    include: "/base/base_analysis.lkml"
    
    explore: +sales {
      label: "Sales Analysis for Marketing Team"
    }
    
    
  3. Crie um arquivo de modelo separado para cada equipe, como ecommerce_marketing.model e ecommerce_logistics.model. Ao armazenar os diferentes refinamentos em modelos dedicados separados para cada equipe, você pode refinar o mesmo conjunto de visualizações e Análises detalhadas várias vezes sem substituir as personalizações feitas para o caso de uso de uma equipe. Consulte a página de documentação Refinamentos do LookML para mais informações.

  4. Com o parâmetro include, inclua marketing_analysis.lkml no modelo ecommerce_marketing.model e logistics_analysis.lkml no modelo ecommerce_logistics.model.

  5. Adicione mais refinamentos aos arquivos marketing_analysis.lkml e logistics_analysis.lkml, conforme quiser. Por exemplo, você pode ocultar campos desnecessários e adicionar novos às Análises refinadas refinadas de cada equipe.

Um administrador do Looker pode configurar o acesso ao modelo para cada modelo dedicado. Assim, é possível dar acesso a equipes específicas no nível do Explore.

Como ocultar campos desnecessários das Análises refinadas

É possível refinar a visualização sales da seguinte maneira no arquivo marketing_analysis.lkml para ocultar os grupos de dimensões Devolvido, Enviado, Entregue e Criado, bem como a dimensão Status, já que esses campos não são usados pela equipe de marketing:


# marketing_analysis.lkml

include: "/base/base_analysis.lkml"

explore: +sales {
  label: "Sales Analysis for Marketing Team"
}

view: +sales
  dimension_group: returned {
    hidden: yes
  }

  dimension_group: shipped {
    hidden: yes
  }

  dimension_group: delivered {
    hidden: yes
  }

  dimension_group: created {
    hidden: yes
  }

  dimension: status {
    hidden: yes
  }
}

Da mesma forma, é possível usar o seguinte LookML no arquivo logistics_analysis.lkml para ocultar campos que a equipe de logística não precisa (como Lucro, Preço de venda e Preço médio de venda):


# logistics_analysis.lkml

include: "/base/base_analysis.lkml"

explore: +sales {
  label: "Sales Analysis for Logistics Team"
}

view: +sales {
  dimension: profit {
    hidden: yes
  }

  dimension: sale_price {
    hidden: yes
  }

  measure: average_sale_price {
    hidden: yes
  }
}

Como a equipe de logística não precisa ver as informações pessoais dos clientes, como nomes, idades ou endereços de e-mail, também é possível adicionar um refinamento à visualização users combinada no arquivo logistics_analysis.lkml para ocultar esses campos em "Explore":

  view: +users {
    dimension: age {
    hidden: yes
  }

  dimension: email {
    hidden: yes
  }

  dimension: first_name {
    hidden: yes
  }

  dimension: last_name {
    hidden: yes
  }

  dimension_group: created {
    hidden: yes
  }
}

Adicionar novos campos às "Explores" refinadas

Também é possível criar novos campos de interesse para a equipe de marketing na visualização refinada sales. Por exemplo, você pode adicionar os campos Preço médio de venda, Preço de venda total e Gasto médio por usuário na visualização sales refinada:

A visualização "Vendas" lista os campos ID, lucro, preço de venda e quantidade, além dos novos campos "Preço médio de venda", "Gasto médio por usuário" e "Preço total de venda".

É possível usar o LookML a seguir para adicionar esses campos à visualização sales refinada no arquivo marketing_analysis.lkml:


# marketing_analysis.lkml

view: +sales {
  measure: average_sale_price {
    type: average
    value_format_name: usd
    sql: ${sale_price} ;;
    drill_fields: [detail*]
  }

  measure: total_sale_price {
    type: sum
    value_format_name: usd
    sql: ${sale_price} ;;
    drill_fields: [detail*]
  }

  measure: average_spend_per_user {
    type: number
    value_format_name: usd
    sql: 1.0 * ${total_sale_price} / NULLIF(${users.count},0) ;;
    drill_fields: [detail*]
  }
}

A Análise de mercado que você criou vai conter os novos campos na visualização Vendas, além dos campos na visualização Usuários associada. Os grupos de dimensões Devolvidos, Enviados, Entregues e Criados e a dimensão Status ficam ocultos porque a equipe de marketing não precisa deles.

Da mesma forma, para a equipe de logística, você pode criar novos campos que serão úteis para ela, como Intervalos de tempo de envio e Tempo médio de frete:

A equipe de logística "Explorar" agora lista os novos campos "Intervalos de tempo de envio" e "Tempo médio de envio", além de outros campos de frete e local do usuário.

É possível usar o LookML a seguir para adicionar esses campos à visualização sales refinada no arquivo logistics_analysis.lkml:


# logistics_analysis.lkml

view: +sales {
  dimension: shipping_time_buckets {
    case: {
      when: {
        sql: ${shipping_time} <= 7 ;;
        label: "One Week"
      }
      when: {
        sql: ${shipping_time} > 7 AND ${shipping_time} <= 14 ;;
        label: "Two Weeks"
      }
      when: {
        sql:  ${shipping_time} > 14 ;;
        label: "Over Two Weeks"
      }
      else: "Note Shipped"
    }
  }

  measure: average_shipping_time {
    type: average
    value_format_name: decimal_4
    sql: ${shipping_time} ;;
  }
}

A Análise de logística que você criou vai conter os novos campos na visualização Vendas, além dos campos na visualização associada Usuários. Os campos Lucro, Preço de venda e Preço médio de venda da visualização Vendas e os campos Idade, E-mail, Nome, Sobrenome e Criado da Análise Usuários ficam ocultos porque a equipe de logística não precisa deles.

Agora cada equipe tem um Explore que é mais adaptado às necessidades específicas delas. Embora essa abordagem envolva um pouco mais de configuração antecipadamente, mantendo os dados principais em um só lugar, você pode torná-los mais fáceis de encontrar e usar.