Éliminez les silos de données et évitez de passer d'un outil à l'autre en utilisant un connecteur Knowledge Catalog (anciennement Dataplex Universal Catalog) pour importer des métadonnées de Databricks Unity Catalog directement dans Google Cloud.
Ce connecteur est compatible avec les instances Databricks Unity Catalog hébergées surGoogle Cloud, Microsoft Azure ou Amazon Web Services (AWS).
Le tableau suivant liste les métadonnées capturées par le connecteur Databricks Unity Catalog :
| Catégorie | Métadonnées capturées |
|---|---|
| Technique |
|
| Opérations |
|
| Entreprise |
|
| Sémantique |
|
Limites
Le connecteur Databricks Unity Catalog présente les limites suivantes :
- La traçabilité n'est pas prise en charge.
- Les tags sémantiques et les glossaires d'entreprise ne sont pas compatibles avec l'intégration (API Genie).
- Le connecteur importe les métadonnées de vos tables Iceberg, mais il ne lie pas automatiquement les entrées importées aux entrées correspondantes du catalogue Iceberg REST (IRC) de Google Cloud Lakehouse Databricks Unity Catalog.
Avant de commencer
Avant de pouvoir importer des métadonnées depuis Databricks Unity Catalog, effectuez les tâches suivantes :
- Accordez les rôles et autorisations requis.
- Activez l'API Dataplex et l'API du service de transfert de données BigQuery.
- Répondez aux conditions préalables de Databricks Unity Catalog.
- Remplissez les conditions préalables de mise en réseau.
Rôles et autorisations IAM
Pour créer et gérer un job de connecteur Knowledge Catalog, vous devez disposer de rôles IAM (Identity and Access Management) qui accordent des autorisations pour Knowledge Catalog et le service de transfert de données BigQuery.
Pour obtenir les autorisations nécessaires pour configurer un connecteur Databricks Unity Catalog, demandez à votre administrateur de vous accorder les rôles IAM suivants :
- Pour créer et gérer des groupes d'entrées : Administrateur de catalogue Dataplex (
roles/dataplex.catalogAdmin), Éditeur de catalogue Dataplex (roles/dataplex.catalogEditor) ou Propriétaire du groupe d'entrées Dataplex (roles/dataplex.entryGroupOwner) sur le projet. - Pour afficher les métadonnées Databricks Unity Catalog : Lecteur de catalogue Dataplex (
roles/dataplex.catalogViewer) sur le projet. - Pour créer et gérer des jobs de transfert du service de transfert de données BigQuery : Administrateur BigQuery (
roles/bigquery.admin) sur le projet. - Pour afficher les journaux dans Cloud Logging : Lecteur de journaux (
roles/logging.viewer) sur le projet.
Vous devez également attribuer les deux rôles suivants à l'agent de service du service de transfert de données BigQuery (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com) :
- Importateur de groupe d'entrées Dataplex (
roles/dataplex.entryGroupImporter) sur le groupe d'entrées de destination ou sur le projet qui le contient. Ce rôle permet à l'agent de service d'importer des métadonnées dans le groupe d'entrées (dataplex.entryGroups.import). Propriétaire des entrées et des liens d'entrée Dataplex (
roles/dataplex.entryOwner) sur le projet contenant le groupe d'entrées de destination. Ce rôle permet à l'agent de service d'importer des métadonnées d'utilisation, d'activité et de qualité des données, ainsi que des liens d'entrée. Il comprend les autorisations suivantes :dataplex.entryGroups.useDataProfileAspectdataplex.entryGroups.useDataQualityScorecardAspectdataplex.entryGroups.useManagedConnectorTypesdataplex.entryGroups.useReferenceEntryLinkdataplex.entryGroups.useSchemaAspectdataplex.entryGroups.useSchemaJoinAspectdataplex.entryGroups.useSchemaJoinEntryLinkdataplex.entryGroups.useUsageAspectdataplex.entryLinks.reference
Attribuez ce rôle au projet, et pas seulement au groupe d'entrées, car l'importation vérifie l'autorisation
dataplex.entryLinks.referencesur le projet. Si l'agent de service ne dispose pas de cette autorisation sur le projet, l'exécution du transfert échoue avec une erreur telle quePermission 'dataplex.entryLinks.reference' denied, et aucune métadonnée n'est importée.
Au lieu d'accorder ces deux rôles, vous pouvez accorder le rôle Propriétaire du groupe d'entrées Dataplex (roles/dataplex.entryGroupOwner) sur le projet contenant le groupe d'entrées de destination. Ce rôle inclut les autorisations des deux rôles et permet également à l'agent de service de créer, de supprimer et de gérer l'accès à tous les groupes d'entrées du projet.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Activer les API
Activez l'API Dataplex et l'API Service de transfert de données BigQuery.
Prérequis pour Databricks Unity Catalog
Le principal de service utilisé pour le connecteur Databricks Unity Catalog doit disposer des autorisations suivantes dans Databricks Unity Catalog :
- Autorisation
Can usesur l'entrepôt Databricks SQL utilisé par le connecteur. - Privilège
BROWSEsur les catalogues cibles, ouUSE CATALOG,USE SCHEMAetSELECTsur les catalogues, schémas et tables ou vues cibles. USE CATALOGsur le cataloguesystem, ainsi queUSE SCHEMAetSELECTsur les schémas système suivants :system.information_schema: requis pour lire les catalogues, les schémas, les tables, les colonnes, les volumes, les routines, les contraintes et les tags.system.accessetsystem.query: facultatifs, requis pour importer les métriques d'utilisation, les insights sur l'utilisation et les jointures de l'historique des requêtes.system.data_quality_monitoring: facultatif, requis pour importer les résultats de la détection d'anomalies.
- Facultatif :
USE CATALOG,USE SCHEMAetSELECTsur les tables de sortie de Lakehouse Monitoring (TABLE_NAME_profile_metricsetTABLE_NAME_drift_metrics) pour importer le profilage des données et les métriques de dérive.
Si vous souhaitez également exécuter des requêtes SQL ou des jobs Spark sur le catalogue Databricks distant, consultez Configurer une connexion cross-cloud pour Databricks Unity Catalog.
Conditions préalables de mise en réseau
Pour permettre au service de transfert de données BigQuery de se connecter de manière sécurisée à des bases de données externes ou à des sources de données cloud tierces avec une adresse IP privée au sein d'un réseau privé, configurez un rattachement de réseau via Private Service Connect.
Si vous vous connectez à un environnement sur site ou à une instance hébergée dans le cloud à l'aide d'une adresse IP publique, aucun rattachement de réseau n'est requis.
Configurer un connecteur Databricks Unity Catalog
Configurez un connecteur Databricks Unity Catalog à l'aide de la console Google Cloud ou de l'API REST.
Console
Dans la console Google Cloud , accédez à la page Knowledge Catalog.
Dans le menu de navigation, dans la section Gérer, cliquez sur Connecteurs, puis sur Ajouter une connexion.
Dans la liste Connecteurs, sélectionnez la fiche Databricks Unity Catalog.
Dans la section Détails de la source de données, fournissez les détails de connexion de votre instance Databricks Unity Catalog :
- Pour Rattachement de réseau, sélectionnez un rattachement de réseau existant si nécessaire, ou créez-en un.
- Saisissez l'hôte de l'espace de travail, le chemin HTTP de l'entrepôt SQL, l'ID client et le code secret du client.
Pour Objets Databricks à transférer, cliquez sur Parcourir pour sélectionner les metastores, catalogues, schémas ou objets individuels (tables, vues, volumes, fonctions et procédures) à importer dans Knowledge Catalog. La sélection d'un metastore, d'un catalogue ou d'un schéma importe tous les objets qu'il contient.
Vous pouvez également saisir manuellement des objets au format
TYPE:METASTORE[/CATALOG[/SCHEMA[/OBJECT]]], oùTYPEcorrespond àMETASTORE,CATALOG,SCHEMA,TABLE,VIEW,VOLUME,FUNCTIONouPROCEDURE(par exemple,SCHEMA:my_metastore/main/sales). Les formats de nom ne sont pas acceptés.
Dans la section Paramètres de destination :
- Cliquez sur Parcourir et sélectionnez un groupe d'entrées Knowledge Catalog existant pour stocker les métadonnées importées, ou cliquez sur Créer un groupe d'entrées.
- Indiquez si vous souhaitez définir les autorisations sur le groupe d'entrées maintenant ou plus tard.
Pour permettre aux utilisateurs d'afficher les métadonnées importées, définissez des autorisations sur le groupe d'entrées. Si vous n'avez pas attribué le rôle Importateur de groupes d'entrées Dataplex (
roles/dataplex.entryGroupImporter) ou l'autorisationdataplex.entryGroups.importà l'agent de service du service de transfert de données BigQuery au niveau du projet, attribuez-le à ce groupe d'entrées. Vous devez toujours accorder le rôle Propriétaire d'entrées et d'EntryLinks Dataplex (roles/dataplex.entryOwner) sur le projet, car l'autorisationdataplex.entryLinks.referenceest vérifiée au niveau du projet. Pour en savoir plus, consultez Rôles et autorisations IAM.
Dans la section Nom de la configuration de transfert, sous Nom à afficher, saisissez le nom du job d'importation des métadonnées.
Dans la section Options de programmation, configurez la fréquence du job d'importation des métadonnées. Si vous sélectionnez À la demande, le job ne s'exécute que lorsque vous le déclenchez manuellement.
Facultatif : dans la section Options de notification, configurez une notification par e-mail ou Pub/Sub en cas d'échec de la tâche.
Facultatif : Dans la section Options avancées, configurez les paramètres de chiffrement. Si vous sélectionnez une clé de chiffrement gérée par le client (CMEK), elle chiffre toutes les données temporaires stockées avant de lancer les jobs d'importation des métadonnées Knowledge Catalog. La clé ne chiffre pas les métadonnées dans le groupe d'entrées Knowledge Catalog de destination.
Cliquez sur Enregistrer.
REST
Exécutez la méthode projects.locations.transferConfigs.create. Dans la ressource TransferConfig, configurez les champs suivants :
- Définissez le champ
dataSourceIdsur"databricks_unity". - Dans le champ
metadataDestination, renseignez le champdataplexConfiguration.entryGroupavec le chemin d'accès à la ressource du groupe d'entrées Knowledge Catalog cible :projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID. - Dans le champ
params, définissez les paramètres suivants :connector.host(obligatoire) : nom d'hôte de l'espace de travail Databricks (par exemple,dbc-a1b2345c-d6e7.cloud.databricks.com).connector.httpPath(obligatoire) : chemin d'accès HTTP de l'entrepôt Databricks SQL (par exemple,/sql/1.0/warehouses/a1b2345c67890def).connector.authentication.oauth.clientId(obligatoire) : ID client OAuth Databricks.connector.authentication.oauth.clientSecret(obligatoire) : code secret du client OAuth Databricks.connector.networkAttachment(facultatif) : rattachement de réseau au formatprojects/PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT_ID.assets(obligatoire) : liste des objets Databricks Unity Catalog à importer au formatTYPE:METASTORE[/CATALOG[/SCHEMA[/OBJECT]]], par exemple["SCHEMA:my_metastore/main/sales"].
- Facultatif : Pour ne pas inclure les identifiants OAuth dans la configuration de transfert, stockez-les dans Secret Manager :
- Définissez
connector.authentication.oauth.clientSecret(etconnector.authentication.oauth.clientId, si vous le souhaitez) sur le nom de ressource de la version du secret au formatprojects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID, puis ajoutez ces noms de paramètres au champparamConfig.secretManagerManagedParams. - Attribuez le rôle Accesseur de secrets Secret Manager (
roles/secretmanager.secretAccessor) sur chaque secret à l'agent de service du service de transfert de données BigQuery du projet contenant la configuration de transfert (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com). Les secrets peuvent se trouver dans un autre projet. Si l'agent de service ne peut pas lire un secret, l'exécution échoue avant de démarrer avec une erreur telle queFailed to retrieve secret ... Permission 'secretmanager.versions.access' denied. Le service de transfert de données BigQuery lit les secrets au début de chaque exécution. Par conséquent, si vous définissezVERSION_IDsurlatest, un secret alterné est utilisé à partir de l'exécution suivante.
- Définissez
L'exemple suivant montre un corps de requête TransferConfig :
{
"displayName": "databricks-unity-metadata-import",
"dataSourceId": "databricks_unity",
"schedule": "every 24 hours",
"params": {
"connector.host": "dbc-a1b2345c-d6e7.cloud.databricks.com",
"connector.httpPath": "/sql/1.0/warehouses/a1b2345c67890def",
"connector.authentication.oauth.clientId": "CLIENT_ID",
"connector.authentication.oauth.clientSecret": "CLIENT_SECRET",
"assets": [
"SCHEMA:my_metastore/main/sales"
]
},
"metadataDestination": {
"dataplexConfiguration": {
"entryGroup": "projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID"
}
}
}
Le job s'exécute automatiquement en fonction de votre planification, ou vous pouvez le déclencher manuellement.
Surveiller un job de connecteur Databricks Unity Catalog
Surveillez un job de connecteur Databricks Unity Catalog à l'aide de la consoleGoogle Cloud ou de l'API REST.
Console
- Dans la console Google Cloud , sur la page Connecteurs, cliquez sur le nom à afficher du job de transfert Databricks Unity Catalog.
- Dans l'onglet Historique des exécutions, cliquez sur Afficher les détails pour afficher les journaux.
- Pour afficher les entrées créées, cliquez sur l'onglet Détails, puis sur le lien du groupe d'entrées Destination des métadonnées.
REST
- Pour lister les exécutions d'une configuration de transfert et afficher leur état, utilisez la méthode
projects.locations.transferConfigs.runs.list. Chaque exécution importe les métadonnées collectées dans Knowledge Catalog avec un job d'importation de métadonnées dont l'ID est
dts-run-RUN_ID. Pour afficher le résultat de l'importation, comme le nombre d'entrées créées, filtrez les journaux du job dans Logging à l'aide de la requête suivante :logName="projects/PROJECT_ID/logs/dataplex.googleapis.com%2Fmetadata_job" AND resource.labels.metadata_job_id="dts-run-RUN_ID"Pour afficher le résultat d'une importation sans utiliser Logging, appelez la méthode
projects.locations.metadataJobs.getsurprojects/PROJECT_ID/locations/LOCATION/metadataJobs/dts-run-RUN_ID. Le champimportResultindique le nombre d'entrées et de liens d'entrée créés, mis à jour, inchangés et supprimés.
Rechercher et afficher les métadonnées Databricks Unity Catalog
Dans la console Google Cloud , accédez à la page Rechercher de Knowledge Catalog.
Dans le panneau Filtres, filtrez les éléments Databricks Unity Catalog à l'aide des sections Projet, Systèmes et Alias de type. Pour filtrer toutes les métadonnées Databricks Unity Catalog, dans la section Systèmes, sélectionnez Contexte importé, puis dans la sous-section Connecteurs gérés, sélectionnez Databricks Unity.
Dans le champ de recherche, saisissez un mot clé ou une requête de recherche en langage naturel. Par exemple, pour afficher tous les éléments Databricks Unity Catalog via une recherche par mot clé, saisissez
system=DATABRICKS.Pour en savoir plus sur la recherche de ressources, consultez Rechercher des ressources dans Knowledge Catalog. Pour en savoir plus sur les expressions que vous pouvez utiliser dans le champ de recherche, consultez Syntaxe de recherche pour Knowledge Catalog.
Vous pouvez également utiliser l'API LookupContext pour récupérer le contexte LLM pour des ressources Databricks Unity Catalog spécifiques. Pour en savoir plus, consultez Récupérer le contexte des éléments de données.
Étapes suivantes
- Découvrez comment gérer les jobs de connecteur.