Best practice: scrivere un LookML sostenibile e gestibile

Queste best practice riflettono i consigli condivisi da un team interfunzionale di Looker esperti. Questi approfondimenti provengono da anni di esperienza di collaborazione con i clienti di Looker, dall'implementazione al successo a lungo termine. Le best practice sono scritte per essere utilizzate dalla maggior parte degli utenti e in diverse situazioni. Tuttavia, come sempre, usa il tuo miglior giudizio quando implementi uno dei suggerimenti in questa pagina.

Questa pagina fornisce consigli per scrivere contenuti in LookML sostenibili e gestibili. Questi consigli sono descritti in modo più dettagliato nelle seguenti sezioni:

Utilizzare gli operatori di sostituzione

È necessario utilizzare operatori di sostituzione in tutti i file LookML. Un modello LookML deve avere un solo punto di riferimento per qualsiasi oggetto nel modello di dati fisico. Tutte le definizioni successive che devono fare riferimento all'oggetto dovrebbero farlo puntando all'oggetto LookML già definito.

Utilizza la sintassi ${TABLE}.field_name quando fai riferimento alla tabella di database sottostante per tutte le dimensioni di base che estraggono i dati direttamente dalle colonne del database sottostante. Se uno schema o il nome di una tabella cambiano, uno sviluppatore può aggiornare lo schema o il nome della tabella in un'unica posizione (all'interno del parametro sql_table_name) e propagarlo nel resto del codice.

Utilizza la sintassi ${field_name} quando fai riferimento a dimensioni o misure che sono già state definite in LookML. Se il nome di una colonna cambia, questa modifica dovrà essere aggiornata solo nel parametro sql della dimensione o delle misure di base. La modifica verrà poi propagata automaticamente a tutti gli altri campi che fanno riferimento alla colonna. Ad esempio, se il nome di una colonna nel database cambia da usersid a users_id, dovrai modificare il riferimento in Looker. Se utilizzi ${field_name}, devi aggiornare una sola riga.

Quando più dimensioni e misure fanno riferimento a un campo LookML esistente con ${TABLE}.field_name, sono necessarie molte modifiche. Ad esempio, considera le misure this_week_count e this_month_count nel seguente codice LookML di esempio:

dimension: usersid {
  type: number
  sql: ${TABLE}.usersid ;; # Change here
}

measure: this_week_count {
  type: count_distinct
  sql: ${TABLE}.usersid ;; # Change here
  filters: [created_date: "7 days"]
}

measure: this_month_count {
  type: count_distinct
  sql: ${TABLE}.usersid ;; # Change here
  filters: [created_date: "1 month"]
}

Poiché sia this_week_count sia this_month_count utilizzano la sintassi ${TABLE}.usersid nel parametro sql, sarà necessario aggiornare il parametro sql per tutti e tre i campi.

Con il riferimento ${field_name}, è necessaria una sola modifica:

dimension: usersid {
  type: number
  sql: ${TABLE}.usersid ;; # Change here
}

measure: this_week_count {
  type: count_distinct
  sql: ${usersid} ;;       #Using ${field_name} to reference the LookML field `usersid`
  filters: [created_date: "7 days"]
}

measure: this_month_count {
  type: count_distinct
  sql: ${usersid} ;;       #Using ${field_name} to reference the LookML field `usersid`
  filters: [created_date: "1 month"]
}

Per ulteriori utilizzi degli operatori di sostituzione, consulta la pagina della documentazione Incorporare SQL e fare riferimento agli oggetti LookML.

Definisci insiemi di campi

Utilizza i set per gestire gli elenchi di campi riutilizzabili all'interno del modello. Gli elenchi di campi ripetuti, con il parametro fields o all'interno dei campi di livello di analisi, devono essere incorporati in set per creare un unico punto nel modello in cui è possibile aggiornare l'elenco dei campi o modificare i riferimenti dei campi. Puoi scoprire di più sugli insiemi nella pagina della documentazione del parametro set.

Evita di ripetere il codice

Considera gli oggetti LookML come elementi di base e utilizza il parametro extends per combinare gli oggetti in modi diversi senza ripetere il codice. Puoi trovare informazioni dettagliate ed esempi di riutilizzo del codice nella pagina della documentazione Riutilizzo del codice con estensioni. Puoi trovare ulteriori esempi nelle pagine della documentazione sui parametri extends (per le visualizzazioni) e extends (per le esplorazioni), nonché nel post della scheda Community Utilizzo delle estensioni per definire i join.

Mantieni la coerenza tra le esplorazioni evitando di ripetere il codice in più posizioni. Per ulteriori idee su come ottenere questo risultato, consulta il post della scheda Community di Looker su come evitare incoerenze tra le esplorazioni.

Consolida elementi come livelli della mappa e formati dei valori

Definisci i livelli di mappa personalizzati a livello centrale in un file LookML denominato map_layers.lkml, che puoi creare seguendo la documentazione sui file di progetto di Looker. Questo file può quindi essere incluso in base alle esigenze nei vari modelli. In alternativa, aggiungi i file JSON direttamente nel repository trascinando i file di dati nel tuo progetto LookML e facendovi riferimento all'interno del modello.

Ad esempio, supponi di avere un file dei livelli di mappa, map_layers.base.lkml, contenente il seguente codice LookML:

map_layer: example_africa {
  file: "africa_file_name.json"
  property_key: "geounit"
}

map_layer: example_asia {
  file: "asia_file_name.json"
  property_key: "geounit"
}

map_layer: example_europe {
  file: "europe_file_name.json"
  property_key: "geounit"
}

Puoi includere il file dei livelli di mappa map_layers.base.lkml in qualsiasi modello del progetto aggiungendo il codice LookML include: "map_layers.base.lkml" al file del modello desiderato.

Impostare qualsiasi formato dei valori personalizzati in modo centralizzato all'interno del modello. Utilizza il parametro named_value_format per impostare eventuali formati personalizzati all'interno del modello, quindi fai riferimento a questi utilizzando il parametro value_format_name nelle dimensioni e nelle misure.

Crea linee guida per lo sviluppo

Definire le linee guida per lo sviluppo per semplificare lo sviluppo e la scalabilità di un modello LookML. Consulta il post della community di Looker sulle linee guida di sviluppo di LookML di esempio per una procedura dettagliata di un elenco di linee guida di sviluppo di esempio. Le linee guida comuni includono i requisiti per:

  • Organizzazione chiara dei file LookML in modo che siano coerenti e facili da esplorare.
  • Utilizzo di commenti nelle visualizzazioni e nei modelli per aggiungere contesto al LookML scritto
  • Creazione della documentazione in Looker utilizzando i file Markdown