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 più facili da gestire è utilizzare il parametro set di LookML. Il parametro set ti consente di raggruppare i campi che potrebbero essere ripetuti spesso nel progetto all'interno del parametro fields o dei campi esplorabili. Se utilizzi un insieme per raggruppare i campi ripetuti, crei un unico punto all'interno del modello in cui è possibile gestire il gruppo di campi.

Questa pagina include i seguenti esempi di utilizzo dei set LookML per rendere i tuoi progetti LookML più efficienti e gestibili:

Ingredienti

Prerequisiti

Esempio: aggiunta degli stessi campi di livello di analisi a più misure

Supponiamo che tu voglia che i tuoi utenti possano visualizzare in dettaglio informazioni più granulari sugli utenti ovunque vedano le metriche di vendita 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:

Se selezioni un valore per la misura Conteggio, si apre una query sui campi ID, Città, Stato e Paese.

Puoi creare un set denominato user_details che includa i campi id, city, state e country e poi farvi riferimento in più misure per consentire agli utenti di visualizzare i dati in dettaglio:


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

Il set user_details può essere utilizzato per definire un campo di visualizzazione in dettaglio 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 visualizzi in dettaglio la metrica Conteggio.

Puoi quindi riutilizzare questo set per creare altri campi di drill-down. 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 qualcosa nei campi di drill-down, ad esempio aggiungere o rimuovere un campo, devi solo aggiornare il set user_details.

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

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

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

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

Il selettore dei campi per la visualizzazione Ordini include tutti i campi delle visualizzazioni Ordini e Utenti, inclusi quelli che vuoi omettere.

Cosa succede se vuoi escludere i campi Nome, Cognome, Email, Età e Genere da Esplora per i tuoi utenti? Puoi creare un insieme denominato user_info che elenca i campi che vuoi 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 il set 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 nel set 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é il set user_details è escluso dall'esplorazione con la sintassi -users.user_details* nel parametro fields dell'esplorazione orders, la visualizzazione Ordini all'interno dell'esplorazione Ordini senza dati utente omette i campi elencati nel set users_user.info dal selettore dei campi dell'esplorazione.

Puoi riutilizzare l'insieme user_info per omettere questi campi dall'interfaccia utente di Esplora per qualsiasi altro Explore a cui è unita la visualizzazione users. Se vuoi modificare un aspetto qualsiasi del set user_info, ad esempio aggiungere o rimuovere un campo, devi solo aggiornare il set user_info.