Perfezionamenti di LookML

Panoramica

Con i perfezionamenti di LookML, puoi adattare una vista o un'esplorazione esistente senza modificare il file LookML che la contiene. È 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 della 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 fosse il LookML originale per la 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.

Per informazioni più dettagliate sull'implementazione, consulta la sezione Esempio.

Miglioramenti rispetto agli ampliamenti

Looker supporta anche l'estensione degli oggetti LookML. L'estensione è utile quando vuoi creare una nuova copia di una visualizzazione o di un'esplorazione esistente per poter 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 visualizzazione o un'esplorazione esistente con alcune modifiche o aggiustamenti a determinati oggetti, ma non vuoi creare copie della visualizzazione 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. Per un esempio di questo caso d'uso, consulta la sezione Esempio in questa pagina.

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

Gli sviluppatori LookML avanzati potrebbero voler 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 sostituirà 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 è presente un perfezionamento di questa dimensione con hidden: no:


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

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

L'ultimo perfezionamento ha la precedenza, quindi viene applicato hidden: no e la dimensione viene visualizzata nella visualizzazione finale.

In alcuni casi, i perfezionamenti sono additivi anziché sostituire i valori precedenti. 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 da perfezionare, sostituirà i valori del 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 visualizzazione 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"
    }
  }
}

Ecco un perfezionamento della visualizzazione 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ù posizioni, 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 i relativi file sono inclusi. 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 sostituiranno 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 la mostra (hidden: no). In caso di conflitti come questo, ha la precedenza il perfezionamento più in basso nel file:

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 elementi inclusi avranno la precedenza. Ad esempio, se un file del modello include questi file:

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

Gli eventuali perfezionamenti nel file distance_analysis.lkml verranno applicati per primi, seguiti da quelli 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'affinamento che vuoi considerare l'affinamento finale per la visualizzazione o l'esplorazione, puoi aggiungere il flag final: yes all'affinamento. 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 di 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 che intendi.

I perfezionamenti possono contenere estensioni

Gli sviluppatori LookML avanzati potrebbero voler utilizzare un parametro extends all'interno di un perfezionamento di LookML, che aggiunge l'oggetto esteso all'oggetto sottoposto a perfezionamento.

Per riepilogare il comportamento di extends e dei perfezionamenti:

  • L'estensione di un oggetto ne crea una nuova copia e poi la basa su di essa. 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 visualizzazioni incorporerà una copia della visualizzazione di base, da cui uno sviluppatore può aggiungere diversi campi, filtri o altre proprietà per modificare i contenuti della visualizzazione di base. L'idea è che tu inizi con un oggetto di base e poi lo utilizzi in diversi modi in più 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. Facendo riferimento all'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 perfezionamento è un concetto di LookML avanzato. Prima di utilizzare extends in un perfezionamento, devi avere una conoscenza approfondita di quanto segue:

  • Come Looker implementa extends: 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 extends.
  • Come Looker implementa i perfezionamenti: se un elemento LookML è definito in più perfezionamenti, l'ultimo perfezionamento sostituisce i perfezionamenti precedenti. Per maggiori dettagli, 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 di extends specificati nei perfezionamenti dell'oggetto
  3. Valori dell'oggetto
  4. Valori delle perfezionamenti dell'oggetto

Per esemplificare, di seguito è riportato un esempio che segue il valore del parametro label in ogni fase 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 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'affinamento e l'affinamento ha un parametro extends, Looker applica gli elementi LookML dall'estensione dell'affinamento, 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 affrontate, Looker applica gli elementi dell'oggetto esteso, che in questo caso è l'esplorazione orders. In caso di conflitti, l'oggetto che estende ha la precedenza. Ora il valore label è "Ordini".
  4. Valori provenienti dai 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, di seguito è riportata un'esplorazione di base chiamata orders_base e un'esplorazione orders che espande 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
}

La ricerca 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 che users_base, come se si trattasse del codice LookML originale per l'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, nei casi in cui sono presenti 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.

Utilizzare i perfezionamenti nel progetto LookML

Ecco i passaggi 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 conservare 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 le perfezionamenti, devi includere i file del LookML che stai perfezionando. L'IDE di Looker ti invierà avvisi se provi a perfezionare un oggetto non incluso.
    • Nel file del modello, includi i file in cui sono definiti i perfezionamenti. Puoi combinare i file e utilizzare le inclusioni in modi molto creativi. Per maggiori dettagli, consulta la sezione Utilizzare i perfezionamenti per aggiungere livelli al modello in questa pagina.

Esempio

Per affinare gli oggetti LookML è un modo semplice per adattare le viste e le esplorazioni senza dover modificare il codice 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 denominato 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 modificarla 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 importati).
  • Perfezionamenti a Esplora aircraft:
    • Il segno + davanti al nome dell'esplorazione indica un perfezionamento di un'esplorazione esistente.
    • Il parametro label modifica l'etichetta dell'esplorazione in "Aeromobili semplificati".
    • Il parametro fields specifica che nell'esplorazione 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 vista per più casi d'uso, consulta la ricetta del ricettario Massimizzare la riutilizzabilità del codice con DRY LookML: personalizzazione di 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 modificare i file LookML originali. Ad esempio, se esiste un progetto in cui le visualizzazioni 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 denominata distance_stats con 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, nella parte inferiore dell'esempio, la visualizzazione flights esistente viene 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 livelli al modello

Un altro caso d'uso interessante per i perfezionamenti è l'aggiunta di livelli 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 contiene una vista 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, ad esempio l'aggiunta di join alle esplorazioni o di misure alle visualizzazioni, come mostrato di seguito:

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} ;;
  }
}

Puoi quindi aggiungere un file faa_analysis.layer.lkml per aggiungere un nuovo livello con le 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 nel modello.

Utilizzare i perfezionamenti per i PDT

Come descritto nella sezione Miglioramenti rispetto a estende di questa pagina, un'estensione crea una nuova copia dell'oggetto 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 visualizzazione del PDT, poiché i perfezionamenti non creano una nuova copia dell'oggetto da perfezionare.

Utilizzare i metadati per visualizzare i perfezionamenti di 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 dell'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 ulteriori informazioni, consulta la pagina della documentazione Localizzazione del modello LookML.