Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
L’inscription d’une base de données Lakebase dans Unity Catalog crée un catalogue en lecture seule qui représente votre base de données Postgres, ce qui permet la gouvernance unifiée des données et l’analytique inter source sur vos charges de travail lakehouse et transactionnelles.
Pourquoi s’inscrire dans le catalogue Unity
L’inscription présente plusieurs avantages :
Gouvernance unifiée : appliquez les contrôles de gouvernance du catalogue Unity ( autorisations, suivi de traçabilité et journaux d’audit) à vos données Lakebase en même temps que vos données lakehouse.
Requêtes inter sources : interrogez à la fois les tables de catalogue Unity et les bases de données Lakebase à partir d’une seule interface SQL, ce qui permet l’analytique qui combine des données transactionnelles et analytiques.
Découverte centralisée : recherchez et découvrez des bases de données, des schémas et des tables Lakebase via l’Explorateur de catalogues en même temps que d’autres sources de données dans votre espace de travail.
Flux de travail intégrés : utilisez des données Lakebase dans Azure Databricks tableaux de bord et applications sans changer de contexte ou gérer des connexions distinctes.
Fonctionnement
L’inscription crée un catalogue de catalogue Unity en lecture seule qui reflète votre structure de base de données Postgres, fournissant un accès aux métadonnées à vos objets de base de données (schémas, tables, vues) via la couche de gouvernance du catalogue Unity.
Vous lancez l’inscription à partir de l’Explorateur de catalogues plutôt qu’à partir de l’interface Lakebase, qui s’intègre naturellement au flux de travail de création de catalogue de Unity Catalog.
Après l’inscription :
- Votre base de données Lakebase apparaît sous la forme d’un catalogue dans le catalogue Unity
- Les autorisations du catalogue Unity contrôlent qui peut afficher et interroger la base de données
- Le catalogue reste en lecture seule : vous gérez la base de données réelle via Lakebase
Prerequisites
- Un projet Lakebase existant avec au moins une base de données
-
CREATE CATALOGprivilèges sur le metastore du catalogue Unity - Un entrepôt SQL sans serveur pour interroger le catalogue enregistré. Les entrepôts SQL Pro et Classic ne sont pas pris en charge et retournent une erreur d’autorisation.
Important
Les catalogues Lakebase dans Unity Catalog nécessitent un SQL Warehouse Serverless. L’interrogation avec un sql Warehouse professionnel ou classique retourne une PERMISSION_DENIED erreur. Dans l’éditeur SQL, ouvrez la liste déroulante de l’entrepôt et sélectionnez un entrepôt serverless avant d’exécuter une requête.
Inscrire une base de données
IU
- Utilisez le sélecteur d’applications pour accéder à Analytics et à l’IA.
- Dans l’Explorateur de catalogues, cliquez sur le bouton Plus et créez un catalogue.
- Entrez un nom de catalogue (par exemple,
lakebase_catalog). - Sélectionnez Lakebase Postgres comme type de catalogue, puis sélectionnez l’option de mise à l’échelle automatique .
- Sélectionnez votre projet, votre branche et votre base de données Postgres.
- Cliquez sur Créer.
Le catalogue s’affiche dans l’Explorateur de catalogues, où vous pouvez trouver des schémas, des tables et des vues, et les interroger à l’aide d’entrepôts SQL.
Kit de développement logiciel (SDK) Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Catalog, CatalogCatalogSpec
w = WorkspaceClient()
catalog = w.postgres.create_catalog(
catalog=Catalog(spec=CatalogCatalogSpec(
postgres_database="mydb",
branch="projects/my-project/branches/production",
)),
catalog_id="my-catalog",
).wait()
print(f"Catalog registered: {catalog.name}")
Kit de développement logiciel (SDK) Java
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
WorkspaceClient w = new WorkspaceClient();
Catalog catalog = w.postgres().createCatalog(
new CreateCatalogRequest()
.setCatalogId("my-catalog")
.setCatalog(new Catalog()
.setSpec(new CatalogCatalogSpec()
.setPostgresDatabase("mydb")
.setBranch("projects/my-project/branches/production"))))
.waitForCompletion();
System.out.println("Catalog registered: " + catalog.getName());
curl
curl -X POST "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs?catalog_id=my-catalog" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"spec": {
"postgres_database": "mydb",
"branch": "projects/my-project/branches/production"
}
}'
Ceci renvoie une opération longue. Interrogez le champ name renvoyé jusqu’à done: true. Consultez les opérations de longue durée. Pour la configuration de l’authentification, consultez Authentification.
Explorer les bases de données inscrites
Après l’inscription, accédez à votre catalogue dans l’Explorateur de catalogues pour rechercher des schémas, des tables et des vues. Cliquez sur n’importe quelle table pour afficher les détails du schéma, les exemples de données et les informations de traçabilité.
Unity Catalog synchronise automatiquement les métadonnées à partir de votre base de données Lakebase. Lorsque vous ajoutez ou modifiez des tables dans Lakebase, actualisez l’affichage catalogue pour afficher les mises à jour.
Vérifier l’état de l’inscription
Pour récupérer les détails d'inscription actuels d'un catalogue de manière programmatique :
Kit de développement logiciel (SDK) Python
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
catalog = w.postgres.get_catalog("catalogs/my-catalog")
print(f"Database: {catalog.status.postgres_database}")
print(f"Branch: {catalog.status.branch}")
Kit de développement logiciel (SDK) Java
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.Catalog;
WorkspaceClient w = new WorkspaceClient();
Catalog catalog = w.postgres().getCatalog("catalogs/my-catalog");
System.out.println("Database: " + catalog.getStatus().getPostgresDatabase());
System.out.println("Branch: " + catalog.getStatus().getBranch());
curl
curl "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Interroger des bases de données inscrites
Interrogez les bases de données Lakebase inscrites à l’aide d’entrepôts SQL ou d’un outil qui se connecte au catalogue Unity :
-- Query a registered Lakebase database
SELECT * FROM chatbot_catalog.public.conversations
WHERE created_at >= current_date - INTERVAL 7 DAYS;
-- Join Lakebase and lakehouse data
SELECT
c.conversation_id,
c.user_id,
c.agent_response,
u.user_name,
u.subscription_tier
FROM chatbot_catalog.public.conversations c
JOIN main.user_analytics.users u
ON c.user_id = u.user_id;
Le catalogue en lecture seule garantit que les requêtes ne modifient pas votre base de données Lakebase via le catalogue Unity. Pour modifier des données, utilisez l’Éditeur SQL Lakebase ou connectez-vous directement à votre base de données.
Contrôle d’accès et autorisations
Les autorisations du catalogue Unity contrôlent l’accès aux bases de données Lakebase inscrites :
- Propriété du catalogue : l’utilisateur qui inscrit la base de données devient le propriétaire du catalogue
-
Accès en lecture : Accorder
USE CATALOGetSELECTaccorder des privilèges pour permettre aux autres utilisateurs d’interroger la base de données - Administrateur metastore : les administrateurs de metastore peuvent gérer tous les catalogues inscrits
Pour accorder l’accès à une base de données inscrite :
-- Grant read access to a group
GRANT USE CATALOG ON CATALOG chatbot_catalog TO `ai-engineering`;
GRANT SELECT ON CATALOG chatbot_catalog TO `ai-engineering`;
Les autorisations définies dans Unity Catalog contrôlent l’accès aux requêtes via des entrepôts SQL. Les connexions directes à votre base de données Lakebase utilisent des rôles et des autorisations Postgres indépendamment.
Annuler l’inscription d’une base de données
La désinscription supprime le catalogue du catalogue Unity, mais n’affecte pas votre base de données Lakebase. La base de données reste accessible via Lakebase et les connexions Postgres directes.
IU
Sélectionnez le catalogue dans l’Explorateur de catalogues, cliquez sur , puis sélectionnez Supprimer.
Kit de développement logiciel (SDK) Python
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.postgres.delete_catalog("catalogs/my-catalog").wait()
Kit de développement logiciel (SDK) Java
import com.databricks.sdk.WorkspaceClient;
WorkspaceClient w = new WorkspaceClient();
w.postgres().deleteCatalog("catalogs/my-catalog").waitForCompletion();
curl
curl -X DELETE "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Note
Si vous avez créé des tables synchronisées à partir de la base de données inscrite, supprimez d’abord ces tables. Chaque table source ne peut être utilisée que pour créer 20 tables synchronisées et les tables synchronisées en attente de suppression comptent vers cette limite.
Limites
Accès en lecture seule : les catalogues inscrits à partir de bases de données Lakebase sont en lecture seule. Vous ne pouvez pas modifier les données par le biais de requêtes De catalogue Unity.
Entrepôt SQL serverless requis : Vous ne pouvez interroger un catalogue Lakebase enregistré qu’à l’aide d’un entrepôt SQL serverless. Les sql Warehouses professionnels et classiques ne prennent pas en charge cette fonctionnalité.
Base de données unique par catalogue : chaque catalogue de catalogue Unity représente une base de données Lakebase. Pour exposer plusieurs bases de données, inscrivez-les séparément.
Synchronisation des métadonnées : Le catalogue Unity met en cache les métadonnées pour réduire les demandes Postgres. Les nouveaux objets peuvent ne pas apparaître immédiatement. Cliquez sur
pour déclencher une actualisation complète.
Enregistrement d’une base de données de branche non pris en charge : vous ne pouvez pas enregistrer une base de données de branche comme catalogue Unity Catalog distinct. Lorsque vous créez une branche à partir d’une base de données déjà inscrite dans le catalogue Unity, la branche hérite des métadonnées d’inscription du parent. Cela entraîne l’échec de l’inscription du nouveau catalogue.