Massimizzare la riusabilità del codice con DY LookML: personalizzare un'unica 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 vedere solo i campi applicabili ai suoi casi d'uso unici. Per soddisfare le diverse esigenze degli 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 le visualizzazioni perfezionate e le esplorazioni in file modello separati e dedicati, personalizzati in base alle esigenze degli utenti esigenze diverse.

Questa pagina fornisce un esempio di utilizzo dei perfezionamenti LookML per personalizzare un'unica 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: creare più esplorazioni personalizzate dalla stessa vista di base

Supponi 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 dei campi di esplorazione per semplificare l'esplorazione. 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 correlati ai clienti e alle tendenze di acquisto, mentre l'esplorazione del team di logistica può mostrare i campi relativi a spedizione e località. Puoi anche aggiungere nuovi campi a ogni visualizzazione perfezionata specifici per le esigenze di ciascun 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, reso e spedizione, nonché ID, profitto, stato, prezzo scontato medio e totale e conteggio.

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

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

Puoi perfezionare la vista sales in modo da creare due esplorazioni separate contenenti solo i campi di interesse per i team di marketing e logistica seguendo questa procedura:

  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 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 contenere i perfezionamenti dell'esplorazione Vendite che definirai per ogni team. Puoi assegnare ai file i nomi 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 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. Raccogliendo i diversi perfezionamenti in modelli dedicati separati 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 team. Per saperne di più, consulta la pagina della documentazione sui perfezionamenti LookML.

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

  5. Aggiungi eventuali altri perfezionamenti ai file marketing_analysis.lkml e logistics_analysis.lkml in base alle tue esigenze. 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.

Nascondendo i campi non necessari dalle esplorazioni perfezionate

Puoi perfezionare la vista sales come segue nel file marketing_analysis.lkml per nascondere i gruppi di dimensioni Restituiti, Spediti, Consegnati e Creati, nonché la dimensione Stato, poiché questi campi non sono 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 non necessari per il team di logistica (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 visualizzare 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 nella 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:

Nella vista Vendite sono elencati i campi ID, Profitto, Prezzo scontato e Conteggio, oltre ai nuovi campi Prezzo scontato medio, Spesa media per utente e Prezzo scontato totale.

Puoi utilizzare il seguente 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 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 di logistica creata conterrà i nuovi campi nella vista Vendite oltre a quelli della 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é 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.