Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La registrazione di un database Lakebase in Unity Catalog crea un catalogo di sola lettura che rappresenta il database Postgres, abilitando la governance unificata dei dati e l'analisi tra origini nei carichi di lavoro lakehouse e transazionali.
Perché eseguire la registrazione nel catalogo unity
La registrazione offre diversi vantaggi:
Governance unificata: applicare i controlli di governance di Unity Catalog, ovvero autorizzazioni, rilevamento della derivazione e log di controllo, ai dati lakebase insieme ai dati lakehouse.
Query trasversali alle origini: eseguire query su tabelle del catalogo Unity e database Lakebase da una singola interfaccia SQL, per consentire l'analisi combinata di dati transazionali e analitici.
Individuazione centralizzata: trovare e individuare database, schemi e tabelle Lakebase tramite Esplora cataloghi insieme ad altre origini dati nell'area di lavoro.
Flussi di lavoro integrati: usare i dati lakebase in Azure Databricks dashboard e applicazioni senza cambiare contesto o gestire connessioni separate.
Come funziona
La registrazione crea un catalogo Unity Catalog di sola lettura che rispecchia la struttura del tuo database Postgres, fornendo accesso ai metadati degli oggetti del database (schemi, tabelle, viste) tramite il livello di governance di Unity Catalog.
Si avvia la registrazione da Esplora cataloghi anziché dall'interfaccia Lakebase, che si integra naturalmente con il flusso di lavoro di creazione del catalogo di Unity.
Dopo la registrazione:
- Il database Lakebase viene visualizzato come catalogo nel catalogo unity
- Le autorizzazioni del catalogo Unity controllano chi può visualizzare ed eseguire query sul database
- Il catalogo rimane di sola lettura: è possibile gestire il database effettivo tramite Lakebase
Prerequisiti
- Un progetto Lakebase esistente con almeno un database
-
CREATE CATALOGprivilegi nel metastore di Unity Catalog - Calcolo serverless per interrogare il catalogo registrato: un serverless SQL warehouse o calcolo serverless per notebook e job. Pro e classic SQL warehouses e classic compute non sono supportati.
Importante
I cataloghi Lakebase in Unity Catalog richiedono calcolo serverless, sia per eseguire query sia per navigare nel catalogo in Catalog Explorer. L'uso di un Pro o di un SQL Warehouse classico o di un compute classico restituisce un PERMISSION_DENIED errore (UC_LAKEBASE_CATALOG_ACCESS_DENIED). Per risolverlo, passa a un SQL warehouse serverless nell'editor SQL, oppure collega il tuo notebook o il tuo job al calcolo serverless.
Registrare un database
INTERFACCIA UTENTE
- Usa il commutatore di app per andare ad Analytics e AI.
- In Esplora cataloghi, fai clic sul pulsante più e Crea un catalogo.
- Immettere un nome di catalogo , ad esempio
lakebase_catalog. - Selezionare Lakebase Postgres come tipo di catalogo e quindi selezionare l'opzione Scalabilità automatica .
- Selezionare il progetto, il ramo e il database Postgres.
- Clicca su Crea.
Il catalogo appare in Catalog Explorer, dove puoi trovare schemi, tabelle e viste, e interrogarli usando computazione serverless.
PYTHON SDK
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}")
JAVA SDK
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());
curva
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"
}
}'
Viene restituita un'operazione a esecuzione prolungata. Eseguire il polling del campo restituito name fino a done: true. Vedere Operazioni a esecuzione prolungata. Per la configurazione dell'autenticazione, vedere Autenticazione.
Esplorare i database registrati
Dopo la registrazione, vai al tuo catalogo in Esplora cataloghi per trovare schemi, tabelle e viste. Fare clic su una tabella qualsiasi per visualizzare i dettagli dello schema, i dati di esempio e le informazioni di derivazione.
Unity Catalog sincronizza automaticamente i metadati dal database Lakebase. Quando si aggiungono o si modificano tabelle in Lakebase, aggiornare la vista del catalogo per visualizzare gli aggiornamenti.
Controllare lo stato della registrazione
Per recuperare i dettagli correnti di registrazione di un catalogo programmando:
PYTHON SDK
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}")
JAVA SDK
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());
curva
curl "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Eseguire query sui database registrati
Consulta i database Lakebase registrati da un SQL warehouse serverless o da notebook e processi in esecuzione su compute serverless:
-- 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;
Il catalogo di sola lettura garantisce che le query non modifichino il database Lakebase tramite il catalogo Unity. Per modificare i dati, usare l'editor SQL di Lakebase o connettersi direttamente al database.
Autorizzazioni e controllo di accesso
Le autorizzazioni del catalogo Unity controllano l'accesso ai database Lakebase registrati:
- Proprietà del catalogo: l'utente che registra il database diventa il proprietario del catalogo
-
Accesso in lettura: concedere
USE CATALOGeSELECTprivilegi per consentire ad altri utenti di eseguire query sul database - Amministratore metastore: gli amministratori metastore possono gestire tutti i cataloghi registrati
Per concedere l'accesso a un database registrato:
-- 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`;
I permessi impostati in Unity Catalog controllano l'accesso alle query tramite SQL warehouse serverless e calcolo serverless. Le connessioni dirette al database Lakebase usano ruoli e autorizzazioni Postgres in modo indipendente.
Annullare la registrazione di un database
L'annullamento della registrazione rimuove il catalogo da Unity Catalog, ma non influisce sul database Lakebase. Il database rimane accessibile tramite Lakebase e le connessioni Postgres dirette.
INTERFACCIA UTENTE
Selezionare il catalogo in Esplora cataloghi, fare clic e selezionare Elimina.
PYTHON SDK
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.postgres.delete_catalog("catalogs/my-catalog").wait()
JAVA SDK
import com.databricks.sdk.WorkspaceClient;
WorkspaceClient w = new WorkspaceClient();
w.postgres().deleteCatalog("catalogs/my-catalog").waitForCompletion();
curva
curl -X DELETE "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Annotazioni
Se sono state create tabelle sincronizzate dal database registrato, eliminare prima tali tabelle. Ogni tabella di origine può essere usata solo per creare 20 tabelle sincronizzate e le tabelle sincronizzate in attesa di eliminazione sono conteggiate ai fini di questo limite.
Limitazioni
Accesso in sola lettura: i cataloghi registrati dai database Lakebase sono di sola lettura. Non è possibile modificare i dati tramite query del catalogo unity.
Calcolo serverless richiesto: Puoi interrogare solo un catalogo Lakebase registrato utilizzando un SQL warehouse serverless o il calcolo serverless per notebook e processi. I Pro e classic SQL warehouses e classic compute non sono supportati.
Database singolo per catalogo: ogni catalogo di Unity Catalog rappresenta un database Lakebase. Per esporre più database, registrare ognuno separatamente.
Sincronizzazione dei metadati: Il catalogo unity memorizza nella cache i metadati per ridurre le richieste Postgres. I nuovi oggetti potrebbero non essere visualizzati immediatamente. Fare clic su
per attivare un aggiornamento completo.
Registrazione del database con rami non supportata: non è possibile registrare un database ramificato come catalogo di Unity separato. Quando si crea un ramo da un database già registrato in Unity Catalog, il ramo eredita i metadati di registrazione dell'elemento padre. Ciò impedisce la corretta registrazione di un nuovo catalogo.