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

Imagine que você tenha muitos usuários que compartilham uma Análise, mas têm casos de uso diferentes dependendo da equipe ou região. Cada usuário quer ver apenas os campos que se aplicam aos seus casos de uso específicos. Para atender às diversas necessidades dos usuários, você pode usar os refinamentos do LookML para personalizar visualizações e Análises existentes sem precisar modificar o LookML original. Depois, você pode incluir essas visualizações refinadas e Análises em arquivos de modelo separados e personalizados, personalizados para os usuários a necessidades diferentes.

Esta página mostra um exemplo de como usar os refinamentos do LookML para personalizar uma única visualização de 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: como criar várias Análises personalizadas usando a 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 delas foca em campos diferentes da Análise de vendas.

Você quer exibir apenas os campos que são úteis para cada equipe no seletor de campo "Explorar" para facilitar a exploração. Para fazer isso, defina dois refinamentos diferentes da Análise de vendas e da visualização sales em que ela se baseia. A ferramenta Analisar da equipe de marketing pode mostrar campos relacionados a clientes e tendências de compra, enquanto a Análise da equipe de logística pode mostrar campos relacionados a frete e local. Também é possível adicionar novos campos a cada visualização refinada que sejam específicos para as necessidades de cada equipe.

No momento, o seletor de campos para a análise detalhada Vendas mostra todos os campos da visualização Vendas:

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

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

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

Para refinar a visualização sales e criar duas análises detalhadas separadas que contêm apenas os campos de interesse das equipes de marketing e logística, siga estas etapas:

  1. Crie um novo arquivo do LookML. Neste exemplo, um arquivo chamado base_analysis.lkml, que contém o LookML para a Análise Sales, que é baseada na visualização sales e na visualização users mesclada. Como você quer usar a Análise básica sales e as visualizações correspondentes a fim de criar uma Análise personalizada para cada equipe, é possível definir todos os campos e propriedades compartilhados em um único local, como em 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 Vendas que você vai definir para cada equipe. Você pode nomear os arquivos como marketing_analysis.lkml e logistics_analysis.lkml. O código do LookML, mostrado a seguir, refina a análise sales de base, conforme definida 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 incluir os diferentes refinamentos em modelos dedicados e separados para cada equipe, é possível refinar o mesmo conjunto de visualizações e Análises 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 inclua logistics_analysis.lkml no modelo ecommerce_logistics.model.

  5. Adicione outros refinamentos aos arquivos marketing_analysis.lkml e logistics_analysis.lkml conforme necessário. Por exemplo, é possível ocultar campos desnecessários e adicionar novos campos às Análises refinadas de cada equipe.

Você pode pedir para um administrador do Looker configurar o acesso ao modelo para cada modelo dedicado e conceder a equipes específicas acesso de análise.

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 Criada, assim 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, você também pode adicionar um refinamento para a visualização users mesclada no arquivo logistics_analysis.lkml para ocultar esses campos da Análise:

  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
  }
}

Adição de novos campos às Análises refinadas

Também é possível criar novos campos do interesse da equipe de marketing na visualização refinada do sales. Por exemplo, você pode adicionar campos para 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 ID, Lucro, Preço de venda e Contagem, 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 seguinte LookML 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 marketing que você criou conterá os novos campos na visualização Vendas, além dos campos na visualização combinada Usuários. 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 úteis para a equipe de logística, como Buckets de tempo de envio e Tempo médio de envio:

A guia "Explorar" da equipe de logística agora lista os novos campos "Buckets de tempo de envio" e "Tempo médio de envio", além de outros campos de frete e localização do usuário.

É possível usar o seguinte LookML 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 conterá os novos campos na visualização Vendas, além dos campos na visualização combinada Usuários. Os campos Lucro, Preço promocional e Preço médio de venda na visualização Vendas e os campos Idade, E-mail, Nome, Sobrenome e Criado na Análise Usuários estão ocultos porque a equipe de logística não precisa deles.

Agora cada equipe tem uma Análise mais adaptada às necessidades específicas. Embora essa abordagem envolva um pouco mais de configuração no início, ao manter os principais dados em um só lugar, você pode facilitar a localização e o uso.