Best practice: scrivere codice LookML sostenibile e manutenibile

Queste best practice riflettono i consigli condivisi da un team interfunzionale di esperti Looker. 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 un codice LookML sostenibile e manutenibile. 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 di dati fisico. Eventuali definizioni successive che devono fare riferimento a quell'oggetto devono farlo facendo riferimento 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 il nome di uno schema o di una tabella cambia, lo sviluppatore può aggiornare lo schema o il nome della tabella in un unico punto (all'interno del parametro sql_table_name) e propagarlo nel resto del codice.

Utilizza la sintassi ${field_name} per fare riferimento a dimensioni o misure già 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 altri 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. Tutti gli elenchi di campi ripetuti, con il parametro fields o all'interno dei campi di visualizzazione dettagliata, devono essere incorporati in insiemi per creare un unico punto nel modello in cui l'elenco di campi può essere aggiornato o i riferimenti ai campi modificati. 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 extends. Puoi trovare altri esempi nelle pagine di documentazione dei parametri extends (per le visualizzazioni) e extends (per le esplorazioni), nonché nel post della scheda Community Utilizzare le estensioni per definire i join.

Mantieni la coerenza tra le esplorazioni non ripetendo il codice in più punti. Per altre idee su come farlo, consulta il post della community di Looker su come evitare incoerenze tra le esplorazioni.

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

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

Ad esempio, supponiamo di avere un file dei livelli della 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 della 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 e poi fai riferimento a questi utilizzando il parametro value_format_name nelle dimensioni e nelle misure.

Crea linee guida per lo sviluppo

Definisci 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:

  • Organizzare in modo chiaro i file LookML in modo che siano coerenti e facili da navigare
  • Utilizzo di commenti nelle visualizzazioni e nei modelli per aggiungere contesto al codice LookML scritto
  • Creazione di documentazione in Looker utilizzando file Markdown