Questa pagina definisce i seguenti termini e concetti principali, che probabilmente incontrerai spesso durante lo sviluppo di LookML:
- Progetti LookML
- Principali strutture LookML (come modelli, viste ed esplorazioni)
- Tabelle derivate
- Connessioni al database
- Sensibilità alle maiuscole
I look e le dashboard definite dall'utente non sono descritti in questa pagina, poiché gli utenti li creano senza utilizzare LookML. Tuttavia, le query si basano sugli elementi LookML sottostanti discussi in questa pagina.
Consulta il glossario di Looker per un elenco completo dei termini e delle definizioni utilizzate in Looker. Per una panoramica completa dei parametri LookML che puoi utilizzare in un progetto LookML, consulta la pagina Riferimento rapido LookML.
progetto LookML
In Looker, un progetto è una raccolta di file che descrivono gli oggetti, le connessioni ai database e gli elementi dell'interfaccia utente che verranno utilizzati per eseguire le query SQL. Al livello più generale, questi file descrivono la relazione tra le tabelle del tuo database e il modo in cui devono essere interpretate da Looker. Possono anche includere parametri LookML che definiscono o modificano le opzioni presentate nell'interfaccia utente di Looker. Ogni progetto LookML risiede nel proprio repository Git per il controllo della versione.
Una volta connessa Looker al tuo database, puoi specificare la connessione da utilizzare per il tuo progetto Looker.
Puoi accedere ai progetti dalla sezione Develop della navigazione di Looker.
Per informazioni sulla creazione di un nuovo progetto, consulta l'articolo Creazione di un nuovo progetto LookML e consulta Accesso e modifica delle informazioni del progetto per informazioni sull'accesso e sulla modifica dei progetti LookML esistenti.
Parti di un progetto
Come mostrato nel diagramma precedente, di seguito sono elencati alcuni dei 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 definisci il modello, le esplorazioni e i join.
- Una vista contiene informazioni su come accedere o calcolare le informazioni di ogni tabella (o in più tabelle unite). Qui in genere puoi definire la vista, le relative dimensioni e misure e i relativi set di campi.
- Un'esplorazione è spesso definita all'interno di un file modello, ma a volte hai bisogno di un file Esplora separato per una tabella derivata o per estendere o perfezionare un'esplorazione tra i modelli.
- Un file manifest può contenere istruzioni per l'utilizzo dei file importati da un altro progetto o per le impostazioni di localizzazione del tuo progetto.
Oltre ai tipi di file sopra riportati, un progetto può avere altri tipi di file correlati, ad esempio, a dashboard integrate, documentazione, localizzazione e altro ancora. Per ulteriori informazioni su questi tipi di file e sugli altri tipi di file disponibili nel progetto LookML, consulta la pagina Documentazione sui progetti LookML.
Insieme, questi file formano un unico progetto. Se utilizzi Git per il controllo della versione, ogni progetto viene generalmente sottoposto a backup dal proprio repository Git.
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 creare manualmente i relativi file LookML. In alternativa, puoi 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 vista, un file per ogni tabella nel database.
- Un file di modello. Nel file modello viene dichiarata un'esplorazione per ogni vista. Ogni dichiarazione di Explore include la logica
join
per unire qualsiasi vista che Looker può determinare è correlata all'Explore.
Qui puoi personalizzare il progetto rimuovendo le visualizzazioni e le esplorazioni indesiderate e aggiungendo dimensioni e misure personalizzate.
Strutture LookML principali
Come mostrato nelle parti di un diagramma di progetto, un progetto in genere contiene uno o più file di modello, che contengono i parametri che definiscono un modello insieme alle esplorazioni e alle unioni. Inoltre, i progetti in genere contengono uno o più file di viste, 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 ti consente di configurare le impostazioni a livello di progetto. 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 al database in un singolo progetto LookML. Ogni modello può esporre dati diversi a utenti diversi. Ad esempio, gli agenti di vendita hanno bisogno di dati diversi rispetto a quelli dei dirigenti aziendali, quindi probabilmente ti conviene sviluppare due modelli per offrire viste del database appropriate per ciascun utente.
Un modello specifica una connessione a un singolo database. Uno sviluppatore definisce anche le esplorazioni di un modello all'interno del file del modello. Per impostazione predefinita, le esplorazioni sono organizzate in base al nome del modello in cui sono definite. Gli utenti vedono i modelli elencati nel menu Esplora.
Consulta la pagina Documentazione relativa ai tipi di file in un progetto LookML per ulteriori informazioni sui file modello, incluse la struttura e la sintassi generale dei file modello.
Consulta la pagina di documentazione dei parametri del modello per informazioni dettagliate sui parametri LookML utilizzabili in un file modello.
Visualizza
Una dichiarazione di vista 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ò anche rappresentare una tabella derivata.
Una vista può unirsi ad altre viste. La relazione tra le visualizzazioni è in genere definita come parte di una dichiarazione di esplorazione in un file modello.
Per impostazione predefinita, i nomi delle viste vengono visualizzati all'inizio della dimensione e vengono misurati nella tabella Esplora dati. Questa convenzione di denominazione indica chiaramente a quale vista appartiene il campo. Nell'esempio seguente, i nomi delle viste Ordini e Utenti sono elencati prima dei nomi dei campi nella tabella dati:
Per ulteriori informazioni sui file di visualizzazione, inclusa la struttura e la sintassi generale dei file di visualizzazione, consulta la documentazione Tipi di file in un progetto LookML.
Per informazioni dettagliate sui parametri LookML che possono essere utilizzati in un file di vista, consulta la pagina della documentazione relativa alla visualizzazione dei parametri.
Esplora
Una esplorazione è una visualizzazione su cui gli utenti possono eseguire query. Puoi considerare l'Esplora come un punto di partenza per una query, o in termini SQL, come il FROM
in un'istruzione SQL. Non tutte le visualizzazioni sono esplorazioni, perché non tutte descrivono solo un'entità di interesse. Ad esempio, una vista Stati corrispondente a una tabella di ricerca per i nomi degli stati non garantisce l'esplorazione, perché gli utenti aziendali non devono mai interrogarla direttamente. D'altro canto, gli utenti aziendali probabilmente vogliono un modo per eseguire query su una vista Ordini, quindi la definizione di un'esplorazione per Ordini ha senso.
In Looker, gli utenti possono vedere le esplorazioni elencate nel menu Esplora. Le esplorazioni sono elencate sotto i nomi dei modelli a cui appartengono.
Per convenzione, le esplorazioni vengono dichiarate nel file del modello con il parametro explore
. In questo esempio di file di modello, l'opzione orders
per un database di e-commerce viene definita all'interno del file del modello. Le viste orders
e customers
a cui si fa riferimento nella dichiarazione di explore
sono definite altrove, nei rispettivi file di vista.
connection: order_database
include: "filename_pattern"
explore: orders {
join: customers {
sql_on: ${orders.customer_id} = ${customers.id} ;;
}
}
Nell'esempio precedente, il parametro connection
viene utilizzato per specificare la connessione al database per il modello, mentre il parametro include
viene utilizzato per specificare i file a cui il modello potrà fare riferimento.
La dichiarazione explore
nell'esempio sopra specifica anche le relazioni di join tra le visualizzazioni. Per informazioni dettagliate sulle dichiarazioni join
, visita la sezione relativa ai join in questa pagina. Per ulteriori dettagli sui parametri LookML che possono essere utilizzati con il parametro join
, consulta la pagina della documentazione relativa ai parametri di join.
Campi di dimensione e misurazione
Le visualizzazioni contengono campi, principalmente dimensioni e misure, che sono i componenti di base per le query di Looker.
In Looker, una dimensione è un campo raggruppabile e può essere utilizzata per filtrare i risultati delle query. Può essere:
- Un attributo, che ha un'associazione diretta a una colonna in una tabella sottostante
- Un dato di fatto o numerico
- Un valore derivato, calcolato in base ai valori di altri campi in una singola riga
In Looker, le dimensioni vengono sempre visualizzate nella clausola GROUP BY
dell'SQL generato da Looker.
Ad esempio, le dimensioni di una visualizzazione Prodotti possono includere il nome e il modello del prodotto, il colore e il prezzo del prodotto, la data di creazione del prodotto 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
. Anche qualsiasi campo calcolato in base ai valori di altri valori di misurazione è una misura. Le misure possono essere utilizzate per filtrare i valori raggruppati. Ad esempio, le misure relative a una vista Vendite possono includere il numero totale di articoli venduti (un conteggio), il prezzo scontato totale (la somma) e il prezzo medio della vendita (una media).
Il comportamento e i valori previsti per un campo dipendono dal tipo dichiarato, ad esempio string
, number
o time
. Per le misure, i tipi includono le funzioni aggregate, come sum
e percent_of_previous
. Per informazioni dettagliate, consulta i tipi di dimensioni e i tipi di misurazione.
In Looker, i campi sono elencati nella pagina Esplora del selettore dei campi sul lato sinistro della pagina. Puoi espandere una vista nel selettore campi per mostrare l'elenco dei campi disponibili per le query da quella vista.
Per convenzione, i campi vengono dichiarati come parte della visualizzazione a cui appartengono, archiviati in un file della vista. L'esempio seguente mostra diverse dichiarazioni di dimensioni e misure. Osserva l'utilizzo 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 dimension_group
, che crea contemporaneamente più dimensioni correlate al tempo, e filter
campi, che includono una serie di casi d'uso avanzati come i filtri basati su modelli.
Per informazioni dettagliate sulla dichiarazione dei campi e sulle varie impostazioni a cui è possibile applicarli, consulta la pagina della documentazione relativa ai parametri dei campi.
Unioni
Nell'ambito di una dichiarazione del tipo explore
, ogni dichiarazione join
specifica una vista che può essere collegata a Esplora. Quando un utente crea una query che include campi di più viste, Looker genera automaticamente una logica di join SQL per inserire correttamente tutti i campi.
Ecco un esempio di join in una dichiarazione di 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, visita la pagina della documentazione Utilizzo dei join 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, ad esempio quelle per specificare altri progetti da importare nel progetto corrente, definire costanti LookML, specificare le impostazioni di localizzazione del modello e aggiungere estensioni e visualizzazioni personalizzate al tuo progetto.
Ogni progetto può avere un solo file manifest. Il file deve essere denominato manifest.lkml
e deve trovarsi a livello della directory principale del repository Git. Quando utilizzi cartelle nell'IDE, assicurati che il file manifest.lkml
sia mantenuto al livello principale della struttura di directory del progetto.
Per importare file LookML da un altro progetto, utilizza il file manifest del progetto per specificare un nome per il progetto corrente e la posizione di tutti i progetti esterni, che potrebbero essere archiviati localmente o da remoto. Ecco alcuni esempi:
# 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 file dal progetto esterno al progetto corrente. Ecco alcuni esempi:
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 tuo modello, utilizza il file manifest del progetto per specificare le impostazioni di localizzazione predefinite. Ecco alcuni esempi:
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.
Set
In Looker, un set è un elenco che definisce un gruppo di campi 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 punte sono specificati campo per campo, in modo da avere il controllo completo su quali dati vengono visualizzati quando un utente fa clic su un valore in una tabella o 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 di 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 ulteriori informazioni dettagliate sull'utilizzo dei set.
Visualizza in dettaglio
In Looker, puoi visualizzare in dettaglio tutti i campi configurati in questo modo durante la scrittura di LookML. La visualizzazione in dettaglio funziona sia nelle tabelle dei risultati delle query che nelle dashboard. La visualizzazione in dettaglio avvia una nuova query limitata dal valore su cui hai fatto clic.
Il comportamento del trapano varia a seconda delle dimensioni e delle misure:
- Quando visualizzi in dettaglio una dimensione, la nuova query filtra in base al valore forato. Ad esempio, se fai clic su una data specifica in una query di ordini dei clienti per data, la nuova query mostrerà gli ordini solo in quella data.
- Quando visualizzi in dettaglio una misura, la nuova query mostra il set di dati che ha contribuito alla misura. Ad esempio, quando visualizzi in dettaglio un conteggio, la nuova query mostrerà le righe per calcolare tale conteggio. Quando visualizzi in dettaglio le misure massime, minime e medie, visualizzi ancora tutte le righe che hanno contribuito a tale misura. Ciò significa che, visualizzando ad esempio la misura massima, 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-down possono essere definiti da un set o dal parametro drill_fields
(per i campi) o drill_fields
(per le viste).
Tabelle derivate
Una tabella derivata è una query i cui risultati vengono utilizzati come se fosse una tabella effettiva 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 una propria vista utilizzando il parametro derived_table
e definisce dimensioni e misure allo stesso modo delle viste convenzionali. È possibile eseguire query su una tabella derivata e associarle ad altre viste, esattamente come qualsiasi altra vista.
Le tabelle derivate possono anche essere definite come tabelle derivate persistenti (PDT, Persistent Derived Table), che sono tabelle scritte in uno schema temporaneo sul tuo 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 query sul tuo database. Un amministratore di Looker utilizza la pagina Connections (Connessioni) per configurare le connessioni al 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 dal tuo database, Looker popola automaticamente il parametro connection
nel file modello.
Distinzione tra maiuscole e minuscole
Il codice LookML è sensibile alle maiuscole, quindi assicurati di fare distinzione tra maiuscole e minuscole quando fai riferimento agli elementi LookML. Looker ti avvisa se fai riferimento a un elemento che non esiste.
Ad esempio, supponiamo che tu abbia un'esplorazione chiamata e_flights_pdt
e uno sviluppatore LookML utilizzi le maiuscole errate (e_FLIGHTS_pdt
) per fare riferimento a Esplora. In questo esempio, l'IDE di Looker mostra un avviso che la finestra di esplorazione e_FLIGHTS_pdt
non esiste. Inoltre, l'IDE suggerisce il nome di un'esplorazione esistente, che è e_flights_pdt
:
Tuttavia, se il progetto conteneva sia e_FLIGHTS_pdt
che e_flights_pdt
, l'IDE di Looker non sarebbe in grado di correggerti, quindi dovresti essere sicuro di quale versione volevi. In genere, è buona norma applicare le lettere minuscole durante la denominazione degli oggetti LookML.
Anche i nomi delle cartelle IDE sono sensibili alle maiuscole. Devi specificare le lettere maiuscole dei nomi delle cartelle ogni volta che specifichi i percorsi dei file. Ad esempio, se hai una cartella denominata Views
, devi utilizzare le stesse maiuscole nel parametro include
. Anche in questo caso, l'IDE di Looker indicherà un errore se l'uso delle maiuscole non corrisponde a una cartella esistente nel progetto: