Puoi importare file da altri progetti LookML e repository esterni nel tuo progetto attuale. In questo modo puoi utilizzare file di modello, visualizzare file e altri file in più progetti.
Esistono diversi casi d'uso per farlo. Alcuni esempi:
Si basa su un Looker Block installato senza dover apportare modifiche dirette. Se Looker apporta modifiche al blocco, puoi eseguire il pull delle modifiche perché tutto il LookML che hai aggiunto è conservato in un repository separato.
Gestione di un progetto base generato automaticamente in base allo schema del database. Puoi inserire tutte le dimensioni personalizzate, le misure e altri elementi simili in un progetto separato che importa tutti i LookML dal progetto generato automaticamente. Puoi rigenerare regolarmente il progetto base quando cambia lo schema del database senza sovrascrivere tutto il LookML personalizzato.
Incapsulamento di oggetti condivisi in un singolo progetto e poi importazione in più altri progetti. Ad esempio, se hai una tabella comune a più database, puoi collocare la vista in un progetto e gestirla in un unico posto. Poi fai in modo che più altri progetti lo utilizzino importando la tabella in quei progetti.
Per importare file da un altro progetto, esegui queste attività:
- Crea un file manifest del progetto.
- Specifica i progetti locali o remoti che vuoi importare.
- Visualizzare i file di un progetto importato.
- Includi i file di un progetto importato.
Potrai quindi fare riferimento ai campi dai file del progetto importato e sostituire i valori delle costanti definite nel progetto importato, se le costanti allow override.
Creazione di un file manifest di progetto
Qualsiasi progetto che importa file da altri progetti deve avere un file manifest del progetto. Se il tuo progetto non ha ancora un file manifest, puoi crearne uno dall'icona + nella parte superiore del browser di file nell'IDE di Looker.
Per importare progetti, specificali nel file manifest. Puoi specificare progetti locali o remoti, come descritto nelle sezioni seguenti.
Importazione dei progetti locali
L'importazione di progetti locali può essere utilizzata solo se il progetto importato è presente nella stessa istanza di Looker. È inoltre consigliabile che gli sviluppatori dispongano delle autorizzazioni per i modelli del progetto importato. Se gli sviluppatori dispongono delle autorizzazioni per il modello nel progetto importato, il controllo delle versioni sarà dinamico, il che significa che le modifiche nel progetto importato avranno un impatto immediato sul progetto che lo importa. In questo modo gli sviluppatori possono convalidare le modifiche in entrambi i progetti prima di eseguirne il push in produzione. Inoltre, per gli sviluppatori con autorizzazioni per i modelli in entrambi i progetti, i file di progetto importati rifletteranno lo stato della modalità sviluppo dello sviluppatore. Perciò, se lo sviluppatore è in modalità di sviluppo, l'IDE di Looker mostrerà la modalità di sviluppo dei file del progetto importato. Se lo sviluppatore è in modalità di produzione, nell'IDE di Looker viene visualizzata la modalità di produzione del progetto importato.
Nel file manifest, il parametro project_name
specifica il nome del progetto corrente (Looker compila automaticamente questo parametro quando crei il file manifest per il progetto). Per importare un progetto locale nel progetto corrente, utilizza uno o più parametri local_dependency
per specificare il progetto o i progetti da importare:
# This project
project_name: "my_project"
# The project to import
local_dependency: {
project: "my_other_project"
}
Nei seguenti scenari, devi utilizzare l'importazione remota di progetti anziché l'importazione locale di progetti:
- I tuoi sviluppatori non dispongono delle autorizzazioni per i modelli del progetto importato. In questo caso, Looker crea un clone della modalità di produzione del progetto importato e visualizza la versione statica dei file nell'IDE. Questa versione statica non mostra mai la versione dei file in modalità di sviluppo e potrebbe anche non essere aggiornata con l'attuale modalità di produzione senza avvisare lo sviluppatore. Conviene utilizzare l'importazione remota del progetto e fornire un elemento
ref
che specifichi un ramo Git o una release Git nel progetto remoto. In questo caso, Looker rileverà automaticamente i nuovi commit nel progetto remoto, in modo che i tuoi sviluppatori vengano avvisati e possano quindi importare la versione più recente dei file di progetto remoti. - I tuoi sviluppatori devono utilizzare sempre la versione di produzione di un progetto importato.
- I tuoi sviluppatori devono lavorare con una versione statica dei file del progetto importato.
Importazione di progetti remoti
In un'importazione remota, non è necessario che il progetto importato si trovi nella stessa istanza. Il progetto viene invece importato tramite il repository Git remoto.
Per importare un repository remoto, utilizza il parametro remote_dependency
per fornire le informazioni relative al repository remoto. Il parametro remote_dependency
accetta le seguenti informazioni e sottoparametri:
- Il nome del progetto importato, che può essere qualsiasi cosa tu voglia. Nel seguente esempio, il nome del progetto è
ga_360_block
. Questo nome verrà utilizzato nelle istruzioniinclude
per fare riferimento ai file importati nei progetti LookML. Il nome viene utilizzato anche come nome della cartella nella cartellaimported_projects
dell'IDE di Looker. - Il sottoparametro
url
, in cui specifichi l'indirizzo del repository Git esterno. Utilizza l'URL principale del repository. - Il sottoparametro
ref
, in cui specifichi un ramo Git, un tag di release Git o l'SHA di un commit nel repository Git. Puoi specificare una SHA di commit se vuoi un controllo delle versioni statico, in modo che le modifiche nel progetto importato non vengano applicate automaticamente nel progetto (questa è una buona opzione per Looker Blocks). In alternativa, puoi specificare un ramo Git o un tag di release Git se vuoi che Looker rilevi automaticamente i nuovi commit nel progetto remoto. Per ulteriori informazioni, consulta la sezione Rilevamento automatico delle nuove versioni di un progetto remoto in questa pagina. - Il sottoparametro
override_constant
, che è un sottoparametro facoltativo che consente di sostituire il valore di una costante definita in un progetto importato.
Ecco un esempio di parametro remote_dependency
in un file manifest di un progetto. In questo esempio viene utilizzata una connessione HTTPS:
remote_dependency: ga360_block {
url: "https://github.com/llooker/google_ga360"
ref: "master"
override_constant: connection {
value: "importing_project_connection"
}
}
Puoi anche utilizzare SSH:
remote_dependency: ga360_block {
url: "git@github.com:llooker/google_ga360.git"
ref: "master"
override_constant: connection {
value: "importing_project_connection"
}
}
Dopo aver aggiunto la dipendenza remota, potresti dover configurare le credenziali di importazione per il progetto remoto. Consulta la sezione Configurare le credenziali di autenticazione per i repository remoti privati in questa pagina.
Rilevamento automatico delle nuove versioni di un progetto remoto
Puoi fare in modo che Looker rilevi automaticamente i nuovi commit nel progetto remoto se specifichi un ramo Git o un tag di release Git nel sottoparametro ref
di remote_dependency
nel tuo file manifest.
Ad esempio, ecco una dipendenza remota in cui il ramo master
è specificato nel sottoparametro ref
:
remote_dependency: exchange_rate {
url: "https://github.com/llooker/datablocks-exchangerate.git"
ref: "master"
}
Successivamente, quando il ramo master
viene aggiornato con nuovi commit, Looker rileverà automaticamente le modifiche.
Di seguito è riportato un esempio in cui viene specificato il tag di release v1.0
:
remote_dependency: e_faa_original {
url: "https://github.com/llooker/google_ga360"
ref: "v1.0"
}
Indipendentemente dal tipo di valore specificato per il parametro ref
, anche per una SHA di commit, l'IDE mostrerà il pulsante Aggiorna dipendenze nella barra di navigazione del progetto in alto quando aggiungi un parametro remote_dependency
al progetto.
Fai clic su Aggiorna dipendenze per importare i file di progetto remoti. Se questa è la prima dipendenza remota che hai aggiunto al tuo progetto, l'aggiornamento delle dipendenze richiederà anche a Looker di creare un file di blocco manifest. Looker utilizza il file di blocco del manifest per monitorare la versione dei progetti remoti.
Se specifichi un ramo Git o un tag di release Git nel sottoparametro ref
, Looker controllerà la presenza di nuovi commit ogni volta che l'IDE di Looker si aggiorna, il che si verifica quando uno sviluppatore Looker passa in modalità di sviluppo, esegue un'azione Git nell'IDE o aggiorna il browser.
Se esistono nuovi commit, Looker mostrerà l'opzione Aggiorna dipendenze nel riquadro delle azioni Git dell'IDE.
Seleziona l'opzione Aggiorna dipendenze per importare i file di progetto remoti più recenti nel progetto.
Quando hai a disposizione i file più recenti, puoi convalidare il tuo LookML per verificare che tutti i riferimenti del progetto funzionino con i file di progetto remoti aggiornati. Puoi quindi correggere eventuali riferimenti inaccessibili ed eseguire il deployment delle modifiche senza tempi di inattività per gli utenti.
File di blocco dei manifest
Looker utilizza il file di blocco del manifest con il nome file manifest_lock.lkml
per monitorare le versioni dei progetti importati da remoto. Il file di blocco del manifest è elencato nel riquadro del browser di file dell'IDE di Looker.
Gli sviluppatori di Looker non devono creare o modificare il file di blocco del manifest, poiché i file di blocco vengono gestiti automaticamente da Looker.
Il file di blocco del manifest mostra ogni progetto remoto, rappresentato da una voce remote_dependency
con i sottoparametri url
e ref
:
- Il parametro
remote_dependency
indica il nome del progetto remoto specificato da uno sviluppatore di Looker nel file manifest. - Il sottoparametro
url
indica l'indirizzo del repository Git esterno che uno sviluppatore Looker ha specificato nel file manifest. - Il sottoparametro
ref
mostra la versione del progetto (indicata da un'SHA di commit) che Looker utilizza nel tuo progetto:- Se il progetto remoto è stato definito nel file manifest con un
ref
di un ramo Git o un tag di release Git, il parametroref
mostra la versione dei file (l'SHA di commit del progetto remoto) attualmente in uso nel progetto. Se sono presenti nuovi commit nel progetto remoto, Looker mostrerà il pulsante Aggiorna dipendenze nell'IDE per consentirti di importare i file di progetto remoto più recenti. Il valoreref
nel file di blocco del manifest verrà quindi aggiornato per mostrare l'SHA di commit più recente per quel ramo o tag di release. - Se il progetto remoto è stato definito nel file manifest con un
ref
di una specifica SHA di commit, il parametroref
nel file di blocco del manifest sarà la stessa SHA di commit.
- Se il progetto remoto è stato definito nel file manifest con un
Configurazione delle credenziali di autenticazione per repository remoti privati
Per configurare le credenziali di autenticazione per repository remoti privati, vai alla pagina Import Credentials (Importa credenziali) selezionando Settings (Impostazioni)
nel riquadro di navigazione a sinistra all'interno dell'IDE.Le impostazioni Credenziali di importazione mostrano un elenco degli URL per ogni repository remoto definito nel file manifest del progetto, il tipo di autenticazione utilizzato per il repository (https
o ssh
) e se Looker è in grado di connettersi correttamente al repository.
Aggiunta delle credenziali di autenticazione
Per aggiungere le credenziali di autenticazione per un repository:
Nella pagina Import Credentials (Importa credenziali) sotto l'intestazione URL, tieni il puntatore sul nome di un repository per visualizzare i pulsanti Test e Configura, quindi fai clic su Configura.
Looker visualizza la finestra di dialogo Configura autenticazione Git per consentirti di configurare le credenziali per il repository remoto. La finestra di dialogo indicherà il tipo di credenziali richieste per quel particolare repository.
Se il repository richiede un nome utente e una password (o un token di accesso personale) per l'autenticazione, inserisci il nome utente e la password o il token e fai clic su Salva modifiche.
Se il repository richiede una chiave SSH, come nell'esempio di utilizzo di SSH per importare un progetto remoto spiegato in precedenza in questa pagina, Looker visualizza una finestra di dialogo che mostra la chiave SSH locale. Fai clic su Copia chiave per copiare la chiave SSH negli appunti e aggiungerla all'elenco di chiavi del tuo repository.
Dopo aver salvato le credenziali, fai clic su Test per testare l'accesso di Looker al repository.
Una volta superati i test di connessione e stabilito la connessione al repository, la sezione Import Credentials mostra un segno di spunta verde accanto al nome del repository.
Modifica delle credenziali di autenticazione
Per modificare le credenziali di autenticazione per un repository:
Per visualizzare i pulsanti Test e Modifica, tieni il puntatore del mouse su un repository in cui sono già configurate le credenziali di autenticazione e fai clic su Modifica.
Se il repository richiede un nome utente e una password (o un token di accesso personale) per l'autenticazione, fai clic su Cancella credenziali e, nella finestra di dialogo di conferma, fai clic su Sì, cancella credenziali.
Inserisci le nuove credenziali nella finestra di dialogo Configura autenticazione Git e fai clic su Salva modifiche.
Visualizzazione dei file di un progetto importato
L'IDE di Looker mostra i file di progetto importati nella cartella imported_projects
del riquadro di navigazione a sinistra. Puoi selezionare il file di un progetto importato per visualizzarne i contenuti.
I file di progetti locali e progetti remoti sono elencati nella cartella imported_projects
.
Puoi anche visualizzare dal browser oggetti gli oggetti dei file di progetto importati che sono inclusi nel progetto attivo. Accedi al browser degli oggetti dalla barra di navigazione dell'IDE di Looker.
Inoltre, gli utenti con l'autorizzazione develop
possono utilizzare il riquadro dei metadati per visualizzare informazioni sugli oggetti dei progetti importati, inclusi i link per accedere al file importato in cui è definito l'oggetto. Per ulteriori informazioni, consulta la pagina della documentazione Metadati per gli oggetti LookML.
Inclusione dei file di un progetto importato
Il parametro include
in un file del modello specifica i file di progetto che saranno disponibili per quel modello. Dopo aver specificato nel file manifest un progetto importato locale o remoto, puoi usare il parametro include
in un file di modello per specificare i file dal progetto importato. Possono essere inclusi solo i file il cui progetto è elencato nel file manifest.
Per include
un file di un altro progetto, utilizza il nome file con due barre (//
) e il nome del progetto importato. Fai seguire il nome del progetto importato con una singola barra (/
) e il percorso completo del file da includere.
Ad esempio, questi comandi include
indicano il file della visualizzazione users
del progetto importato e_flights
e la vista orders
del progetto importato e_commerce
:
include: "//e_flights/views/users.view.lkml"
include: "//e_commerce/public/orders.view.lkml"
Per informazioni su come specificare i percorsi con le cartelle IDE abilitate, consulta la sezione Sintassi del percorso della pagina del parametro include
.
È possibile utilizzare caratteri jolly per includere più file. Ad esempio, per includere tutti i file di visualizzazione nella directory /views/
del progetto importato e_flights
:
include: "//e_flights/views/*.view"
Inoltre, puoi usare i caratteri jolly per definire l'ambito a livelli di directory specifici o per directory ricorrenti nel progetto importato:
include: "//e_flights/*/*.view.lkml"
include: "//e_commerce/*/*.view.lkml"
Per informazioni sull'utilizzo di caratteri jolly con le cartelle IDE abilitate, consulta la sezione Esempi di caratteri jolly della pagina del parametro include
.
Inclusione dei file di modello
Non puoi includere un file del modello di un altro progetto. Se invece vuoi riutilizzare, perfezionare o estendere le esplorazioni in più progetti, nel progetto importato puoi creare un file Esplora separato e includerlo in altri progetti. Per saperne di più, consulta la sezione Includi le esplorazioni in un modello della pagina della documentazione del parametro include
.
Includi file che includono altri file
Quando includi un file che include altri file, tutte le inclusioni vengono risolte prima che il file venga passato al progetto successivo che lo include.
Ad esempio, se nel progetto corrente importi un file (A
) da un altro progetto (proj_A
) e il file importato contiene un parametro include
che include il file B
del progetto proj_B
, il file B
verrà incluso nel file A
prima dell'importazione del file A
nel progetto corrente.
Importazione dei file di dati
I file archiviati nella sezione Dati di un progetto non vengono importati. Per fare riferimento a un file di dati di un progetto importato, ad esempio nel parametro map_layer
, utilizza il percorso completo e il nome file del file. Ad esempio:
map_layer: json_from_imported_project {
file: "//path_to_imported_project/folder/filename.topojson"
...
}
Riferimento ai file di un progetto importato
Dopo aver importato il file di una vista nel tuo progetto, puoi utilizzare la sintassi ${view_name.field_name}
per fare riferimento ai campi della vista importata come se il file della vista facesse parte di quel progetto. Ad esempio, supponi di aver importato il progetto ga_360_block
nel file manifest del progetto e di avere la seguente istruzione include
nel file del modello:
include: "//ga_360_block/ga_block.view"
Useresti la sintassi ${ga_block.hits_total}
per fare riferimento al campo hits_total
dalla vista ga_block
inclusa.
Utilizzo di costanti nei file di un progetto importato
Le costanti LookML ti consentono di definire un valore nel file manifest del tuo progetto che può essere riutilizzato in tutto il progetto. Il sottoparametro export
del parametro constant
specifica se è possibile eseguire l'override del valore di una costante quando i file che fanno riferimento a questa costante vengono importati in un altro progetto.
Il parametro export
ha i seguenti valori possibili:
none
: il valore predefinito perexport
. Il valore della costante non può essere sostituito nel progetto di importazione. Il progetto di importazione utilizza il valore costante specificato nel file manifest del progetto importato.override_optional
: il valore della costante può essere facoltativamente sostituito nel progetto di importazione. Se nel file manifest del progetto di importazione non viene fornito un valore, viene utilizzato il valore originale del progetto importato.override_required
: il progetto di importazione deve sostituire il valore costante originariamente specificato nel file manifest del progetto importato. Se non viene fornito un nuovo valore costante nel progetto di importazione, Looker mostrerà un errore.
Quando importi file che fanno riferimento a una costante nel progetto, puoi utilizzare il sottoparametro override_constant
di local_dependency
o remote_dependency
nel file manifest del tuo progetto per fornire un nuovo valore per quella costante, a condizione che export
sia impostata su override_optional
o override_required
nel progetto originale. Quando esegui l'override del valore di una costante da un progetto importato, il progetto utilizzerà il valore specificato con il parametro override_constant
.
Ad esempio, supponiamo che tu gestisca più database su una singola istanza di Looker, con un progetto separato per ogni database. Inoltre, supponiamo che gli schemi di dati siano identici per ogni database e che il tuo obiettivo sia definire un'analisi una volta e applicarla a ogni set di dati.
In questo esempio, supponiamo che proj_core
sia il progetto di base in cui hai definito le viste da importare in altri progetti. Inoltre, una delle viste da importare è la vista orders
, definita come segue:
view: orders {
sql_table_name: "@{schema_name}.orders"
}
Lo schema su cui si basa la vista orders
viene specificato nel parametro sql_table_name
utilizzando la costante schema_name
definita nel file manifest proj_core
. Nell'esempio seguente, poiché la costante schema_name
è impostata su export: override_required
, qualsiasi progetto che importa schema_name
deve eseguirne l'override utilizzando il parametro override_constant
:
constant: schema_name {
value: "proj_core_schema"
export: override_required
}
Ad esempio, supponiamo di voler importare la vista orders
in un progetto locale chiamato proj_a
. Nel database di proj_a
è presente anche una tabella denominata orders
con una struttura identica alla tabella orders
nel progetto base, proj_core
.
Poiché proj_core
e proj_a
si trovano sulla stessa istanza, puoi importare la vista orders
in proj_a
utilizzando local_dependency
. Utilizzando il sottoparametro override_constant
di local_dependency
, puoi quindi aggiornare la costante schema_name
in modo che punti allo schema proj_a_schema
nel file manifest per proj_a
:
project_name: "proj_a"
local_dependency: {
project: "proj_core"
override_constant: schema_name {
value: "proj_a_schema"
}
}
In questo esempio, poiché la costante schema_name
è impostata su export: override_required
in project_core
, Looker mostrerà un errore se non sostituisci il suo valore in proj_a
(il progetto di importazione).
Se esegui l'override della costante schema_name
in proj_a
, puoi utilizzare i campi definiti nella vista orders
in proj_core
anziché creare un nuovo file della vista e definire i campi da zero. In questo esempio, la vista orders
corrisponde a una tabella diversa per ogni progetto:
- In
proj_core
, la vistaorders
si basa sulla tabellaproj_core_schema.orders
del tuo database. - In
proj_a
, la vistaorders
si basa sulla tabellaproj_a_schema.orders
del tuo database.