Best practice: scrivere un codice LookML sostenibile e gestibile

Queste best practice riflettono i suggerimenti condivisi da un team interfunzionale di Looker esperti. Questi insight derivano da anni di esperienza nella collaborazione con i clienti di Looker, dall'implementazione al successo a lungo termine. Queste prassi sono scritte in modo da funzionare per la maggior parte degli utenti e delle situazioni, ma, come sempre, ti invitiamo a usare il tuo miglior giudizio quando implementi uno o più suggerimenti in questa pagina.

Questa pagina fornisce consigli per scrivere un codice LookML sostenibile e gestibile. Questi consigli sono descritti in maggiore dettaglio nelle sezioni seguenti:

Utilizzare gli operatori di sostituzione

Gli operatori di sostituzione devono essere utilizzati in tutti i file LookML. Un modello LookML deve avere un solo punto di riferimento per qualsiasi oggetto nel modello dei dati fisico. Eventuali definizioni successive che devono fare riferimento a quell'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 di database sottostanti. Se il nome di uno schema o di una tabella cambia, lo sviluppatore può aggiornare lo schema o il nome della tabella in un'unica posizione (all'interno del parametro sql_table_name) e propagarsi al resto del codice.

Utilizza la sintassi ${field_name} quando fai riferimento a dimensioni o misure che sono già state definite all'interno di LookML. Se il nome di una colonna cambia, la modifica dovrà essere aggiornata solo nel parametro sql della dimensione o delle misure di base. La modifica verrà quindi 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, devi modificare il riferimento in Looker. Se usi ${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 codice LookML di esempio seguente:

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 su come incorporare SQL e fare riferimento agli oggetti LookML.

Definisci i set di campi

Utilizza gli insiemi per gestire elenchi di campi riutilizzabili all'interno del modello. Tutti gli elenchi di campi ripetuti, con il parametro fields o all'interno dei campi drill, devono essere incorporati in set per creare un'unica posizione nel modello in cui l'elenco di campi può essere aggiornato o i riferimenti ai campi possono essere modificati. Puoi trovare ulteriori informazioni sugli insiemi nella pagina della documentazione relativa al parametro set.

Evita di ripetere il codice

Considera gli oggetti LookML come componenti di base e utilizza il parametro extends per combinarli in modi diversi senza ripetere il codice. Puoi trovare informazioni dettagliate ed esempi su come riutilizzare il codice nella pagina della documentazione Riutilizzo del codice con estensioni. Puoi trovare ulteriori esempi nelle pagine della documentazione relative ai parametri extends (per le visualizzazioni) e extends (per le esplorazioni), nonché nel post della scheda Community sull'utilizzo delle estensioni per definire le unioni.

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

Raggruppare elementi come i livelli della mappa e i formati dei valori

Definisci a livello centrale livelli della mappa personalizzati 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 al repository trascinando i file di dati nel progetto LookML e fai riferimento a questi file all'interno del modello.

Ad esempio, supponi di avere un file dei livelli delle mappe, 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 delle mappe map_layers.base.lkml in qualsiasi modello del progetto aggiungendo il codice LookML include: "map_layers.base.lkml" al file del modello desiderato.

Imposta eventuali formati di valori personalizzati a livello centrale nel modello. Utilizza il parametro named_value_format per impostare eventuali formati personalizzati all'interno del modello, quindi fai riferimento a quelli che utilizzano 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 per lo sviluppo di LookML di esempio per una procedura dettagliata di un elenco di linee guida per lo 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
  • Usare i commenti nelle viste e nei modelli per aggiungere contesto al LookML scritto
  • Creazione della documentazione all'interno di Looker con i file Markdown