Perfezionamenti di LookML

Panoramica

Con i perfezionamenti LookML, puoi adattare una vista o esplorazione esistente senza modificare il file LookML che la contiene. È la soluzione ideale per:

Ad esempio, se nel progetto è presente il seguente file di visualizzazione:

view: flights {
  sql_table_name: flightstats.accidents ;;

  dimension: id {
    label: "id"
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }
}

Puoi perfezionare la vista flights come mostrato nell'esempio seguente: utilizza il parametro view con lo stesso nome di vista, ma aggiungi un segno più (+) davanti al nome per indicare che si tratta di un perfezionamento di una vista esistente.

Questo perfezionamento aggiunge una dimensione air_carrier alla visualizzazione flights esistente:

view: +flights {
  dimension: air_carrier {
    type: string
    sql: ${TABLE}.air_carrier ;;
  }
 }

Questo perfezionamento può essere inserito in qualsiasi file LookML del progetto, ad esempio un file modello, un file di vista o un file LookML dedicato. Per informazioni su come funziona, consulta la sezione Utilizzare i perfezionamenti nel progetto LookML.

Il perfezionamento combinato con il LookML originale ha il risultato finale come se questo fosse il LookML originale della vista:

view: flights {
  sql_table_name: flightstats.accidents ;;

  dimension: id {
    label: "id"
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }

  dimension: air_carrier {
    type: string
    sql: ${TABLE}.air_carrier ;;
  }
}

Nell'interfaccia utente di Looker, gli utenti vedranno la dimensione Compagnia aerea, proprio come se avessi aggiunto la dimensione al file della vista originale.

Consulta la sezione Esempio per informazioni più dettagliate sull'implementazione.

Miglioramenti rispetto agli ampliamenti

Looker supporta anche l'estensione degli oggetti LookML. L'estensione è utile quando vuoi creare una nuova copia di una vista o di un'esplorazione esistente in modo da potervi aggiungere nuovi oggetti. Ad esempio, puoi creare una vista di base che definisce tutti i campi e poi creare più nuove viste che estendono la vista di base. Queste nuove visualizzazioni possono essere modificate per nascondere determinati campi nella visualizzazione di base o per modificare le definizioni o le etichette dei campi della visualizzazione di base.

I perfezionamenti sono utili quando vuoi modificare una vista o un'esplorazione esistente apportando qualche ritocco o aggiustamento a determinati oggetti, ma non vuoi creare copie della vista o dell'esplorazione. I perfezionamenti sono ideali per le situazioni in cui non puoi o non vuoi modificare la visualizzazione di base o l'esplorazione e per le situazioni in cui la creazione di una nuova visualizzazione o esplorazione richiederebbe modifiche sostanziali ad altri riferimenti LookML. Consulta la sezione Esempio di questa pagina per un esempio di questo caso d'uso.

Nella maggior parte dei casi d'uso, i perfezionamenti sono un'alternativa più semplice e chiara a extends.

Gli sviluppatori LookML avanzati possono utilizzare il parametro extends all'interno di un perfezionamento LookML. Per ulteriori informazioni, consulta la sezione I perfezionamenti possono contenere estensioni in questa pagina.

I perfezionamenti sostituiscono la maggior parte dei parametri

È importante notare che nella maggior parte dei casi un perfezionamento sostituisce le impostazioni originali di un oggetto. Nell'esempio seguente, la vista originale ha una dimensione nascosta (hidden: yes):

view: faa_flights {
  dimension: carrier {
    hidden: yes
  }
}

In un altro file c'è un perfezionamento a quella dimensione con hidden: no:


include: "/views/faa_flights.view.lkml"

view: +faa_flights {
  dimension: carrier {
    hidden: no
  }
}

L'ultimo perfezionamento ha la precedenza, pertanto viene applicato hidden: no e la dimensione verrà mostrata nella visualizzazione finale.

In alcuni casi i perfezionamenti sono additivi anziché sostituirli. Per saperne di più, consulta la sezione Alcuni parametri sono additivi di questa pagina.

Alcuni parametri sono additivi

In molti casi, se il perfezionamento contiene lo stesso parametro dell'oggetto perfezionato, il perfezionamento sostituisce i valori parametro dell'oggetto perfezionato.

Tuttavia, i perfezionamenti possono essere additivi per alcuni parametri, il che significa che i valori dell'oggetto di base vengono utilizzati insieme ai valori dell'oggetto perfezionato.

I seguenti parametri sono additivi:

Ad esempio, ecco una vista con una dimensione name con un parametro link:

view: carriers {
  sql_table_name: flightstats.carriers ;;

  dimension: name {
    sql: ${TABLE}.name ;;
    type: string
    link: {
      label: "Google {{ value }}"
      url: "http://www.google.com/search?q={{ value }}"
      icon_url: "http://google.com/favicon.ico"
    }
  }
}

Ed ecco un perfezionamento della vista carriers, con una dimensione name che ha valori diversi per il parametro link:


include: "/views/carriers.view.lkml"

view: +carriers {
  label: "Refined carriers"

  dimension: name {
    sql: ${TABLE}.name ;;
    type: string
    link: {
      label: "Dashboard for {{ value }}"
      url: "https://docsexamples.dev.looker.com/dashboards/307?Carrier={{ value }}"
      icon_url: "https://www.looker.com/favicon.ico"
    }
  }
}

Nella visualizzazione carriers perfezionata, i due parametri link sono additivi, pertanto la dimensione name mostrerà entrambi i link.

I perfezionamenti vengono applicati in ordine

Un oggetto può essere perfezionato più volte e in più luoghi, il che consente agli sviluppatori di Looker di utilizzare i perfezionamenti in molti modi creativi. Ciò significa anche che gli sviluppatori devono prestare molta attenzione all'ordine in cui vengono applicati i perfezionamenti:

  • All'interno di un progetto, i perfezionamenti vengono applicati nell'ordine in cui sono inclusi i relativi file. I perfezionamenti dei file inclusi per ultimi sostituiranno quelli dei file inclusi in precedenza.
  • All'interno di un singolo file, i perfezionamenti vengono applicati riga per riga dal basso verso l'alto. I perfezionamenti con il numero di riga più alto vengono applicati per ultimi e sostituiscono eventuali perfezionamenti precedenti, in caso di conflitti.

Ad esempio, nel seguente file di visualizzazione sono presenti due perfezionamenti della visualizzazione faa_flights. Il primo perfezionamento nasconde una dimensione (hidden: yes), mentre il secondo perfezionamento mostra la dimensione (hidden: no). In presenza di conflitti di questo tipo, il perfezionamento più in basso nel file ha la precedenza:

include: "//e_faa_original/views/faa_flights.view.lkml"

view: +faa_flights {
  dimension: carrier {
    hidden: yes
  }
}

view: +faa_flights {
  dimension: carrier {
    hidden: no
  }
}

La logica è simile per l'inclusione di più file in un progetto: i perfezionamenti nell'ultimo file elencato negli include avranno la precedenza. Ad esempio, se un file di modello include questi file:

include: "/refinements/distance_analysis.lkml"
include: "/refinements/finishing_touches.lkml"

Prima verranno applicati eventuali perfezionamenti nel file distance_analysis.lkml e poi eventuali perfezionamenti nel file finishing_touches.lkml. In caso di conflitti, avranno la precedenza i perfezionamenti nell'ultimo file, finishing_touches.lkml.

Utilizzo di final: yes per impedire ulteriori perfezionamenti

Come descritto in precedenza, lo stesso oggetto può essere perfezionato più volte in più posizioni e l'ultimo perfezionamento sostituirà tutti i perfezionamenti precedenti.

Se hai un perfezionamento che vuoi venga considerato il perfezionamento finale per la vista o l'esplorazione, puoi aggiungere il flag final: yes al perfezionamento. L'IDE di Looker restituirà un errore di LookML se esistono perfezionamenti esistenti che verranno applicati dopo questo perfezionamento finale o se uno sviluppatore tenta di aggiungere un nuovo perfezionamento che verrà applicato dopo questo perfezionamento finale. Ad esempio, il secondo perfezionamento in questo file di visualizzazione creerebbe un errore LookML perché il perfezionamento precedente ha il flag final: yes:

include: "//e_faa_original/views/faa_flights.view.lkml"

view: +faa_flights {
  final: yes
  dimension: carrier {
    hidden: yes
  }
}

view: +faa_flights {
  dimension: carrier {
    hidden: no
  }
}

L'aggiunta del flag final: yes a un perfezionamento è un buon modo per verificare che i perfezionamenti vengano applicati nell'ordine previsto.

I perfezionamenti possono contenere estensioni

Gli sviluppatori LookML avanzati possono utilizzare un parametro extends all'interno di un perfezionamento LookML, che aggiunge l'oggetto esteso all'oggetto che viene perfezionato.

Per riepilogare il comportamento di extends e dei perfezionamenti:

  • L'estensione di un oggetto crea una nuova copia dell'oggetto e ne crea una nuova. Ad esempio, puoi creare una vista di base che definisce tutti i campi e poi creare più nuove viste che estendono la vista di base. Ognuna di queste nuove viste incorpora una copia della vista di base e da lì uno sviluppatore potrà aggiungere diversi campi, filtri o altre proprietà per modificare i contenuti della vista di base. L'idea è di iniziare con un oggetto di base e quindi utilizzarlo in modi diversi in molti altri oggetti. Per una discussione completa sull'utilizzo di extends, consulta la pagina della documentazione Riutilizzo del codice con extends.
  • La raffinazione di un oggetto aggiunge un livello di modifiche all'oggetto, ma, a differenza dell'estensione, non crea più copie dell'oggetto. L'idea è creare un oggetto base senza modificare il relativo LookML originale.

Come esempio di utilizzo standard dei perfezionamenti, ecco un'esplorazione denominata orders e l'esplorazione +orders che la perfeziona:

explore: orders {
  view_name: orders
  # other Explore parameters
}

explore: +orders {
  label: "Orders Information"
  # other Explore parameters to build on the original Explore
}

Inoltre, puoi aggiungere un perfezionamento che includa un extends. Basandoti sull'esempio, ecco la stessa esplorazione orders. Inoltre, esiste un'esplorazione di base chiamata users_base e ora il perfezionamento +orders ha un parametro extends che inserisce users_base:


explore: users_base {
  view_name: users
  extension: required
  # other Explore parameters
}

explore: orders {
  view_name: orders
  # other Explore parameters
}

explore: +orders {
  label: "Orders Information"
  extends: [users_base]
  # other Explore parameters to build on the original Explore
}

La particolarità è che il perfezionamento +orders contiene un extends. Di conseguenza, la visualizzazione +orders ora estenderà la scheda Esplora users_base.

Come Looker implementa extends all'interno dei perfezionamenti

L'estensione di un oggetto all'interno di un'affinamento è un concetto di LookML avanzato. Prima di utilizzare extends in un perfezionamento, dovresti avere una conoscenza approfondita di quanto segue:

  • Come viene implementato extends da Looker: se un elemento LookML è definito sia nell'oggetto esteso sia nell'oggetto di estensione, viene utilizzata la versione nell'oggetto di estensione, a meno che il parametro non sia additivo. Per maggiori dettagli, consulta la pagina della documentazione Riutilizzo del codice con estensioni.
  • In che modo Looker implementa i perfezionamenti: se un elemento LookML viene definito in più perfezionamenti, l'ultimo perfezionamento sostituisce i perfezionamenti precedenti. Per informazioni dettagliate, consulta la sezione I perfezionamenti vengono applicati in ordine in questa pagina.

Infine, devi capire in che modo Looker combina questi principi per implementare extends utilizzato nei perfezionamenti. Ecco l'ordine implementato da Looker, con ogni passaggio che sostituisce il precedente in caso di conflitti:

  1. Valori dell'elemento extends specificato nell'oggetto
  2. Valori dell'elemento extends specificato nei perfezionamenti dell'oggetto
  3. Valori dell'oggetto
  4. Valori ottenuti dal perfezionamento dell'oggetto

Per spiegare, ecco un esempio che segue il valore del parametro label in ogni passaggio dell'implementazione:

explore: orders_base {
  label: "Orders Base"
  view_name: orders
  extension: required
}

explore: users_base {
  label: "Users Base"
  view_name: users
  extension: required
}

explore: orders {
  label: "Orders"
  extends: [orders_base]
}

explore: +orders {
  label: "Orders Refined"
  extends: [users_base]
}

Ecco come Looker implementa il valore label per l'esplorazione orders in questo esempio:

  1. Valori del valore extends specificato nell'oggetto. Poiché l'esplorazione orders ha un parametro extends, Looker inizia con gli elementi LookML dell'oggetto che viene esteso, in questo caso l'esplorazione orders_base. A questo punto, il valore label è " Orders Base".
  2. Valori di extends specificati nei perfezionamenti dell'oggetto. Poiché orders ha un perfezionamento e il perfezionamento ha un parametro extends, Looker applica gli elementi LookML dall'estensione del perfezionamento, che in questo caso è l'esplorazione users_base. A questo punto, il valore label è "Base utenti".
  3. Valori dell'oggetto. Ora che tutte le estensioni sono state gestite, Looker applica gli elementi dell'oggetto in estensione, che in questo caso è l'esplorazione orders. In caso di conflitto, vince l'oggetto che si estende. Ora il valore label è "Ordini".
  4. Valori dei perfezionamenti dell'oggetto. Infine, Looker applica gli elementi di eventuali perfezionamenti dell'esplorazione orders. In caso di conflitti, l'oggetto di perfezionamento ha la precedenza. Ora, il valore label è "Ordini perfezionati".

I perfezionamenti extends sono cumulativi

Come descritto nella sezione Parametri di override dei perfezionamenti di questa pagina, in genere i perfezionamenti sostituiscono le impostazioni originali di un oggetto. Non è così per il parametro extends. Quando extends viene utilizzato in un perfezionamento, il valore nel parametro extends viene aggiunto all'elenco di elementi estesi nell'oggetto originale o, se presenti, nei perfezionamenti precedenti. In caso di conflitti, la priorità viene assegnata all'ultimo elemento della catena di estensioni.

Ad esempio, ecco un'esplorazione di base chiamata orders_base e un'esplorazione orders che estende la base. Inoltre, è presente un'esplorazione users_base e il perfezionamento +orders che estendono users_base:

explore: orders_base {
  view_name: orders
  extension: required
  # other Explore parameters
}

explore: users_base {
  view_name: users
  extension: required
  # other Explore parameters
}

explore: orders {
  extends: [orders_base]
  # other Explore parameters to build on the base Explore
}

explore: +orders {
  extends: [users_base]
  # other Explore parameters to build on the base Explores
}

L'esplorazione orders estende orders_base, mentre i perfezionamenti +orders aggiungono users_base all'elenco extends. Il risultato è che l'esplorazione +orders ora estenderà sia orders_base sia users_base, come se si trattasse del LookML originale dell'esplorazione:

explore: orders {
  extends: [orders_base, users_base]
}

In caso di conflitti, la priorità viene assegnata all'ultimo elemento della catena di estensioni. In questo esempio, gli elementi in users_base sostituiscono gli elementi in conflitto in orders_base.

Il concetto di estensione di più oggetti alla volta è descritto nella pagina della documentazione Riutilizzo del codice con extends.

Un'ultima cosa da notare: in questo esempio, l'ordine dei parametri explore non è importante. Tuttavia, nel caso di più perfezionamenti dello stesso oggetto, l'ordine dei perfezionamenti è importante. Come descritto nella sezione I perfezionamenti vengono applicati in ordine di questa pagina, l'ultimo perfezionamento in un file sostituisce i perfezionamenti precedenti.

Utilizzo dei perfezionamenti nel progetto LookML

Di seguito sono riportate le fasi generali per perfezionare le visualizzazioni e le esplorazioni nel tuo progetto:

  1. Identifica la visualizzazione o l'esplorazione che vuoi perfezionare.
  2. Decidi dove vuoi ospitare i perfezionamenti. Puoi aggiungere perfezionamenti in qualsiasi file LookML esistente oppure creare file LookML separati per i perfezionamenti. Per un esempio di creazione di file LookML generici, consulta la procedura per la creazione di un file di test dei dati nella pagina della documentazione Informazioni su altri file di progetto.
  3. Utilizza il parametro include per incorporare le perfezionamenti nel modello:
    • Nel file in cui scrivi i perfezionamenti, devi includere i file del LookML che stai perfezionando. L'IDE di Looker ti invierà avvisi se tenti di perfezionare un oggetto non incluso.
    • Nel file del modello, includi i file in cui sono definiti i perfezionamenti. Puoi combinare file e utilizzare gli elementi inclusi in modi molto creativi; Per maggiori dettagli, consulta la sezione Utilizzare i perfezionamenti per aggiungere livelli al modello in questa pagina.

Esempio

Il perfezionamento degli oggetti LookML è un modo semplice per adattare viste ed esplorazioni senza dover modificare il LookML originale. Questa opzione è particolarmente utile quando le viste e le esplorazioni sono di sola lettura nel progetto, ad esempio con i file importati da altri progetti. Ecco un esempio di perfezionamento di un'esplorazione.

Ecco il codice LookML per l'esplorazione aircraft:


explore: aircraft {
  join: aircraft_types {
    type: left_outer
    sql_on: ${aircraft.id} = ${aircraft_types.id} ;;
    relationship: many_to_one
  }

  join: aircraft_engine_types {
    type: left_outer
    sql_on: ${aircraft.id} = ${aircraft_engine_types.id} ;;
    relationship: many_to_one
  }
}

Questa esplorazione contiene diverse visualizzazioni, ognuna con molte dimensioni.

Ora, un altro progetto LookML chiamato e_faa_refined importa il file di esplorazione aircraft. Nel progetto e_faa_refined puoi utilizzare un perfezionamento per semplificare notevolmente l'esplorazione aircraft.

Poiché l'esplorazione aircraft è un file importato, non puoi modificarlo direttamente. In alternativa, puoi aggiungere un perfezionamento. Ecco un esempio di file separato denominato refinements.lkml che contiene questo LookML:

include: "//e_faa_original/Explores/aircraft.explore.lkml"

explore: +aircraft {
  label: "Aircraft Simplified"
  fields: [aircraft.aircraft_serial, aircraft.name, aircraft.count]
}

Il file refinements.lkml contiene quanto segue:

  • Il parametro include per importare il file aircraft.explore.lkml originale dal progetto importato (consulta la pagina della documentazione Importazione di file da altri progetti per informazioni dettagliate su come fare riferimento ai file del progetto importato).
  • Perfezionamenti all'esplorazione aircraft:
    • Il simbolo + davanti al nome dell'esplorazione indica un perfezionamento di un'esplorazione esistente.
    • Il parametro label cambia l'etichetta dell'esplorazione in "Aereo semplificato".
    • Il parametro fields specifica che in Esplora verranno visualizzati solo tre campi.

Il risultato finale è come se si trattasse della visualizzazione aircraft Esplora e aircraft originale:

explore: aircraft {
  label: "Aircraft Simplified"
  }

view: aircraft {
  sql_table_name: flightstats.aircraft ;;

  dimension: aircraft_serial {
    type: string
    sql: ${TABLE}.aircraft_serial ;;
  }

  dimension: name {
    type: string
    sql: ${TABLE}.name ;;
  }

  measure: count {
    type: count
  }
}

Per un esempio di utilizzo dei perfezionamenti per personalizzare una singola visualizzazione per più casi d'uso, vedi la ricetta del libro di ricette Massimizzare la riusabilità del codice con LookML DRY: personalizzare una singola vista di base per più casi d'uso.

Altri casi d'uso per i perfezionamenti

Come accennato in precedenza, i perfezionamenti sono ideali per adattare gli oggetti LookML di sola lettura, come i blocchi di Looker o i file importati.

Tuttavia, una volta acquisita dimestichezza con l'aggiunta di perfezionamenti e la loro inclusione nei modelli, puoi fare cose molto interessanti con i tuoi progetti, come descritto nei seguenti esempi.

Utilizzare i perfezionamenti per aggiungere analisi

Puoi utilizzare i perfezionamenti per aggiungere analisi al modello senza toccare i file LookML originali. Ad esempio, se esiste un progetto in cui le viste e le esplorazioni vengono generate dalle tabelle del tuo database e archiviate in un file LookML denominato faa_basic.lkml, puoi creare un file faa_analysis.lkml in cui utilizzare i perfezionamenti per aggiungere analisi. Ecco un esempio di una nuova tabella derivata chiamata distance_stats che ha un'analisi della distanza. Questo esempio mostra un perfezionamento dell'esplorazione flights esistente del file faa_basic.lkml che unisce la tabella derivata distance_stats all'esplorazione flights. Inoltre, in fondo all'esempio, la vista flights esistente è stata perfezionata per aggiungere nuovi campi dall'analisi:

include: "faa_basic.lkml"

explore: +flights {
  join: distance_stats {
    relationship: one_to_one
    type: cross
  }
}

view: distance_stats {
  derived_table: {
    explore_source: flights {
      bind_all_filters: yes
      column: distance_avg {field:flights.distance_avg}
      column: distance_stddev {field:flights.distance_stddev}
    }
  }
  dimension: avg {
    type:number
    sql: CAST(${TABLE}.distance_avg as INT64) ;;
  }
  dimension: stddev {
    type:number
    sql: CAST(${TABLE}.distance_stddev as INT64) ;;
  }
}
view: +flights {
  measure: distance_avg {
    type: average
    sql: ${distance} ;;
  }
  measure: distance_stddev {
    type: number
    sql: STDDEV(${distance}) ;;
  }
  dimension: distance_tiered2 {
    type: tier
    sql: ${distance} ;;
    tiers: [500,1300]
  }
}

Utilizzare i perfezionamenti per aggiungere strati al modello

Un altro caso d'uso interessante per il perfezionamento è l'aggiunta di strati al progetto. Puoi creare più file di perfezionamento e poi includerli in modo strategico per aggiungere livelli.

Ad esempio, nel progetto FAA è presente un file faa_raw.lkml contenente tutte le visualizzazioni ed esplorazioni generate dalle tabelle del database. Questo file ha una visualizzazione per ogni tabella del database, ciascuna con una dimensione per ogni colonna del database.

Oltre al file non elaborato, puoi creare un file faa_basic.lkml per aggiungere un nuovo livello con perfezionamenti di base, come l'aggiunta di join alle esplorazioni o l'aggiunta di misure alle viste, in questo modo:

include: "faa_raw.lkml"

explore: +flights {
  join: carriers {
    sql_on: ${flights.carrier} = ${carriers.name} ;;
  }
}

view: +flights {
  measure: total_seats {
    type: sum
    sql: ${aircraft_models.seats} ;;
  }
}

In seguito, puoi aggiungere un file faa_analysis.layer.lkml per aggiungere un nuovo livello con analisi (consulta la sottosezione Utilizzare i perfezionamenti per aggiungere analisi per un esempio di file di analisi).

A questo punto, devi solo includere tutti i file di perfezionamento nel file del modello. Puoi anche utilizzare il file del modello per aggiungere perfezionamenti per indirizzare le viste alle tabelle di database a cui vuoi fare riferimento:

connection: "publicdata_standard_sql"

include: "faa_raw.lkml"
include: "faa_basic.lkml"
include: "faa_analysis.lkml"

view: +flights {
  sql_table_name: lookerdata.faa.flights;;
}
view: +airports {
  sql_table_name: lookerdata.faa.airports;;
}
view: +aircraft {
  sql_table_name: lookerdata.faa.aircraft;;
}
view: +aircraft_models{
  sql_table_name: lookerdata.faa.aircraft_models;;
}
view: +carriers {
  sql_table_name: lookerdata.faa.carriers;;
}

Puoi duplicare questo file del modello e indirizzarlo a tabelle di database diverse oppure includere diversi file di perfezionamento che hai creato per definire altri livelli che vuoi nel modello.

Utilizzo dei perfezionamenti per le PDT

Come descritto nella sezione Perfezionamenti rispetto alle estensioni di questa pagina, un'estensione crea una nuova copia dell'oggetto che viene esteso. Nel caso delle tabelle derivate permanenti (PDT), non devi utilizzare le estensioni, poiché ogni estensione di una PDT crea una nuova copia della tabella nel database.

Tuttavia, puoi aggiungere perfezionamenti alla vista della PDT, poiché i perfezionamenti non creano una nuova copia dell'oggetto perfezionato.

Utilizzo dei metadati per visualizzare i perfezionamenti per un oggetto

Puoi fare clic su un parametro explore o view nell'IDE di Looker e utilizzare il riquadro dei metadati per visualizzare eventuali perfezionamenti sull'oggetto. Per informazioni, consulta la pagina della documentazione Metadati per gli oggetti LookML.

Aspetti da considerare

Progetti con localizzazione

Quando perfezioni un oggetto, tieni presente che le regole di localizzazione si applicano anche ai perfezionamenti. Se stai perfezionando un oggetto e poi definisci nuove etichette o descrizioni, devi fornire le definizioni di localizzazione nei file di stringhe internazionali del progetto. Per saperne di più, consulta la pagina della documentazione Localizzazione del modello LookML.