Massimizzare la riutilizzabilità del codice con LookML DRY: personalizzazione di una singola visualizzazione 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 vedere solo i campi che si applicano ai suoi casi d'uso unici. Per soddisfare le diverse esigenze degli utenti, puoi utilizzare i perfezionamenti di LookML per personalizzare le visualizzazioni ed esplorazioni esistenti senza dover modificare il codice LookML originale. Puoi quindi includere queste viste ed esplorazioni perfezionate in file di modelli dedicati e separati, personalizzati in base alle diverse esigenze degli utenti.

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

Ingredienti

Prerequisiti

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

Supponiamo di avere un'esplorazione Vendite contenente dati su clienti, acquisti, spedizione e località. I team di marketing e logistica della tua azienda devono entrambi esplorare questi dati, ma si concentrano su campi diversi all'interno dell'esplorazione Vendite.

Vuoi visualizzare solo i campi utili a ciascun team nel selettore di campi di esplorazione per semplificare l'esplorazione. Per farlo, puoi definire due diversi perfezionamenti dell'esplorazione Vendite e della visualizzazione 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 di logistica può mostrare i campi relativi alla spedizione e alla località. Puoi anche aggiungere nuovi campi a ogni visualizzazione perfezionata specifici per le esigenze di ciascun team.

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

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

Il selettore di campi mostra anche tutti i campi della visualizzazione unita Utenti:

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

Per perfezionare la visualizzazione sales e creare due esplorazioni distinte contenenti solo i campi di interesse per i team di marketing e logistica, segui questi passaggi:

  1. Crea un nuovo file LookML, in questo esempio un file denominato base_analysis.lkml, contenente il codice LookML per l'esplorazione Vendite, basata sulla vista sales e sulla vista unita users. Poiché vuoi utilizzare l'esplorazione sales di base e le relative visualizzazioni per creare un'esplorazione personalizzata per ogni team, puoi definire tutti i campi e le proprietà condivisi in un'unica posizione, ad esempio in 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 contenere i perfezionamenti dell'esplorazione Vendite che definirai per ogni team. Puoi assegnare i nomi marketing_analysis.lkml e logistics_analysis.lkml ai file. 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 Analisi vendite per il team di 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 per i riferimenti 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 modello separato per ogni team, ad esempio ecommerce_marketing.model e ecommerce_logistics.model. Se inserisci i diversi perfezionamenti in modelli dedicati separati per ogni team, puoi perfezionare lo stesso insieme di viste ed esplorazioni più volte senza sovrascrivere le personalizzazioni che hai apportato per il caso d'uso di un team. Per ulteriori informazioni, consulta la pagina della documentazione relativa ai perfezionamenti di LookML.

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

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

Se vuoi, puoi chiedere a un amministratore di Looker di configurare l'accesso ai modelli per ogni modello dedicato per fornire a team specifici l'accesso a livello di esplorazione.

Nascondere i campi non necessari dalle esplorazioni perfezionate

Puoi perfezionare la visualizzazione sales come segue nel file marketing_analysis.lkml per nascondere i gruppi di dimensioni Restituito, Spedito, Consegnato e Creato, nonché la dimensione Stato, poiché 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
  }
}

Analogamente, puoi utilizzare il seguente codice LookML nel file logistics_analysis.lkml per nascondere i campi di cui il team di logistica non ha bisogno (ad esempio Profitto, Prezzo di vendita 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 di logistica non ha bisogno di vedere informazioni personali sui clienti, come nomi, età o indirizzi email, puoi anche aggiungere un perfezionamento per la visualizzazione users unita all'interno del file logistics_analysis.lkml per nascondere questi campi dall'esplorazione:

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

Aggiunta di nuovi campi alle esplorazioni perfezionate

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

La visualizzazione Vendite elenca ID, Utile, Prezzo scontato e Conteggio, oltre ai nuovi campi Prezzo scontato medio, Spesa media per utente e Prezzo scontato totale.

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 ai campi nella visualizzazione unita Utenti. I gruppi di dimensioni Restituito, Spedito, Consegnato e Creato e la dimensione Stato sono nascosti perché il team di marketing non ne ha bisogno.

Analogamente, per il team di logistica puoi creare nuovi campi utili, come Bucket dei tempi di spedizione e Tempo di spedizione medio:

La scheda Esplora del team di logistica ora elenca i nuovi campi Bucket dei tempi di spedizione e Tempo di spedizione medio, insieme ad altri campi relativi alla spedizione e alla posizione 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 ai campi nella visualizzazione unita Utenti. 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é il team di logistica non ne ha bisogno.

Ora ogni team ha un'esplorazione più personalizzata in base alle proprie esigenze specifiche. Sebbene questo approccio richieda un po' più di configurazione iniziale, mantenendo i dati di base in un unico posto, puoi trovarli e utilizzarli più facilmente.