Perfezionamenti LookML

Panoramica

Con i perfezionamenti LookML, puoi adattare una vista o un'esplorazione esistente senza modificare il file LookML che la contiene. Questo è ideale per:

Ad esempio, se nel tuo 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 nel modo descritto di seguito: utilizza il parametro view con lo stesso nome 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 vista 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 visualizzazione o un proprio file LookML dedicato. Consulta la sezione Utilizzo dei perfezionamenti nel tuo progetto LookML per scoprire come funziona.

Il perfezionamento combinato con il LookML originale genera 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 vedono la dimensione Vettore aereo, proprio come se avessi aggiunto la dimensione al file della vista originale.

Vedi l'esempio seguente per informazioni più dettagliate sull'implementazione.

Perfezionamenti rispetto a estensioni

Looker supporta anche l'estensione degli oggetti LookML. L'estensione è utile quando vuoi creare una nuova copia di una vista esistente o di Explore per poter aggiungere nuovi oggetti. Ad esempio, puoi creare una vista di base che definisce tutti i campi, quindi creare più nuove viste che estendono la visualizzazione di base. Queste nuove viste possono poi 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 con alcune modifiche o aggiustamenti a determinati oggetti, ma non vuoi creare copie della vista o dell'esplorazione. I perfezionamenti sono ideali per situazioni in cui non è possibile o non si vuole modificare la vista di base o Esplora e per le situazioni in cui la creazione di una nuova vista o di Esplora richiede 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 pulita 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 ha la precedenza sulle impostazioni originali di un oggetto. Nell'esempio seguente, la vista originale ha una dimensione nascosta (hidden: yes):

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

E in un altro file è stato perfezionato la 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 viene mostrata nella visualizzazione finale.

In alcuni casi i perfezionamenti sono additivo anziché di sostituzione. Per ulteriori informazioni, consulta la sezione Alcuni parametri sono additivi di questa pagina.

Alcuni parametri sono cumulativi

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

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

I seguenti parametri sono additive:

Ad esempio, qui è presente una vista che ha 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 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 vista raffinata carriers, i due parametri link sono cumulative, quindi la dimensione name mostra 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. Tuttavia, ciò significa anche che gli sviluppatori devono essere molto attenti 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 derivanti dai file inclusi per ultimo sostituiranno i perfezionamenti derivanti dai file inclusi in precedenza.
  • All'interno di un singolo file, i perfezionamenti vengono applicati riga per riga, verso il basso. I perfezionamenti con il numero di riga più alto vengono applicati per ultimi e sostituiscono eventuali perfezionamenti precedenti in caso di conflitto.

Ad esempio, nel seguente file di visualizzazione sono presenti due perfezionamenti della vista faa_flights. Il primo perfezionamento nasconde una dimensione (hidden: yes), mentre il secondo mostra la dimensione (hidden: no). In caso di conflitti come questo, 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 includere più file in un progetto: i perfezionamenti nell'ultimo file elencato nei tag includono hanno la precedenza. Ad esempio, se un file modello include questi file:

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

Tutti i perfezionamenti in distance_analysis.lkml verranno applicati per primi, dopodiché saranno applicati eventuali perfezionamenti nel file finishing_touches.lkml. In caso di conflitto, i perfezionamenti nell'ultimo file, finishing_touches.lkml, avranno la precedenza.

Utilizzo di final: yes per evitare 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 che venga considerato il perfezionamento finale della vista o dell'esplorazione, puoi aggiungere il perfezionamento final: yes al perfezionamento. L'IDE di Looker restituirà un errore LookML se sono presenti 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 vista 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 di LookML avanzati potrebbero voler utilizzare un parametro extends all'interno di un perfezionamento LookML, che aggiunge l'oggetto esteso all'oggetto perfezionato.

Per riepilogare il comportamento di extends e i perfezionamenti:

  • Estendendo un oggetto viene creata una nuova copia dell'oggetto e creata su quest'ultimo. Ad esempio, puoi creare una vista di base che definisce tutti i campi, quindi creare più nuove viste che estendono la visualizzazione di base. Ognuna di queste nuove viste includerà 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 è che inizi con un oggetto di base e poi lo utilizzi in modi diversi in più altri oggetti. Per una discussione completa sull'utilizzo delle estensioni, puoi consultare la pagina della documentazione Riutilizzo del codice con estensioni.
  • Il perfezionamento di un oggetto aggiunge un livello di modifiche, ma, a differenza dell'estensione, il perfezionamento non crea più copie dell'oggetto. L'idea è quella di basarsi su un oggetto di base senza modificare il proprio LookML originale.

Per un esempio di utilizzo standard dei perfezionamenti, ecco un'esplorazione denominata orders e un'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 include un extends. Proseguendo sull'esempio, ecco la stessa esplorazione di orders. Inoltre, c'è 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
}

L'aspetto speciale è che il perfezionamento +orders include extends. Il risultato è che la visualizzazione +orders estenderà l'esplorazione di users_base.

In che modo Looker implementa extends nei perfezionamenti

L'estensione di un oggetto all'interno di un perfezionamento è un concetto di LookML avanzato. Prima di utilizzare extends per un perfezionamento, devi avere una conoscenza approfondita dei seguenti aspetti:

  • In che modo Looker implementa extends: se un elemento LookML è definito sia nell'oggetto ex esteso che in quello ing, viene utilizzata la versione nell'oggetto extender, a meno che il parametro non sia additive. Per maggiori dettagli, consulta la pagina della documentazione Riutilizzo del codice con estensioni.
  • In che modo 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, è necessario capire come Looker combina questi principi per implementare extends nei perfezionamenti. Ecco l'ordine implementato da Looker e ogni passaggio sostituisce quello precedente in caso di conflitto:

  1. Valori da extends specificati nell'oggetto
  2. Valori a partire dal valore extends specificato nei perfezionamenti dell'oggetto
  3. Valori dall'oggetto
  4. Valori derivanti dai perfezionamenti dell'oggetto

Per fare un esempio, 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 di label per orders Explore (Esplora) in questo esempio:

  1. Valori a partire da extends specificati 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 di label è "Ordini di base".
  2. Valori a partire da extends specificati nei perfezionamenti dell'oggetto. Poiché orders ha un perfezionamento e il perfezionamento ha un parametro extends, Looker applica quindi gli elementi LookML dall'estensione del perfezionamento, che in questo caso è users_baseEsplora. A questo punto, il valore di label è "Utenti di base".
  3. Valori dall'oggetto. Ora che tutte le estensioni sono state gestite, Looker applica gli elementi dall'oggetto che si estende, che in questo caso è orders Explore. In caso di conflitti, prevale l'oggetto che si estende. Quindi, il valore di label è "Ordini".
  4. Valori derivanti dai perfezionamenti dell'oggetto. Infine, Looker applica gli elementi da qualsiasi perfezionamento dell'esplorazione orders. In caso di conflitti, vince l'oggetto di perfezionamento. Il valore label è "Ordini perfezionati".

Il perfezionamento extends è cumulativo

Come descritto nella sezione Parametri di sostituzione dei perfezionamenti in questa pagina, i perfezionamenti in genere sostituiscono le impostazioni originali di un oggetto. Questo non avviene per il parametro extends. Quando extends viene utilizzato in un perfezionamento, il valore nel parametro extends viene aggiunto all'elenco degli elementi estesi nell'oggetto originale o nei perfezionamenti precedenti. In caso di conflitti, viene data priorità all'ultimo elemento della catena di estensioni.

Ad esempio, ecco un'esplorazione di base chiamata orders_base e un'esplorazione di orders che estende la base. Inoltre, c'è un users_base Esplora e il perfezionamento di +orders che estende 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 la orders_base, quindi i perfezionamenti di +orders aggiungono la users_base all'elenco extends. Il risultato è che +orders Explore estenderà sia orders_base che users_base, come se questo fosse il LookML originale di Explore:

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

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

Il concetto di estendere più di un oggetto alla volta è discusso nella pagina della documentazione Riutilizzo del codice con estensioni.

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

Utilizzo dei perfezionamenti nel tuo progetto LookML

Di seguito sono riportati i passaggi generici per perfezionare le viste e le esplorazioni del progetto:

  1. Identifica la vista o l'esplorazione che vuoi perfezionare.
  2. Decidi dove posizionare i perfezionamenti. Puoi aggiungere perfezionamenti in qualsiasi file LookML esistente oppure puoi creare file LookML separati per perfezionare i tuoi risultati. Per un esempio di creazione di file LookML generici, consulta la procedura per creare un file di test dei dati nella pagina della documentazione Informazioni su altri file di progetto.
  3. Utilizza il parametro include per incorporare i perfezionamenti nel tuo modello:
    • Nel file in cui scrivi i perfezionamenti, devi includere i file del LookML che stai perfezionando. L'IDE Looker ti avvisa se cerchi di perfezionare un oggetto non incluso.
    • Nel file del modello, includi i file in cui sono definiti i perfezionamenti. Puoi combinare file e utilizzare le creatività in modo molto creativo. Per informazioni dettagliate, consulta la sezione Utilizzare i perfezionamenti per aggiungere livelli al modello in questa pagina.

Esempio

Perfezionare gli oggetti LookML è un modo semplice per adattare visualizzazioni ed esplorazioni senza dover modificare il LookML originale. Ciò è 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 LookML per l'esplorazione di 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 viste, ciascuna delle quali ha molte dimensioni.

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

Poiché la funzionalità Esplora di aircraft è un file importato, non puoi modificarlo direttamente. In alternativa, puoi aggiungervi un perfezionamento. Di seguito è riportato un esempio di file separato denominato refinements.lkml, contenente 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 di progetto importati).
  • Perfezionamenti per l'esplorazione di aircraft:
    • Il segno + davanti al nome della pagina Esplora indica un perfezionamento a un'esplorazione esistente.
    • Il parametro label cambia l'etichetta di Esplora in "Aeromobili semplificati".
    • Il parametro fields specifica che nell'esplorazione verranno visualizzati solo tre campi.

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

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 libro di ricette Massimizzare il riutilizzo del codice con ML LookY: personalizzazione di una singola visualizzazione 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 Blocchi Looker o file importati.

Una volta che hai deciso di aggiungere i perfezionamenti e includerli nei tuoi modelli, puoi eseguire operazioni molto interessanti con i tuoi progetti, come descritto negli esempi seguenti.

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 nel tuo database e memorizzate in un file LookML denominato faa_basic.lkml, puoi creare un file faa_analysis.lkml in cui utilizzi i perfezionamenti per aggiungere analisi. Ecco un esempio di nuova tabella derivata chiamata 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, in fondo all'esempio, la vista flights esistente è 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]
  }
}

Utilizzo dei 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 includerli in modo strategico per aggiungere livelli.

Ad esempio, nel progetto FAA è presente un file faa_raw.lkml che contiene tutte le viste e le esplorazioni che sono state generate dalle tabelle nel tuo database. Questo file offre una visualizzazione per ogni tabella nel database, ciascuna con dimensioni 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 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} ;;
  }
}

Successivamente puoi aggiungere un file faa_analysis.layer.lkml per aggiungere un nuovo livello con le analisi. Per un esempio di file di analisi, consulta la sottosezione Utilizzo dei perfezionamenti per aggiungere le analisi.

Da qui, devi solo includere tutti i file di perfezionamento nel file del modello. Puoi anche utilizzare il file modello per aggiungere perfezionamenti per indirizzare le viste alle tabelle del 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 modello e punti a tabelle di database diverse, oppure puoi includere diversi file di perfezionamento che hai creato per definire altri livelli che vuoi nel tuo modello.

Utilizzo dei perfezionamenti per le PDT

Come descritto nella sezione Perfezionamenti rispetto a estensioni di questa pagina, un'estensione crea una nuova copia dell'oggetto in fase di estensione. Nel caso delle tabelle derivate persistenti (PDT, Persistent Derived Table), non devi utilizzare le estensioni, poiché ciascuna estensione di questo tipo creerà una nuova copia della tabella nel database.

Tuttavia, puoi aggiungere perfezionamenti alla visualizzazione delle PDT, in quanto i perfezionamenti non creano una nuova copia dell'oggetto che viene 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 nell'oggetto. Per informazioni, consulta la pagina della documentazione Metadati per oggetti LookML.

Aspetti da considerare

Progetti con localizzazione

Quando perfezioni un oggetto, tieni presente che le regole di localizzazione vengono applicate anche ai perfezionamenti. Se stai perfezionando un oggetto e definendo nuove etichette o descrizioni, dovrai fornire le definizioni di localizzazione nei file stringa del tuo progetto per le impostazioni internazionali. Per ulteriori informazioni, consulta la pagina Localizzazione del modello LookML.