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 consente di raggruppare i campi che potrebbero essere ripetuti spesso nel progetto all'interno del parametro fields o dei campi di drill-down. Se utilizzi un set 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 progetti LookML più efficienti e gestibili:

Riferimenti

Prerequisiti

Esempio: aggiungere gli stessi campi di drill-down a più misure

Supponiamo che tu voglia consentire agli utenti di eseguire il drill-down per visualizzare dettagli 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 Count nell'interfaccia utente di esplorazione apra una query sui campi ID, City, State e Country:

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, quindi farvi riferimento in più misure per consentire agli utenti di esaminare in dettaglio:


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

Il set user_details può essere utilizzato per definire un campo di drill-down 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 esegui l'esplorazione in dettaglio nella misura Count.

Puoi 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 Count , quando un utente seleziona un valore per Order Count, Total Sale Price o Average Sale Price nell'interfaccia utente di esplorazione, Looker apre una finestra contenente una query sui campi ID, City, State e Country.

Se vuoi modificare i campi di drill-down, ad esempio aggiungendo o rimuovendo un campo, dovrai aggiornare solo il set user_details.

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

Esempio: includere o omettere un set di campi da un'esplorazione

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

Ad esempio, supponiamo di avere una visualizzazione users che contiene informazioni sui clienti, inclusi i campi per ID, First Name, Last Name, Email e Age, nonché i campi di località come City, State, Country e Zip. La visualizzazione users è unita all'esplorazione orders:

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

Cosa succede se vuoi escludere i campi First Name, Last Name, Email, Age e Gender dall'esplorazione per i tuoi utenti? Puoi creare un set denominato user_info che elenca i campi che vuoi escludere dall'esplorazione Orders:

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 Orders con l'etichetta Orders Without User Data, 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 tranne quelli del 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 Orders all'interno dell'esplorazione Orders Without User Data omette i campi elencati nel set users_user.info dal selettore campi dell'esplorazione.

Puoi riutilizzare il set user_info per omettere questi campi dall'interfaccia utente di esplorazione per qualsiasi altra esplorazione a cui è unita la visualizzazione users. Se vuoi modificare il set user_info, ad esempio aggiungendo o rimuovendo un campo, dovrai aggiornare solo il set user_info.