Termini e concetti di LookML

Le sezioni Operatore di sostituzione ($), Scoping e denominazione, Dialetto SQL e Blocco SQL sono state spostate in una nuova pagina della documentazione dedicata all'incorporamento di SQL e facendo riferimento agli oggetti LookML.

Panoramica

Questa pagina definisce i termini e i concetti presenti ripetutamente nello sviluppo LookML. Il seguente diagramma mostra le relazioni tra gli elementi contenuti in altri elementi. Tutti i termini mostrati qui sono definiti nelle sezioni seguenti.

Looks e dashboard definite dall'utente non fanno parte di questo diagramma, poiché gli utenti li creano senza utilizzare LookML. Tuttavia, le query si basano sugli elementi LookML sottostanti e mostrati nel diagramma precedente.

progetto LookML

Un progetto è una raccolta di file LookML che descrivono le relazioni esistenti fra le tabelle del tuo database e il modo in cui devono essere interpretate da Looker. Ogni progetto LookML risiede nel proprio repository Git per il controllo delle versioni.

Ecco i tipi di file più comuni in un progetto LookML:

  • Un modello contiene le informazioni sulle tabelle da utilizzare e su come devono essere unite tra loro. Qui in genere definirai il modello, le esplorazioni e le unioni.
  • Una vista contiene informazioni su come accedere o calcolare le informazioni da ogni tabella (o da più tabelle unite). Qui in genere definirai la vista, le sue dimensioni e misure e i relativi set di campi.
  • Un'esplorazione è spesso definita all'interno di un file modello, ma a volte è necessario un file Esplora diverso per una tabella derivata o per estendire o perfezionare un'esplorazione in più modelli.
  • Un file manifest può contenere istruzioni per l'utilizzo dei file importati da un altro progetto o per le impostazioni di localizzazione del progetto.

Consulta la pagina della documentazione relativa ai file di progetto LookML per informazioni su altri tipi di file che puoi avere nel tuo progetto LookML.

Una volta connessa Looker al tuo database, puoi specificare la connessione del database da utilizzare per il tuo progetto Looker:

In Looker, puoi accedere ai tuoi progetti dal menu Develop (Sviluppa).

A partire da Looker 21.12, se l'amministratore ha abilitato la funzionalità di navigazione avanzata Labs, puoi accedere ai tuoi progetti selezionando l'opzione Sviluppo nel nuovo pannello di navigazione avanzata a sinistra.

Da dove provengono i progetti e i file LookML?

Il modo più comune per creare file LookML è generare un progetto LookML dal tuo database. Puoi anche creare un progetto vuoto e manualmente i relativi file LookML oppure creare un progetto clonando un repository Git esistente.

Quando generi un nuovo progetto dal tuo database, Looker crea un insieme di riferimento di file che puoi utilizzare come modello per la creazione del progetto:

  • Più file di visualizzazione, un file per ogni tabella nel database.
  • Un unico file model. Nel file del modello viene dichiarata un'esplorazione per ogni visualizzazione. Ogni dichiarazione di Explore include la logica di join per unire tutte le visualizzazioni che Looker ha stabilito in merito all'Explore.

Da qui, puoi personalizzare il progetto rimuovendo le visualizzazioni e le esplorazioni indesiderate e aggiungendo dimensioni e misure personalizzate.

Importanti strutture LookML

Come mostrato nel diagramma precedente, un progetto in genere contiene uno o più file di modello che contengono parametri che definiscono un modello e le relative esplorazioni e join. Inoltre, i progetti in genere contengono uno o più file di vista, ciascuno contenente parametri che definiscono la vista e i relativi campi (incluse dimensioni e misure) e insiemi di campi. Il progetto può anche contenere un file manifest del progetto che contiene parametri per utilizzare i file di visualizzazione di altri progetti o configurare valori predefiniti di localizzazione. In questa sezione vengono descritte le strutture principali.

Modello

Un modello è un portale personalizzato nel database, progettato per fornire un'esplorazione dei dati intuitiva per utenti aziendali specifici. Possono esistere più modelli per la stessa connessione di database in un singolo progetto LookML. Ogni modello può esporre dati diversi a utenti differenti. Ad esempio, gli agenti di vendita hanno bisogno di dati diversi rispetto ai dirigenti della società, quindi è opportuno sviluppare due modelli per offrire viste del database adatte a ciascun utente.

In Looker, le query sono raggruppate in base al modello di appartenenza. Gli utenti vedranno i modelli elencati nel menu Esplora:

A partire dalla versione 21.12 di Looker, se l'amministratore ha attivato la funzionalità Labs di Navigazione avanzata, puoi accedere alle esplorazioni e visualizzare un elenco di esplorazioni selezionando l'opzione Esplora nel nuovo pannello di navigazione avanzata a sinistra.

Un file modello specifica il database a cui connettersi e definisce una raccolta di esplorazioni per quella connessione. Per convenzione, ogni file dichiara esattamente un modello e, nel nuovo LookML, i nomi file dei modelli terminano con .model.lkml. Il nome del file del modello determina il nome visualizzato in Looker.

La forma generale di una dichiarazione del modello in LookML è mostrata di seguito. Per informazioni dettagliate, consulta la pagina della documentazione Parametri del modello.

connection: connection_name
persist_for: timeframe
case_sensitive: yes | no
include: "filename_pattern"   # for example: *.view.lkml
# More include declarations

explore: explore_name {
  view_name: view_name
  join: view_name {
    # join parameters
  }
  # More join declarations
}
# More explore declarations

Visualizza

Una dichiarazione di visualizzazione definisce un elenco di campi (dimensioni o misure) e il relativo collegamento a una tabella sottostante o a una tabella derivata. In LookML, una vista di solito fa riferimento a una tabella di database sottostante, ma può rappresentare anche una tabella derivata.

Una vista può essere unita ad altre. La relazione tra le visualizzazioni è in genere definita come parte di una dichiarazione di esplorazione in un file modello.

In Looker, i nomi delle visualizzazioni compaiono all'inizio delle dimensioni e vengono misurati nella tabella dati. Questa convenzione di denominazione chiarisce a quale vista appartiene il campo:

Una vista è archiviata in un file .view.lkml. Il modulo generale di una dichiarazione di visualizzazione è il seguente. Per informazioni dettagliate sull'utilizzo, consulta la pagina Visualizzazione dei parametri.

view: view_name {
  dimension: field_name {
    # dimension_parameters
  }
  # more dimension declarations
  measure: field_name {
    # measure_parameters
  }
  # more measure declarations
  set: first_set {
    fields: [field_one, field_two]
  }
}

Quando utilizzi una misura di type: count in un'esplorazione, la visualizzazione etichetta i valori risultanti con il nome della visualizzazione anziché la parola "Conteggio". Per evitare confusione, ti consigliamo di pluralizzare il nome della vista, selezionando Mostra nome campo completo in Serie nelle impostazioni di visualizzazione oppure di utilizzare view_label con una versione pluralizzata del nome della vista.

Esplora

Un'esplorazione è una visualizzazione che gli utenti possono utilizzare per le query. L'esplorazione può essere considerato il punto di partenza per una query, o in termini SQL, come il FROM di un'istruzione SQL. Non tutte le visualizzazioni sono esplorazioni, perché non tutte descrivono viste come entità di interesse. Ad esempio, una vista State corrispondente a una tabella di ricerca relativa ai nomi degli stati non garantisce l'esplorazione, perché gli utenti aziendali non devono mai eseguire query direttamente su di essa. D'altra parte, gli utenti aziendali probabilmente vogliono un modo per eseguire query su una vista Ordini, quindi definire un'esplorazione per Ordini ha senso.

Una dichiarazione explore specifica le relazioni di join con altre viste. Continuando con gli esempi precedenti, la vista Ordini potrebbe entrare nella vista States, identificando lo stato in cui si è verificata una vendita. Per maggiori dettagli, consulta la sezione Abbonamenti.

In Looker, gli utenti possono visualizzare le esplorazioni elencate nel menu Explore (Esplora):

Per convenzione, le esplorazioni vengono dichiarate nel file modello. L'esempio seguente mostra la dichiarazione relativa a un Explore di orders per un database di e-commerce. Le visualizzazioni orders e customers sono definite altrove nei rispettivi file delle viste.

# ———————————————
# file: ecommercestore.model.lookml
# ———————————————
connection: order_database
include: "filename_pattern"   # include all the views
explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

Per informazioni dettagliate sulle dichiarazioni join, consulta la sezione Partecipa. Consulta la pagina Documentazione dei parametri di unione per informazioni dettagliate sull'utilizzo.

Campi di dimensione e misurazione

Le viste contengono campi, principalmente dimensioni e misure, che sono gli elementi fondamentali per le query Looker.

In Looker, una dimensione è un campo raggruppabile e può essere utilizzato per filtrare i risultati della query. Può essere:

  • Un attributo, che ha un'associazione diretta a una colonna in una tabella sottostante
  • Una verità o un valore numerico
  • Un valore derivato, calcolato in base ai valori di altri campi in una singola riga

Ad esempio, le dimensioni di una visualizzazione Prodotti possono includere il nome, il modello, il colore, il prezzo e la data di fine del ciclo di vita del prodotto.

Una misura è un campo che utilizza una funzione di aggregazione SQL, come COUNT, SUM, AVG, MIN o MAX. Qualsiasi campo calcolato in base ai valori di altri valori di misurazione è anche una misura. Le misure possono essere utilizzate per filtrare i valori raggruppati. Ad esempio, le misure per una visualizzazione Vendite potrebbero includere gli articoli totali venduti (un conteggio), il prezzo scontato totale (la somma) e il prezzo medio della vendita (una media).

Il comportamento e i valori previsti di un campo dipendono dal tipo dichiarato, ad esempio string, number o time. Per le misure, i tipi includono funzioni aggregate, come sum e percent_of_previous. Per informazioni dettagliate, consulta Tipi di dimensioni e Tipi di misurazione.

In Looker, i campi sono elencati nella pagina Explore (Esplora) nel selettore campi sul lato sinistro della pagina.

Per convenzione, i campi vengono dichiarati come parte della vista a cui appartengono, memorizzati in un file di vista. Il seguente esempio mostra diverse dichiarazioni di dimensioni e misurazioni. Nota l'uso dell'operatore di sostituzione ($) per fare riferimento ai campi senza utilizzare un nome di colonna SQL con ambito completo.

Di seguito sono riportati alcuni esempi di dichiarazioni di dimensioni e misure:

view: orders {
  dimension: id {
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }
  dimension: customer_id {
    sql: ${TABLE}.customer_id ;;
  }
  dimension: amount {
    type: number
    value_format: "0.00"
    sql: ${TABLE}.amount ;;
  }
  dimension_group: created {
    type: time
    timeframes: [date, week]
    sql: ${TABLE}.created_at ;;
  }
  measure: count {
    type: count           # creates sql COUNT(orders.id)
    sql: ${id} ;;
  }
  measure: total_amount {
    type: sum             # creates sql SUM(orders.amount)
    sql: ${amount} ;;
  }
}

Puoi anche definire una dimension_group, che crea più dimensioni correlate al tempo contemporaneamente, e i campi filter, che hanno una varietà di casi d'uso avanzati come i filtri basati sui modelli.

Consulta la pagina di documentazione dei Parametri dei campi per informazioni dettagliate sulla dichiarazione dei campi e sulle varie impostazioni applicabili.

Unioni

Come parte di una dichiarazione explore, ogni dichiarazione join specifica una vista che può essere unita nella explore. Quando un utente crea una query che include campi di più viste, Looker genera automaticamente la logica di join SQL per importare tutti i campi correttamente.

Ecco un esempio di join in una dichiarazione explore:

# ———————————————
# file: ecommercestore.model.lookml
# ———————————————
connection: order_database
include: "filename_pattern"   # include all the views
explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

Per maggiori dettagli, consulta Utilizzo delle unioni in LookML.

File manifest del progetto

Il progetto può contenere un file manifest del progetto, che viene utilizzato per le impostazioni a livello di progetto quali quelle per specificare altri progetti da importare nel progetto corrente, definire le costanti LookML, specificare le impostazioni di localizzazione del modello e aggiungere estensioni e visualizzazioni personalizzate al progetto.

Ogni progetto può avere un solo file manifest, Il file deve essere denominato manifest.lkml ed essere posizionato a livello della directory principale del repository Git. Quando utilizzi le cartelle nell'IDE, assicurati che il file manifest.lkml sia conservato al livello principale della struttura di directory del progetto.

Puoi utilizzare un file manifest del progetto per l'importazione o per la localizzazione del progetto, ma non per entrambe le funzioni.

Per importare i file LookML da un progetto diverso, utilizza il file manifest del progetto per specificare un nome per il progetto corrente e la posizione di eventuali progetti esterni, che potrebbero essere archiviati localmente o da remoto. Ad esempio:

# This project
project_name: "my_project"

# The project to import
local_dependency: {
  project: "my_other_project"
}

remote_dependency: ga_360_block {
  url: "https://github.com/llooker/google_ga360"
  ref: "4be130a28f3776c2bf67a9acc637e65c11231bcc"
}

Dopo aver definito i progetti esterni nel file manifest del progetto, puoi utilizzare il parametro include nel file modello per aggiungere al tuo progetto corrente i file di tale progetto esterno. Ad esempio:

include: "//my_other_project/imported_view.view"
include: "//ga_360_block/*.view"

Per ulteriori informazioni, consulta la pagina della documentazione Importazione di file da altri progetti.

Per aggiungere la localizzazione al modello, utilizza il file manifest del progetto per specificare le impostazioni di localizzazione predefinite. Ad esempio:

localization_settings: {
  default_locale: en
  localization_level: permissive
}

La specifica delle impostazioni di localizzazione predefinite è un passaggio nella localizzazione del modello. Per ulteriori informazioni, consulta la pagina Localizzazione del modello LookML.

Insiemi

In Looker, un set è un elenco che definisce un gruppo di campi che vengono utilizzati insieme. In genere gli insiemi vengono utilizzati per specificare quali campi mostrare dopo che un utente visualizza in dettaglio i dati. I set di dati vengono specificati campo per campo, in modo da avere il controllo completo sui dati visualizzati quando un utente fa clic su un valore in una tabella o una dashboard. Gli insiemi possono essere utilizzati anche come funzionalità di sicurezza per definire gruppi di campi visibili a utenti specifici.

L'esempio seguente mostra una dichiarazione impostata in una vista order_items, che definisce i campi che elencano i dettagli pertinenti su un articolo acquistato. Tieni presente che l'insieme fa riferimento ai campi di altre viste specificando l'ambito.

set: order_items_stats_set {
  fields: [
    id,  # scope defaults to order_items view
    orders.created_date,  # scope is "orders" view
    orders.id,
    users.name,
    users.history,  # show all products this user has purchased
    products.item_name,
    products.brand,
    products.category,
    total_sale_price
  ]
}

Consulta la pagina della documentazione relativa al parametro set per informazioni dettagliate sull'utilizzo relativo ai set.

Visualizza in dettaglio

In Looker, puoi visualizzare in dettaglio tutti i campi configurati in questo modo quando scrivi LookML. Il drill-down funziona sia nelle tabelle dei risultati di query che nelle dashboard. Il drill-down avvia una nuova query che è limitata dal valore su cui hai fatto clic.

Il comportamento del drill è diverso per dimensioni e misure:

  • Quando visualizzi in dettaglio una dimensione, la nuova query filtra in base al valore indicato. Ad esempio, se fai clic su una data specifica in una query in base agli ordini del cliente per data, la nuova query mostrerà gli ordini solo in quella data specifica.
  • Quando visualizzi in dettaglio una misura, la nuova query mostra il set di dati che ha contribuito alla misurazione. Ad esempio, quando visualizzi in dettaglio un conteggio, la nuova query mostrerà le righe per calcolare tale conteggio. Quando visualizzi in dettaglio le misure max, min e medie, il drill-down mostra comunque tutte le righe che hanno contribuito a tale misura. Ciò significa che, se visualizzi in dettaglio una misura massima, ad esempio, vengono mostrate tutte le righe utilizzate per calcolare il valore massimo, non solo una singola riga per il valore massimo.

I campi da mostrare per la nuova query di drill possono essere definiti da un set o dal parametro drill_fields (per i campi) o dal parametro drill_fields (per le viste).

Tabelle derivate

Una tabella derivata è una query i cui risultati vengono utilizzati come se fosse una tabella reale nel database. Le tabelle derivate vengono create utilizzando il parametro derived_table in una dichiarazione view. Looker accede alle tabelle derivate come se fossero tabelle fisiche con il proprio set di colonne. Una tabella derivata viene esposta come propria vista utilizzando il parametro derived_table e definisce dimensioni e misure come le viste convenzionali. È possibile eseguire query su una tabella derivata e unirla ad altre, come in qualsiasi altra vista.

Le tabelle derivate possono anche essere definite come tabelle derivate persistenti (PDT, Persistent Derived Table), che sono tabelle derivate che sono scritte in uno schema temporaneo sul database e rigenerate automaticamente in base alla pianificazione specificata con una strategia di persistenza.

Per ulteriori informazioni, consulta la pagina della documentazione sulle tabelle derivate in Looker.

Connessione al database

Un altro elemento importante di un progetto LookML è la connessione al database che Looker utilizzerà per eseguire le query sul tuo database. Un amministratore di Looker utilizza la pagina Connections (Connessioni) per configurare le connessioni ai database e gli sviluppatori LookML utilizzano il parametro connection in un file modello per specificare la connessione da utilizzare per il modello. Se generi un progetto LookML a partire dal tuo database, Looker popola automaticamente il parametro connection nel file modello.