Se disponi dell'autorizzazione per creare campi personalizzati, puoi creare gruppi personalizzati ad hoc per le dimensioni senza utilizzare funzioni logiche nelle espressioni di Looker o sviluppare la logicaCASE WHEN
nei parametrisql
o nei campitype: case
.
Puoi anche creare bin personalizzati ad hoc per dimensioni di tipo numerico senza dover utilizzare funzioni logiche nelle espressioni di Looker o sviluppare type: tier
campi LookML se disponi dell'autorizzazione per creare campi personalizzati.
Il bucketing può essere molto utile per creare dimensioni di raggruppamento personalizzate in Looker.
Esistono tre modi per creare bucket in Looker:
- Utilizzo del tipo
dimension
tier
- Utilizzo del parametro
case
- Utilizzo di un'istruzione
CASE WHEN
SQL nel parametroSQL
di un campo LookML
Utilizzo di tier
per il bucketing
Per creare bucket di numeri interi, possiamo semplicemente definire il tipo dimension
come tier
:
dimension: users_lifetime_orders_tier { type: tier tiers: [0,1,2,5,10] sql: ${users_lifetime_orders} ;; }
Puoi utilizzare il parametro style
per personalizzare la visualizzazione dei livelli durante l'esplorazione. Le quattro opzioni per style
sono le seguenti:
Ad esempio:
dimension: age_tier { type: tier tiers: [0,10,20,30,40,50,60,70,80] style: integer sql: ${age} ;; }
Il parametro style
classic
è il valore predefinito e ha il formato Tx[x,x]
, dove Tx
indica il numero del livello e [x,x]
indica l'intervallo. L'immagine seguente mostra una tabella di dati di esplorazione con Conteggio utenti raggruppato per Età utenti:
L'immagine seguente mostra esempi delle altre opzioni del parametro style
:
-
interval
: con il formato[x,x]
, che indica il valore più basso e il valore più alto di un livello -
integer
: con il formatox to x
, che indica il valore più basso e il valore più alto di un livello -
relational
: con il formato>= x and <x
, che indica che un valore è maggiore o uguale al valore del livello più basso e inferiore al valore del livello più alto
Aspetti da considerare
L'utilizzo di tier
insieme al riempimento delle dimensioni può causare bucket di livelli imprevisti.
Ad esempio, una dimensione type: tier
, Fascia d'età, mostrerà i bucket di fascia per Meno di 0 e 0-9 quando il completamento delle dimensioni è abilitato, anche se i dati non includono i valori di età per questi bucket:
Quando il riempimento delle dimensioni è disattivato per Fascia d'età, i bucket riflettono in modo più accurato i valori dell'età disponibili nei dati, a partire dal bucket da 10 a 19:
Puoi attivare o disattivare il completamento delle dimensioni passando il mouse sopra il nome della dimensione nell'esplorazione, facendo clic sull'icona a forma di ingranaggio a livello di campo e selezionando Rimuovi valori di livello compilati per disattivare o Completa valori di livello mancanti per attivare.
Per saperne di più su Looker tiers
, consulta la pagina della documentazione Tipi di dimensioni, filtri e parametri.
Utilizzo di case
per il bucketing
Puoi utilizzare il parametro case
per creare bucket con nome personalizzato mediante l'ordinamento personalizzato. Il parametro case
è consigliato per un insieme fisso di bucket, in quanto può aiutare a controllare il modo in cui i valori vengono presentati, ordinati e utilizzati nei filtri e nelle visualizzazioni dell'interfaccia utente. Ad esempio, con case
, un utente potrà selezionare solo i valori del bucket definiti in un filtro.
Per creare bucket con case
, puoi definire una dimensione, ad esempio un bucket per gli importi degli ordini:
dimension: order_amount_bucket { case: { when: { sql: ${order_amount} <= 50;; label: "Small" } when: { sql: ${order_amount} > 50 AND ${order_amount} <= 150;; label: "Medium" } when: { sql: ${order_amount} > 150;; label: "Large" } else:"Unknown" } }
In genere, il parametro case
ordina i valori nell'ordine in cui sono elencati i bucket. Per la dimensione order_amount_bucket
, l'ordine dei bucket è Piccolo, Medio e Grande:
Se vuoi ordinare in modo alfanumerico, aggiungi il parametro alpha_sort
alla dimensione, in questo modo:
dimension: order_amount_bucket { alpha_sort: yes case: { when: { sql: ${order_amount} <= 50;; label: "Small" } when: { sql: ${order_amount} > 50 AND ${order_amount} <= 150;; label: "Medium" } when: { sql: ${order_amount} > 150;; label: "Large" } else:"Unknown" } }
Per le dimensioni in cui nell'output sono necessari molti valori distinti (questo richiederebbe la definizione di ogni output con un'istruzione WHEN
o ELSE
) oppure quando vuoi implementare un'istruzione ELSE
più complessa, ti consigliamo di utilizzare un CASE WHEN
SQL, di cui parleremo nella prossima sezione.
Scopri di più sul parametro case
nella pagina della documentazione Parametri di campo.
Utilizzo di SQL CASE WHEN
per il bucketing
Un'istruzione CASE WHEN
SQL è consigliata per un raggruppamento più complesso o per l'implementazione di un'istruzione CASE WHEN
più sfumata.
Ad esempio, potresti voler utilizzare metodi di raggruppamento diversi a seconda della destinazione di un ordine. Si potrebbe utilizzare un'istruzione SQL CASE WHEN
per creare una dimensione di bucket composta, in cui l'istruzione THEN
restituisce dimensioni anziché stringhe:
dimension: compound_buckets { sql: CASE WHEN ${orders.destination} = 'US' THEN ${us_buckets} WHEN ${orders.destination} = 'CA' THEN ${canada_buckets} ELSE ${intl_buckets} END ;; }