Termini e concetti di LookML

Questa pagina definisce i seguenti termini e concetti di base, che probabilmente incontrerai spesso durante lo sviluppo di LookML:

I Look e le dashboard definite dall'utente non sono descritti in questa pagina, in quanto gli utenti li creano senza utilizzare LookML. Tuttavia, le loro query si basano sugli elementi LookML sottostanti descritti in questa pagina.

Consulta il glossario di Looker per un elenco completo di termini e definizioni utilizzati in Looker. Per una panoramica completa dei parametri LookML che puoi utilizzare in un progetto LookML, consulta la pagina di riferimento rapido di LookML.

Per informazioni sulle sfumature tra termini e concetti simili in Looker e Data Studio, consulta la pagina della documentazione Termini e concetti condivisi tra Looker e Data Studio.

Progetto LookML

In Looker, un progetto è una raccolta di file che descrivono gli oggetti, le connessioni al database e gli elementi dell'interfaccia utente che verranno utilizzati per eseguire query SQL. A livello più elementare, questi file descrivono la relazione tra le tabelle del database e il modo in cui devono essere interpretate da Looker. I file possono anche includere LookML parametri che definiscono o modificano le opzioni presentate nell'interfaccia utente di Looker. Ogni progetto LookML risiede nel proprio repository Git per il controllo delle versioni.

Dopo aver connesso Looker al database, puoi specificare la connessione al database da utilizzare per il progetto Looker.

Puoi accedere ai progetti dal menu Sviluppo in Looker (per dettagli e altre opzioni, consulta Accesso ai file di progetto).

Per informazioni sulla creazione di un nuovo progetto, consulta la pagina della documentazione Generazione di un modello e, per informazioni sull'accesso e sulla modifica dei progetti LookML esistenti, consulta la pagina della documentazione Accesso e modifica delle informazioni sui progetti.

Parti di un progetto

Un progetto LookML può contenere modelli, viste e dashboard LookML, ognuno dei quali è composto da altri elementi LookML.

Come mostrato nel diagramma, di seguito sono riportati alcuni dei tipi di file più comuni in un progetto LookML:

  • Un modello contiene informazioni sulle tabelle da utilizzare e su come devono essere unite. In genere, qui definisci il modello, le relative esplorazioni e le relative unioni.
  • Una vista contiene informazioni su come accedere o calcolare le informazioni da ogni tabella (o da più tabelle unite). In genere, qui definisci la vista, le relative dimensioni e misure e i relativi insiemi di campi.
  • Un'Esplorazione viene spesso definita all'interno di un file modello, ma a volte è necessario un file di esplorazione separato per una tabella derivata o per estendere o perfezionare un'Esplorazione tra i modelli.
  • Un file manifest può contenere istruzioni per l'utilizzo di file importati da un altro progetto o per le impostazioni di localizzazione del progetto.

Oltre ai file di modelli, viste, esplorazioni e manifest, un progetto può avere altri tipi di file correlati a elementi come dashboard integrate, documentazione, localizzazione e altro ancora. Per ulteriori informazioni su questi tipi di file e sugli altri tipi di file che puoi avere nel tuo progetto LookML, consulta la pagina della documentazione File di progetto LookML.

Questi file insieme costituiscono un progetto. Se utilizzi Git per il controllo delle versioni, in genere ogni progetto viene 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 database. Puoi anche creare un progetto vuoto e creare manualmente i relativi file LookML.

Quando generi un nuovo progetto dal database, Looker crea un insieme di file di base che puoi utilizzare come modello per creare il progetto:

  • Più file di viste, un file per ogni tabella nel database.
  • Un file modello. Il file del modello dichiara un'esplorazione per ogni vista. Ogni dichiarazione di esplorazione include la logica join per unire qualsiasi vista che Looker può determinare sia correlata all'esplorazione.

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

Strutture LookML principali

Come mostrato nel diagramma delle parti di un progetto, un progetto in genere contiene uno o più file modello, che contengono parametri che definiscono un modello e le relative esplorazioni e unioni. Inoltre, i progetti in genere contengono uno o più file di viste, ognuno 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 consente di configurare le impostazioni a livello di progetto. Questa sezione descrive queste strutture principali.

Modello

Un modello è un portale personalizzato nel database, progettato per fornire un'esplorazione intuitiva dei dati per utenti aziendali specifici. In un singolo progetto LookML possono esistere più modelli per la stessa connessione al database. Ogni modello può esporre dati diversi a utenti diversi. Ad esempio, gli agenti di vendita hanno bisogno di dati diversi rispetto ai dirigenti aziendali, quindi probabilmente svilupperai due modelli per offrire visualizzazioni del database appropriate per ogni 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 sotto il nome del modello in cui sono definite. Gli utenti vedono i modelli elencati nel menu Esplora.

Per ulteriori informazioni sui file modello, inclusa la struttura e la sintassi generale dei file modello, consulta la pagina della documentazione Tipi di file in un progetto LookML.

Per dettagli sui parametri LookML che possono essere utilizzati in un file modello, consulta la pagina della documentazione Parametri del modello.

Vista

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 in genere fa riferimento a una tabella del database sottostante, ma può anche rappresentare una tabella derivata.

Una vista può essere unita ad altre viste. La relazione tra le viste viene in genere definita come parte di una dichiarazione di Esplora in un file del modello.

Per impostazione predefinita, i nomi delle viste vengono visualizzati all'inizio dei nomi delle dimensioni e delle misure nella tabella dei dati di esplorazione. 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 dei dati:

Tabella dati per una query di esempio con i campi Data creazione ordini, ID utenti e Conteggio ordini selezionati.

Per ulteriori informazioni sui file di viste, inclusa la struttura e la sintassi generale dei file di viste, consulta la pagina della documentazione Tipi di file in un progetto LookML.

Per dettagli sui parametri LookML che possono essere utilizzati in un file di viste, consulta la pagina della documentazione Parametri della vista.

Esplora

Un'esplorazione è una vista su cui gli utenti possono eseguire query. Puoi considerare l'esplorazione come punto di partenza per una query o, in termini SQL, come FROM in un'istruzione SQL. Non tutte le viste sono esplorazioni, perché non tutte le viste descrivono un'entità di interesse. Ad esempio, una vista Stati che corrisponde a una tabella di ricerca per i nomi degli stati non giustifica un'esplorazione, perché gli utenti aziendali non hanno mai bisogno di eseguire query direttamente. 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. Per informazioni su come gli utenti interagiscono con le esplorazioni per eseguire query sui dati, consulta la pagina della documentazione Visualizzazione e interazione con le esplorazioni in Looker.

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 explore parametro. Nell'esempio seguente di un file modello, l'esplorazione orders per un database di e-commerce è definita all'interno del file modello. Le viste orders e customers a cui viene fatto riferimento nella dichiarazione explore sono definite altrove, nei rispettivi file di viste.

connection: order_database
include: "filename_pattern"

explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

In questo esempio, il connection parametro viene utilizzato per specificare la connessione al database per il modello e il include parametro viene utilizzato per specificare i file a cui il modello potrà fare riferimento.

La dichiarazione explore in questo esempio specifica anche le relazioni di unione tra le viste. Per dettagli sulle dichiarazioni join, visita la sezione sulle unioni in questa pagina. Per ulteriori dettagli sui parametri LookML che possono essere utilizzati con il parametro join, visita la pagina della documentazione Parametri di unione.

Campi di dimensioni e misure

Le viste contengono campi, principalmente dimensioni e misure, che sono i blocchi di base per le query Looker.

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

  • Un attributo, che ha un'associazione diretta a una colonna in una tabella sottostante
  • Un valore numerico o un fatto
  • 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 per una vista Prodotti potrebbero includere nome prodotto, modello prodotto, colore prodotto, prezzo prodotto, data di creazione del prodotto e 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 altre misure è una misura. Le misure possono essere utilizzate per filtrare i valori raggruppati. Ad esempio, le misure per una vista Vendite potrebbero includere il numero totale di articoli venduti (un conteggio), il prezzo di vendita totale (una somma) e il prezzo di vendita medio (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 funzioni di aggregazione, come sum e percent_of_previous. Per maggiori dettagli, consulta i tipi di dimensioni e i tipi di misure.

In Looker, i campi sono elencati nella pagina Esplora nel selettore di campi sul lato sinistro della pagina. Puoi espandere una vista nel selettore campi per visualizzare l'elenco dei campi su cui è possibile eseguire query da quella vista.

Per convenzione, i campi vengono dichiarati come parte della vista a cui appartengono, archiviati in un file di viste. L'esempio seguente mostra diverse dichiarazioni di dimensioni e misure. Tieni presente l'utilizzo di l'operatore di sostituzione ($) per fare riferimento ai campi senza utilizzare un nome di colonna SQL con ambito completo.

Di seguito sono riportate alcune dichiarazioni di esempio 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 un 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 su modelli.

Per dettagli completi sulla dichiarazione dei campi e sulle varie impostazioni che possono essere applicate, consulta la pagina della documentazione Parametri dei campi.

Unioni

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

Ecco un esempio di unione 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 ulteriori dettagli, consulta la pagina della documentazione 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, ad esempio 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 progetto.

Ogni progetto può avere un solo file manifest. Il file deve essere denominato manifest.lkml e deve trovarsi a livello root del repository Git. Quando utilizzi le cartelle nell'IDE, assicurati che il file manifest.lkml sia mantenuto a livello root 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 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 tuo file modello per aggiungere i file di questi progetti esterni al progetto corrente. 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 della localizzazione del modello. Per ulteriori informazioni, consulta la pagina della documentazione Localizzazione del modello LookML.

Insiemi

In Looker, un insieme è un elenco che definisce un gruppo di campi utilizzati insieme. In genere, gli insiemi vengono utilizzati per specificare i campi da visualizzare dopo che un utente ha eseguito il drill-down nei dati. Gli insiemi di drill-down 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 in 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 di insieme 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
  ]
}

Per dettagli completi sull'utilizzo degli insiemi, consulta la pagina della documentazione relativa al parametro set.

Visualizza in dettaglio

In Looker, puoi configurare un campo in modo che gli utenti possano visualizzare in dettaglio i dati. Il drill-down funziona sia nelle tabelle dei risultati delle query sia nelle dashboard. Il drill-down avvia una nuova query limitata dal valore su cui fai clic.

Il comportamento di drill-down è diverso per dimensioni e misure:

  • Quando esegui il drill-down su una dimensione, la nuova query filtra il valore di drill-down. Ad esempio, se fai clic sulla data specifica in una query degli ordini dei clienti per data, la nuova query mostrerà gli ordini solo in quella data specifica.
  • Quando esegui il drill-down su una misura, la nuova query mostrerà il set di dati che ha contribuito alla misura. Ad esempio, quando esegui il drill-down su un conteggio, la nuova query mostrerà le righe per calcolare il conteggio. Quando esegui il drill-down sulle misure massime, minime e medie, il drill-down mostra comunque tutte le righe che hanno contribuito alla misura. Ciò significa che, ad esempio, il drill-down su una misura massima mostra 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 insieme oppure dal drill_fields parametro (per i campi) o dal drill_fields parametro (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 derived_table parametro in una view dichiarazione. Looker accede alle tabelle derivate come se fossero tabelle fisiche con il proprio insieme di colonne. Una tabella derivata viene esposta come una vista separata e definisce dimensioni e misure nello stesso modo delle viste convenzionali. È possibile eseguire query sulla vista per una tabella derivata e unirla ad altre viste, come qualsiasi altra vista.

Le tabelle derivate possono anche essere definite come tabelle derivate permanenti (PDT), ovvero tabelle derivate scritte in uno schema temporaneo nel database e rigenerate automaticamente in base alla pianificazione specificata con una strategia di persistenza.

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

Connessione al database

Un altro elemento importante di un progetto LookML è la connessione al database che Looker utilizza per eseguire query sul database. Un amministratore di Looker utilizza la pagina Connessioni per configurare le connessioni al database, mentre gli sviluppatori LookML utilizzano il connection parametro in un file del modello per specificare la connessione da utilizzare per il modello. Se generi un progetto LookML dal database, Looker popola automaticamente il parametro connection nel file del modello.

Distinzione tra maiuscole e minuscole

LookML fa distinzione tra maiuscole e minuscole, quindi assicurati di rispettare le maiuscole e le minuscole quando fai riferimento agli elementi LookML. Looker ti avvisa se hai fatto riferimento a un elemento inesistente.

Ad esempio, supponiamo che tu abbia un'esplorazione denominata e_flights_pdt e che uno sviluppatore LookML utilizzi le maiuscole e le minuscole in modo errato (e_FLIGHTS_pdt) per fare riferimento a questa esplorazione. In questo esempio, l'IDE di Looker mostra un avviso che indica che l'esplorazione e_FLIGHTS_pdt non esiste. Inoltre, l'IDE suggerisce il nome di un'esplorazione esistente, ovvero e_flights_pdt:

Tuttavia, se il progetto contenesse sia e_FLIGHTS_pdt sia e_flights_pdt, l'IDE di Looker non sarebbe in grado di correggerti, quindi dovresti assicurarti di quale versione intendevi utilizzare. In genere, è consigliabile utilizzare le lettere minuscole per denominare gli oggetti LookML.

Anche i nomi delle cartelle IDE fanno distinzione tra maiuscole e minuscole. Devi rispettare le maiuscole e le minuscole 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 e minuscole nel include parametro. Anche in questo caso, l'IDE di Looker indicherà un errore se le maiuscole e le minuscole non corrispondono a una cartella esistente nel progetto:

L'IDE di Looker mostra un avviso che indica che l'inclusione non corrisponde ad alcun file.