Vous pouvez importer des fichiers d'autres projets LookML et de dépôts externes dans votre projet actuel. Vous pouvez ainsi utiliser des fichiers de modèle, des fichiers de vue et d'autres fichiers dans plusieurs projets. Les projets importés sont en lecture seule. Si vous souhaitez modifier les fichiers, vous devez le faire depuis leur propre projet LookML (ou depuis un autre éditeur connecté au dépôt Git des fichiers).
Il existe plusieurs cas d'utilisation pour importer des fichiers dans votre projet LookML. Voici quelques exemples :
Créer un bloc Looker installé sans avoir à le modifier directement. Si Looker modifie le bloc, vous pouvez récupérer les modifications, car tout le code LookML que vous y avez ajouté est conservé dans un dépôt distinct.
Maintenir un projet de base généré automatiquement en fonction du schéma de la base de données. Vous pouvez placer toutes vos dimensions et mesures personnalisées, etc., dans un projet distinct qui importe tout le LookML du projet généré automatiquement. Vous pouvez régénérer régulièrement le projet de base à mesure que le schéma de la base de données change, sans écraser tout votre code LookML personnalisé.
Encapsuler des objets partagés dans un seul projet, puis les importer dans plusieurs autres projets. Par exemple, si vous avez une table commune à plusieurs bases de données, vous pouvez placer la vue correspondante dans un projet et la gérer à cet endroit. Ensuite, faites en sorte que plusieurs autres projets l'utilisent en important la table dans ces projets.
Pour importer des fichiers depuis un autre projet, procédez comme suit :
- Créez un fichier manifeste de projet.
- Spécifiez les projets locaux ou distants que vous souhaitez importer.
- Afficher les fichiers d'un projet importé
- Incluez des fichiers provenant d'un projet importé.
Vous pourrez ensuite faire référence aux champs des fichiers du projet importé et remplacer les valeurs des constantes définies dans le projet importé, si les constantes autorisent le remplacement.
Créer un fichier manifeste de projet
Tout projet qui importe des fichiers d'autres projets doit disposer d'un fichier manifeste. Si votre projet ne comporte pas encore de fichier manifeste, vous pouvez en créer un à partir de l'icône + en haut de l'explorateur de fichiers dans l'IDE Looker.
Pour importer des projets, spécifiez-les dans le fichier manifeste. Vous pouvez spécifier des projets locaux ou distants, comme décrit dans les sections suivantes.
Importer des projets locaux
L'importation de projets locaux ne peut être utilisée que si le projet importé est présent sur la même instance Looker. Il est également recommandé que les développeurs disposent d'autorisations pour les modèles des modèles du projet importé. Si vos développeurs disposent d'autorisations sur les modèles dans le projet importé, la gestion des versions sera dynamique. Cela signifie que les modifications apportées au projet importé auront un impact immédiat sur le projet qui l'importe. Cela permet aux développeurs de valider les modifications dans les deux projets avant de les déployer en production. De plus, pour les développeurs disposant d'autorisations de modèle dans les deux projets, les fichiers de projet importés refléteront l'état du mode Développement du développeur. Ainsi, si le développeur est en mode Développement, l'IDE Looker affichera le mode Développement des fichiers du projet importé. Si le développeur est en mode Production, l'IDE Looker affichera le mode Production du projet importé.
Dans le fichier manifeste, le paramètre project_name
spécifie le nom du projet actuel (Looker remplit automatiquement ce paramètre lorsque vous créez le fichier manifeste pour le projet). Pour importer un projet local dans le projet actuel, utilisez un ou plusieurs paramètres local_dependency
pour spécifier le ou les projets à importer :
# This project
project_name: "my_project"
# The project to import
local_dependency: {
project: "my_other_project"
}
Dans les scénarios suivants, vous devez utiliser l'importation de projet distant au lieu de l'importation de projet local :
- Vos développeurs ne disposent pas des autorisations nécessaires pour accéder aux modèles du projet importé. Dans ce cas, Looker clone le mode Production du projet importé et affiche cette version statique des fichiers dans l'IDE. Cette version statique n'affichera jamais la version en mode Développement des fichiers et peut également être obsolète par rapport au mode Production actuel sans alerter le développeur. Il est préférable d'utiliser l'importation de projet à distance et de fournir un
ref
qui spécifie une branche Git ou une version Git dans le projet à distance. Si vous le faites, Looker détectera automatiquement les nouveaux commits dans le projet distant. Vos développeurs seront alors avertis et pourront importer la dernière version des fichiers du projet distant. - Vos développeurs doivent toujours travailler avec la version de production d'un projet importé.
- Vos développeurs doivent travailler avec une version statique des fichiers du projet importé.
Importer des projets distants
Dans une importation à distance, le projet importé n'a pas besoin de se trouver sur la même instance. Le projet est importé via son dépôt Git distant.
Pour importer un dépôt distant, utilisez le paramètre remote_dependency
pour fournir les informations du dépôt distant. Le paramètre remote_dependency
utilise les informations et sous-paramètres suivants :
- Nom du projet importé, que vous pouvez choisir librement. Dans l'exemple suivant, le nom du projet est
ga_360_block
. Vous utilisez ce nom dans les instructionsinclude
pour faire référence aux fichiers importés dans les projets LookML. Le nom est également utilisé comme nom de dossier sous le dossierimported_projects
de l'IDE Looker. - Sous-paramètre
url
, dans lequel vous spécifiez l'adresse du dépôt Git externe. Utilisez l'URL principale du dépôt. - Sous-paramètre
ref
, dans lequel vous spécifiez une branche Git, un tag de version Git ou le SHA d'un commit dans le dépôt Git. Vous pouvez spécifier un SHA de commit si vous souhaitez utiliser le versioning statique. Ainsi, les modifications apportées au projet importé ne seront pas automatiquement reflétées dans votre projet (il s'agit d'une bonne option pour les blocs Looker). Vous pouvez également spécifier une branche Git ou un tag de version Git si vous souhaitez que Looker détecte automatiquement les nouveaux commits dans le projet distant. Pour en savoir plus, consultez la section Détecter automatiquement les nouvelles versions d'un projet distant sur cette page. - Le sous-paramètre
override_constant
est facultatif. Il vous permet de remplacer la valeur d'une constante définie dans un projet importé.
Voici un exemple de paramètre remote_dependency
dans un fichier manifeste de projet. Cet exemple utilise une connexion HTTPS :
remote_dependency: ga360_block {
url: "https://github.com/llooker/google_ga360"
ref: "master"
override_constant: connection {
value: "importing_project_connection"
}
}
Vous pouvez également utiliser SSH :
remote_dependency: ga360_block {
url: "git@github.com:llooker/google_ga360.git"
ref: "master"
override_constant: connection {
value: "importing_project_connection"
}
}
Une fois la dépendance distante ajoutée, vous devrez peut-être configurer les identifiants d'importation pour le projet distant. Pour en savoir plus, consultez la section Configurer les identifiants d'authentification pour les dépôts distants privés sur cette page.
Détecter automatiquement les nouvelles versions d'un projet distant
Vous pouvez demander à Looker de détecter automatiquement les nouveaux commits dans le projet distant si vous spécifiez une branche Git ou un tag de version Git dans le sous-paramètre ref
de remote_dependency
dans votre fichier manifeste.
Par exemple, voici une dépendance distante où la branche master
est spécifiée dans le sous-paramètre ref
:
remote_dependency: exchange_rate {
url: "https://github.com/llooker/datablocks-exchangerate.git"
ref: "master"
}
Par la suite, lorsque la branche master
sera mise à jour avec de nouveaux commits, Looker détectera automatiquement les modifications.
Voici un exemple où la balise de version v1.0
est spécifiée :
remote_dependency: e_faa_original {
url: "https://github.com/llooker/google_ga360"
ref: "v1.0"
}
Quel que soit le type de valeur que vous spécifiez pour le paramètre ref
, même un SHA de commit, l'IDE affichera le bouton Mettre à jour les dépendances dans la barre de navigation supérieure du projet lorsque vous ajouterez un paramètre remote_dependency
à votre projet.
Cliquez sur Mettre à jour les dépendances pour importer les fichiers du projet distant. Si c'est la première dépendance distante que vous ajoutez à votre projet, la mise à jour des dépendances invite également Looker à créer un fichier de verrouillage du fichier manifeste. Looker utilise le fichier manifeste verrouillé pour suivre la version des projets distants.
Si vous spécifiez une branche Git ou un tag de version Git dans le sous-paramètre ref
, Looker recherchera de nouveaux commits chaque fois que l'IDE Looker sera actualisé. Cela se produit lorsqu'un développeur Looker passe en mode Développement, effectue une action Git dans l'IDE ou actualise le navigateur.
Si de nouveaux commits existent, Looker affiche l'option Mettre à jour les dépendances dans le panneau des actions Git de l'IDE.
Sélectionnez l'option Update Dependencies (Mettre à jour les dépendances) pour importer les derniers fichiers de projet à distance dans votre projet.
Une fois que vous disposez des derniers fichiers, vous pouvez valider votre LookML pour vérifier que toutes les références de votre projet fonctionnent avec les fichiers de projet distant mis à jour. Vous pouvez ensuite corriger les références cassées et déployer vos modifications sans temps d'arrêt pour vos utilisateurs.
Fichier de verrouillage du fichier manifeste
Looker utilise le fichier de verrouillage du fichier manifeste avec le nom de fichier manifest_lock.lkml
pour suivre les versions des projets importés à distance. Le fichier manifeste de verrouillage est listé dans le panneau du navigateur de fichiers de l'IDE Looker.
Les développeurs Looker n'ont pas besoin de créer ni de modifier le fichier lock du fichier manifeste, car les fichiers lock sont gérés automatiquement par Looker.
Le fichier de verrouillage du fichier manifeste affiche chaque projet distant, représenté par une entrée remote_dependency
avec les sous-paramètres url
et ref
:
- Le paramètre
remote_dependency
indique le nom du projet distant qu'un développeur Looker a spécifié dans le fichier manifeste. - Le sous-paramètre
url
indique l'adresse du dépôt Git externe qu'un développeur Looker a spécifiée dans le fichier manifeste. - Le sous-paramètre
ref
affiche la version du projet (indiquée par un SHA de commit) que Looker utilise dans votre projet :- Si le projet distant a été défini dans le fichier manifeste avec un
ref
de branche Git ou de tag de version Git, le paramètreref
indique la version des fichiers (SHA de commit du projet distant) que votre projet utilise actuellement. Si le projet distant comporte de nouveaux commits, Looker affiche le bouton Mettre à jour les dépendances dans l'IDE pour que vous puissiez importer les derniers fichiers du projet distant. La valeurref
dans le fichier de verrouillage du fichier manifeste sera alors mise à jour pour afficher le dernier SHA de commit pour cette branche ou ce tag de version. - Si le projet distant a été défini dans le fichier manifeste avec un
ref
d'un SHA de commit spécifique, le paramètreref
du fichier manifeste verrouillé sera le même SHA de commit.
- Si le projet distant a été défini dans le fichier manifeste avec un
Configurer les identifiants d'authentification pour les dépôts distants privés
Pour configurer les identifiants d'authentification pour les dépôts distants privés, accédez à la page Importer les identifiants en sélectionnant Paramètres
dans le panneau de navigation de gauche de l'IDE.Les paramètres Importer les identifiants affichent la liste des URL de chaque dépôt distant défini dans le fichier manifeste du projet, le type d'authentification utilisé pour le dépôt (https
ou ssh
) et si Looker peut se connecter au dépôt.
Ajouter des identifiants d'authentification
Pour ajouter des identifiants d'authentification à un dépôt :
Sur la page Importer les identifiants, sous l'en-tête URL, pointez sur le nom d'un dépôt pour afficher les boutons Tester et Configurer, puis cliquez sur Configurer.
Looker affiche la boîte de dialogue Configurer l'authentification Git pour vous permettre de configurer les identifiants du dépôt distant. La boîte de dialogue indique le type d'identifiants requis pour ce dépôt.
Si le dépôt requiert un nom d'utilisateur et un mot de passe (ou un jeton d'accès personnel) pour l'authentification, saisissez votre nom d'utilisateur et votre mot de passe ou votre jeton, puis cliquez sur Enregistrer les modifications.
Si le dépôt nécessite une clé SSH, comme dans l'exemple d'utilisation de SSH pour importer un projet distant expliqué plus haut sur cette page, Looker affiche une boîte de dialogue indiquant votre clé SSH locale. Cliquez sur Copier la clé pour copier la clé SSH dans le presse-papiers, puis ajoutez-la à la liste des clés de votre dépôt.
Après avoir enregistré les identifiants, cliquez sur Tester pour tester l'accès de Looker au dépôt.
Une fois que vous avez réussi les tests de connexion et que vous vous êtes connecté au dépôt, la section Importer les identifiants affiche une coche verte à côté du nom du dépôt.
Modifier les identifiants d'authentification
Pour modifier les identifiants d'authentification d'un dépôt :
Pour afficher les boutons Tester et Modifier, pointez sur un dépôt pour lequel des identifiants d'authentification ont déjà été configurés, puis cliquez sur Modifier.
Si le dépôt nécessite un nom d'utilisateur et un mot de passe (ou un jeton d'accès personnel) pour l'authentification, cliquez sur Effacer les identifiants, puis sur Oui, effacer les identifiants dans la boîte de dialogue de confirmation.
Saisissez les nouveaux identifiants dans la boîte de dialogue Configurer l'authentification Git, puis cliquez sur Enregistrer les modifications.
Afficher les fichiers d'un projet importé
L'IDE Looker affiche les fichiers de projet importés dans le dossier imported_projects
du panneau de navigation de gauche. Vous pouvez sélectionner un fichier de projet importé pour afficher son contenu.
Les fichiers des projets locaux et des projets à distance sont listés dans le dossier imported_projects
.
Vous pouvez également afficher les objets des fichiers de projet importés qui sont inclus dans le projet actif à partir du navigateur d'objets. Accédez au navigateur d'objets depuis la barre de navigation de l'IDE Looker.
De plus, les utilisateurs disposant de l'autorisation develop
peuvent utiliser le panneau de métadonnées pour afficher des informations sur les objets des projets importés, y compris des liens permettant d'accéder au fichier importé dans lequel l'objet est défini. Pour en savoir plus, consultez la page de documentation Métadonnées pour les objets LookML.
Inclure des fichiers provenant d'un projet importé
Le paramètre include
d'un fichier de modèle spécifie les fichiers de projet qui seront disponibles pour ce modèle. Une fois que vous avez spécifié un projet importé localement ou à distance dans le fichier manifeste, vous pouvez utiliser le paramètre include
dans un fichier de modèle pour spécifier les fichiers du projet importé. Seuls les fichiers dont le projet est listé dans le fichier manifeste peuvent être inclus.
Pour include
un fichier d'un autre projet, utilisez le nom de fichier avec deux barres obliques (//
) et le nom du projet importé. Faites suivre le nom du projet importé d'une seule barre oblique (/
) et du chemin d'accès complet au fichier que vous souhaitez inclure.
Par exemple, ces commandes include
indiquent le fichier de vue users
du projet importé e_flights
et la vue orders
du projet importé e_commerce
:
include: "//e_flights/views/users.view.lkml"
include: "//e_commerce/public/orders.view.lkml"
Pour savoir comment spécifier des chemins d'accès lorsque les dossiers IDE sont activés, consultez la section Syntaxe du chemin d'accès de la page du paramètre include
.
Vous pouvez utiliser des caractères génériques pour inclure plusieurs fichiers. Par exemple, pour inclure tous les fichiers de vue dans le répertoire /views/
du projet e_flights
importé :
include: "//e_flights/views/*.view"
Vous pouvez également utiliser des caractères génériques pour définir des niveaux de répertoire spécifiques ou des répertoires récursifs dans le projet importé :
include: "//e_flights/*/*.view.lkml"
include: "//e_commerce/*/*.view.lkml"
Pour savoir comment utiliser les caractères génériques avec les dossiers IDE activés, consultez la section Exemples de caractères génériques de la page du paramètre include
.
Inclure des fichiers de modèle
Vous ne pouvez pas inclure un fichier de modèle provenant d'un autre projet. En revanche, si vous souhaitez réutiliser, affiner ou étendre des explorations dans plusieurs projets, vous pouvez créer un fichier d'exploration distinct dans le projet importé, puis inclure ce fichier d'exploration dans d'autres projets. Pour en savoir plus, consultez la section Inclure des explorations dans un modèle de la page de documentation sur le paramètre include
.
Inclure des fichiers qui incluent d'autres fichiers
Lorsque vous incluez un fichier qui inclut d'autres fichiers, toutes les inclusions sont résolues avant que le fichier ne soit transmis au projet suivant qui l'inclut.
Par exemple, si dans votre projet actuel, vous importez un fichier (A
) à partir d'un autre projet (proj_A
) et que le fichier importé contient un paramètre include
qui inclut le fichier B
du projet proj_B
, le fichier B
sera inclus dans le fichier A
avant que le fichier A
ne soit importé dans le projet actuel.
Importer des fichiers de données
Les fichiers stockés dans la section "Données" d'un projet ne sont pas importés. Pour faire référence à un fichier de données d'un projet importé, par exemple dans le paramètre map_layer
, utilisez le chemin d'accès complet et le nom du fichier. Exemple :
map_layer: json_from_imported_project {
file: "//path_to_imported_project/folder/filename.topojson"
...
}
Référencer des fichiers à partir d'un projet importé
Une fois que vous avez importé un fichier de vue dans votre projet, vous pouvez utiliser la syntaxe ${view_name.field_name}
pour référencer les champs de la vue importée comme si le fichier de vue faisait partie de ce projet. Par exemple, supposons que vous ayez importé le projet ga_360_block
dans le fichier manifeste de votre projet et que vous ayez l'instruction include
suivante dans votre fichier de modèle :
include: "//ga_360_block/ga_block.view"
Vous utiliserez la syntaxe ${ga_block.hits_total}
pour faire référence au champ hits_total
de la vue ga_block
incluse.
Utiliser des constantes dans des fichiers provenant d'un projet importé
Les constantes LookML vous permettent de définir une valeur dans le fichier manifeste de votre projet, qui peut être réutilisée dans l'ensemble de votre projet. Le sous-paramètre export
du paramètre constant
indique si la valeur d'une constante peut être remplacée lorsque les fichiers qui font référence à cette constante sont importés dans un autre projet.
Le paramètre export
peut prendre les valeurs suivantes :
none
: valeur par défaut pourexport
. La valeur de la constante ne peut pas être remplacée dans votre projet d'importation. Le projet importateur utilise la valeur constante spécifiée dans le fichier manifeste du projet importé.override_optional
: la valeur de la constante peut éventuellement être remplacée dans votre projet d'importation. Si aucune valeur n'est fournie dans le fichier manifeste du projet importateur, la valeur d'origine du projet importé est utilisée.override_required
: le projet importateur doit remplacer la valeur constante initialement spécifiée dans le fichier manifeste du projet importé. Si aucune nouvelle valeur constante n'est fournie dans le projet importateur, Looker affichera une erreur.
Lorsque vous importez dans votre projet des fichiers qui font référence à une constante, vous pouvez utiliser le sous-paramètre override_constant
de local_dependency
ou remote_dependency
dans le fichier manifeste de votre projet pour fournir une nouvelle valeur à cette constante, à condition que export
soit défini sur override_optional
ou override_required
dans son projet d'origine. Lorsque vous remplacez la valeur d'une constante d'un projet importé, votre projet utilise la valeur que vous spécifiez avec le paramètre override_constant
.
Par exemple, supposons que vous gérez plusieurs bases de données sur une même instance Looker, avec un projet distinct pour chaque base de données. Supposons également que les schémas de données sont identiques pour chaque base de données et que votre objectif est de définir une analyse une seule fois et de l'appliquer à chaque ensemble de données.
Dans cet exemple, supposons que proj_core
est le projet de base dans lequel vous avez défini des vues que vous souhaitez importer dans d'autres projets. De plus, l'une des vues que vous souhaitez importer est la vue orders
, qui est définie comme suit :
view: orders {
sql_table_name: "@{schema_name}.orders"
}
Le schéma sur lequel repose la vue orders
est spécifié dans le paramètre sql_table_name
à l'aide de la constante schema_name
, qui est définie dans le fichier manifeste proj_core
. Dans l'exemple suivant, comme la constante schema_name
est définie sur export: override_required
, tout projet qui importe schema_name
doit remplacer sa valeur à l'aide du paramètre override_constant
:
constant: schema_name {
value: "proj_core_schema"
export: override_required
}
Par exemple, supposons que vous souhaitiez importer la vue orders
dans un projet local appelé proj_a
. La base de données proj_a
contient également une table orders
dont la structure est identique à celle de la table orders
du projet de base proj_core
.
Étant donné que proj_core
et proj_a
se trouvent sur la même instance, vous pouvez importer la vue orders
dans proj_a
à l'aide de local_dependency
. En utilisant le sous-paramètre override_constant
de local_dependency
, vous pouvez ensuite mettre à jour la constante schema_name
pour qu'elle pointe vers le schéma proj_a_schema
dans le fichier manifeste de proj_a
:
project_name: "proj_a"
local_dependency: {
project: "proj_core"
override_constant: schema_name {
value: "proj_a_schema"
}
}
Dans cet exemple, comme la constante schema_name
est définie sur export: override_required
dans project_core
, Looker affichera une erreur si vous ne remplacez pas sa valeur dans proj_a
(le projet importateur).
En remplaçant la constante schema_name
dans proj_a
, vous pouvez utiliser les champs que vous avez définis dans la vue orders
dans proj_core
, au lieu de créer un fichier de vue et de définir vos champs à partir de zéro. Dans cet exemple, la vue orders
correspond à une table différente pour chaque projet :
- Dans
proj_core
, la vueorders
est basée sur la tableproj_core_schema.orders
de votre base de données. - Dans
proj_a
, la vueorders
est basée sur la tableproj_a_schema.orders
de votre base de données.