Massimizzare la riutilizzabilità del codice con LookML DRY: definizione di elenchi di campi riutilizzabili con il parametro set

Un modo per rendere i progetti LookML più efficienti e facili da gestire è utilizzare il parametro set di LookML. Il parametro set ti consente di raggruppare i campi che possono essere ripetuti spesso nel progetto all'interno del parametro fields o dei campi di visualizzazione in dettaglio. Se utilizzi un insieme per raggruppare i campi ripetuti, crei un unico punto all'interno del modello in cui è possibile gestire questo gruppo di campi.

Questa pagina include i seguenti esempi di utilizzo degli insiemi LookML per rendere i progetti LookML più efficienti e gestibili:

Ingredienti

Prerequisiti

Esempio: aggiunta degli stessi campi di visualizzazione dettagliata a più misure

Supponiamo che tu voglia che gli utenti possano visualizzare in dettaglio gli utenti ovunque vedi le metriche sulle vendite in esplorazioni, look o dashboard, in modo che la selezione di un valore per la misura Conteggio nell'interfaccia utente di Esplora apra una query sui campi ID, Città, Stato e Paese:

La selezione di un valore per la misura Conteggio apre una query sui campi ID, Città, Stato e Paese.

Puoi creare un insieme denominato user_details che includa i campi id, city, state e country e poi fare riferimento a questi campi in più misure per consentire agli utenti di visualizzare i dettagli:


set: user_details {
  fields: [id, city, state, country]
}

L'insieme user_details può essere utilizzato per definire un campo di visualizzazione dettagliata per la misura count:


measure: count {
  type: count
  drill_fields: [user_details*]
}

In questo esempio, la sintassi [set_name*] viene utilizzata per specificare che i campi all'interno di user_details verranno visualizzati nei risultati della query quando esamini in dettaglio la misura Conteggio.

Puoi quindi riutilizzare questo set per creare ulteriori campi di visualizzazione dettagliata. Ad esempio, puoi aggiungere il codice LookML drill_fields: [user_details*] alle misure order_count, total_sale_price e average_sale_price:


measure: order_count {
  view_label: "Orders"
  type: count_distinct
  description: "Number of orders"
  sql: ${order_id} ;;
  drill_fields: [user_details*]

}

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

measure: average_sale_price {
  type: average
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [user_details*]
}

Come per la misura Conteggio, quando un utente seleziona un valore per Conteggio ordini, Prezzo di vendita totale o Prezzo di vendita medio nell'interfaccia utente di Esplora, Looker apre una finestra contenente una query sui campi ID, Città, Stato e Paese.

Se vuoi modificare i campi di visualizzazione dettagliata, ad esempio aggiungendone o rimuovendone uno, devi solo aggiornare l'insieme user_details.

Puoi anche fare riferimento a un insieme all'interno del parametro drill_fields di una vista per definire i campi di visualizzazione per tutte le misure all'interno della vista che non hanno già campi di visualizzazione specificati a livello di campo.

Esempio: inclusione o omissione di un insieme di campi da un'esplorazione

Supponiamo che tu voglia semplificare il selettore di campi di esplorazione per gli utenti escludendo i campi non essenziali per questi utenti.

Ad esempio, supponiamo di avere una visualizzazione users che contiene informazioni sui clienti, inclusi i campi per ID, Nome, Cognome, Email e Età, nonché i campi posizione come Città, Provincia, Paese e CAP. La vista users è unita all'esplorazione orders:

Il selettore di campi per la visualizzazione Ordini include tutti i campi della visualizzazione Ordini e Utenti, inclusi quelli che vuoi omettere.

Cosa succede se vuoi escludere i campi First Name (Nome), Last Name (Cognome), Email (Email), Age (Età) e Gender (Genere) dall'esplorazione per i tuoi utenti? Puoi creare un insieme denominato user_info che elenca i campi da escludere dall'esplorazione Ordini:

L'esplorazione Ordini senza dati utente esclude i campi Nome, Cognome, Email, Età e Genere dal selettore dei campi dell'esplorazione.

Il codice LookML per l'insieme user_info sarà simile al seguente:


set: user_info {
  fields: [first_name, last_name, email, age, gender]
}

Per definire un'esplorazione Ordini con l'etichetta Ordini senza dati utente, unisci la visualizzazione users all'esplorazione orders. Aggiungi il codice LookML fields: [ALL_FIELDS*, -users.user_info*] all'esplorazione orders per includere tutti i campi, ad eccezione di quelli nell'insieme user_info della visualizzazione users:


explore: orders {
  fields: [ALL_FIELDS*, -users.user_info*]
  label: "Orders Without User Data"
  join: users {
    type: left_outer
    sql_on: ${orders.user_id} = ${users.id} ;;
    relationship: many_to_one
  }
}

Poiché l'insieme user_details è escluso dall'esplorazione con la sintassi -users.user_details* nel parametro fields dell'esplorazione orders, la vista Ordini all'interno dell'esplorazione Ordini senza dati utente omette i campi elencati nell'insieme users_user.info dal selettore dei campi dell'esplorazione.

Puoi riutilizzare l'impostazione user_info per omettere questi campi dall'interfaccia utente di Esplora per tutte le altre esplorazioni a cui è unita la visualizzazione users. Se vuoi modificare un aspetto dell'insieme user_info, ad esempio aggiungere o rimuovere un campo, devi solo aggiornare l'insieme user_info.