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 - Un serverless SQL Warehouse per interrogare il catalogo registrato. I data warehouse pro e classici non sono supportati e restituiscono un errore di autorizzazione.
Importante
I cataloghi Lakebase in Unity Catalog richiedono un Serverless SQL Warehouse. L'esecuzione di query con un'istanza di SQL Warehouse pro o classica restituisce un PERMISSION_DENIED errore. Nell'editor SQL, aprite il menu a discesa del warehouse e selezionate un warehouse Serverless prima di eseguire una query.
Registrare un database
INTERFACCIA UTENTE
- Usare il commutatore delle app per passare ad Analisi e intelligenza artificiale.
- 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 viene visualizzato in Esplora cataloghi, in cui è possibile trovare schemi, tabelle e viste ed eseguirne query usando sql warehouse.
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
Esegui query sui database Lakebase registrati usando SQL Warehouse o qualsiasi strumento che si connette al catalogo 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;
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`;
Le autorizzazioni impostate in Unity Catalog controllano l'accesso alle query tramite sql warehouse. 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.
Serverless SQL Warehouse necessario: è possibile eseguire query solo su un catalogo Lakebase registrato tramite un Serverless SQL Warehouse. Pro e SQL Warehouse classici non supportano questa funzionalità.
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.