Massimizzazione del riutilizzo del codice con LookML DRY: personalizzazione di una singola vista di base per più casi d'uso

Immagina di avere molti utenti che condividono un'esplorazione, ma che hanno casi d'uso diversi a seconda del team o della regione. Ogni utente vuole visualizzare solo i campi applicabili ai propri casi d'uso specifici. Per soddisfare le diverse esigenze dei tuoi utenti, puoi utilizzare i perfezionamenti di LookML per personalizzare le viste e le esplorazioni esistenti senza dover modificare il codice LookML originale. Puoi quindi includere queste visualizzazioni e esplorazioni perfezionate in file modello separati e dedicati, personalizzati in base alle diverse esigenze dei tuoi utenti.

Questa pagina fornisce un esempio di utilizzo dei perfezionamenti LookML per personalizzare una singola visualizzazione di base e creare esplorazioni distinte per due team diversi all'interno della tua azienda. Sono inoltre inclusi esempi di come nascondere e aggiungere campi nei contenuti perfezionati.

Ingredienti

Prerequisiti

Esempio: creare più esplorazioni personalizzate dalla stessa visualizzazione di base

Supponi di avere un'esplorazione Vendite che contiene dati su clienti, acquisti, spedizioni e località. I team di marketing e logistica della tua azienda devono esplorare questi dati, ma ognuno si concentra su campi diversi all'interno dell'esplorazione Vendite.

Per semplificare l'esplorazione, vuoi visualizzare solo i campi utili per ogni team nel selettore di campi Esplora. A questo scopo, puoi definire due diversi perfezionamenti dell'esplorazione Vendite e della vista sales su cui si basa. L'esplorazione del team di marketing può mostrare i campi relativi ai clienti e alle tendenze di acquisto, mentre l'esplorazione del team addetto alla logistica può mostrare i campi relativi alla spedizione e alla località. Puoi anche aggiungere nuovi campi a ogni visualizzazione perfezionata specifiche per le esigenze di ogni team.

Attualmente, il selettore campi per l'esplorazione Vendite mostra tutti i campi della vista Vendite:

La visualizzazione Vendite include i campi per la data di creazione, consegna, restituzione e spedizione, nonché ID, profitto, stato, prezzo di vendita medio e totale e conteggio.

Il selettore campi mostra anche tutti i campi dalla visualizzazione Utenti unita:

La visualizzazione Utenti include i campi relativi a età, città, paese, data di creazione, email, nome e cognome, ID, stato, codice postale e conteggio.

Puoi perfezionare la vista sales per creare due esplorazioni separate contenenti solo i campi di interesse per i team di marketing e logistica seguendo questi passaggi:

  1. Crea un nuovo file LookML, in questo esempio un file denominato base_analysis.lkml, che contiene il LookML dell'esplorazione Vendite, che si basa sulla vista sales e sulla vista users unita. Dal momento che vuoi utilizzare l'esplorazione sales di base e le viste corrispondenti per creare un'esplorazione personalizzata per ogni team, puoi definire tutti i campi e le proprietà condivisi in un'unica posizione, ad esempio all'interno di un singolo file.

    
    # 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. Crea due file separati per ospitare i perfezionamenti dell'esplorazione Vendite che definirai per ogni team. Puoi assegnare un nome ai file marketing_analysis.lkml e logistics_analysis.lkml. Il codice LookML, mostrato di seguito, perfeziona l'esplorazione sales di base come definita nel file base_analysis.lkml, mostrato in precedenza, per aggiungere l'etichetta Team di analisi delle vendite per il marketing in un nuovo file denominato marketing_analysis.lkml. L'istruzione include: "/base/base_analysis.lkml" rende disponibili i contenuti del file base_analysis.lkml come riferimento all'interno del file marketing_analysis.lkml.

    
    # marketing_analysis.lkml
    
    include: "/base/base_analysis.lkml"
    
    explore: +sales {
      label: "Sales Analysis for Marketing Team"
    }
    
    
  3. Crea un file del modello separato per ogni team, ad esempio ecommerce_marketing.model e ecommerce_logistics.model. Ospitando i diversi perfezionamenti in modelli dedicati distinti per ogni team, puoi perfezionare lo stesso insieme di visualizzazioni ed esplorazioni più volte senza sovrascrivere le personalizzazioni che hai apportato per il caso d'uso di un singolo team. Per saperne di più, consulta la pagina della documentazione relativa ai perfezionamenti LookML.

  4. Con il parametro include, includi marketing_analysis.lkml nel modello ecommerce_marketing.model e logistics_analysis.lkml all'interno del modello ecommerce_logistics.model.

  5. Aggiungi eventuali ulteriori perfezionamenti ai file marketing_analysis.lkml e logistics_analysis.lkml, se necessario. Ad esempio, puoi nascondere i campi non necessari e aggiungere nuovi campi alle esplorazioni perfezionate per ogni team.

Facoltativamente, puoi chiedere a un amministratore di Looker di configurare l'accesso al modello per ogni modello dedicato in modo da fornire a team specifici l'accesso a livello di esplorazione.

Nascondendo i campi non necessari alle esplorazioni perfezionate.

Puoi perfezionare la visualizzazione sales nel file marketing_analysis.lkml come segue per nascondere i gruppi di dimensioni Restituiti, Spediti, Consegnati e Creati, nonché la dimensione Stato, in quanto questi campi non vengono utilizzati dal team di 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
  }
}

Allo stesso modo, puoi utilizzare il seguente LookML nel file logistics_analysis.lkml per nascondere i campi non necessari al team di logistica (come Profitto, Prezzo scontato e Prezzo di vendita medio):


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

Poiché il team per la logistica non ha bisogno di visualizzare informazioni personali sui clienti, ad esempio nomi, età o indirizzi email, puoi anche aggiungere un perfezionamento alla vista users unita all'interno del file logistics_analysis.lkml per nascondere questi campi da Esplora:

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

Aggiungere nuovi campi alle esplorazioni perfezionate.

Puoi anche creare nuovi campi di interesse per il team di marketing all'interno della vista sales perfezionata. Ad esempio, puoi aggiungere i campi Prezzo di vendita medio, Prezzo di vendita totale e Spesa media per utente all'interno della raffinata vista sales:

Nella visualizzazione Vendite sono elencati gli ID, il profitto, il prezzo scontato e il conteggio, oltre ai nuovi campi Prezzo di vendita medio, Spesa media per utente e Prezzo totale di vendita.

Puoi utilizzare il seguente codice LookML per aggiungere questi campi alla vista sales perfezionata nel file 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*]
  }
}

L'esplorazione di marketing che hai creato conterrà i nuovi campi nella visualizzazione Vendite, oltre a quelli nella vista Utenti unita. I gruppi di dimensioni Restituito, Spedito, Consegnato e Creato e la dimensione Stato sono nascosti in quanto non sono necessari per il team di marketing.

Analogamente, per il team di logistica, puoi creare nuovi campi che lo saranno utili, come Intervalli di tempo di spedizione e Tempo medio di spedizione:

L'esplorazione del team di logistica ora elenca i nuovi campi Intervalli tempo di spedizione e Tempo medio di spedizione, insieme ad altri campi relativi alla spedizione e alla località dell'utente.

Puoi utilizzare il seguente codice LookML per aggiungere questi campi alla vista sales perfezionata nel file 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} ;;
  }
}

L'esplorazione della logistica che hai creato conterrà i nuovi campi nella visualizzazione Vendite, oltre a quelli nella vista Utenti unita. I campi Profitto, Prezzo di vendita e Prezzo di vendita medio della visualizzazione Vendite e i campi Età, Email, Nome, Cognome e Creato dell'esplorazione Utenti sono nascosti, perché non sono necessari per il team di logistica.

Ogni team ora dispone di un'esplorazione più personalizzata in base alle sue esigenze specifiche. Anche se questo approccio prevede un po' più di configurazione all'inizio, mantenendo i dati principali in un unico posto, è più facile trovarli e utilizzarli.