Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Registrar uma base de dados Lakebase no Unity Catalog cria um catálogo somente de leitura que representa a sua base de dados Postgres, permitindo governação unificada de dados e análises entre fontes em todo o seu Lakehouse e workloads transacionais.
Por que é que se registar no Catálogo Unity
O registo tem vários benefícios:
Governação unificada: Aplique os controlos de governação do Unity Catalog — permissões, rastreio de linhagem e registos de auditoria — aos seus dados Lakebase juntamente com os seus dados de lakehouse.
Consultas entre fontes: Consulte tabelas do Catálogo Unity e bases de dados Lakebase a partir de uma única interface SQL, permitindo análises que combinam dados transacionais e analíticos.
Descoberta centralizada: Encontre e descubra bases de dados, esquemas e tabelas Lakebase através do Explorador de Catálogos, juntamente com outras fontes de dados no seu espaço de trabalho.
Fluxos de trabalho integrados: Use dados do Lakebase em dashboards e aplicações do Azure Databricks sem mudar de contexto ou gerir ligações separadas.
Como funciona
O registo cria um catálogo Unity Catalog apenas de leitura que espelha a estrutura da sua base de dados Postgres, fornecendo acesso a metadados aos seus objetos de base de dados (esquemas, tabelas, vistas) através da camada de governação do Unity Catalog.
Inicia-se o registo a partir do Explorador de Catálogos em vez da interface do Lakebase, que se integra naturalmente com o fluxo de trabalho de criação de catálogos do Catálogo Unity.
Após o registo:
- A sua base de dados Lakebase aparece como um catálogo no Unity Catalog
- As permissões do Catálogo Unity controlam quem pode visualizar e consultar a base de dados
- O catálogo permanece apenas em modo de leitura — gere a base de dados em si através do Lakebase
Pré-requisitos
- Um projeto Lakebase existente com pelo menos uma base de dados
-
CREATE CATALOGprivilégios na metastore do Unity Catalog - Computação serverless para consultar o catálogo registado: um armazém SQL serverless ou computação serverless para notebooks e jobs. Os armazéns SQL Pro e SQL Classic e o Classic Compute não são suportados.
Importante
Os catálogos Lakebase no Unity Catalog requerem computação serverless, tanto para executar consultas como para navegar pelo catálogo no Catalog Explorer. Utilizar um armazém SQL Pro ou clássico, ou computação clássica, devolve um erro PERMISSION_DENIED (UC_LAKEBASE_CATALOG_ACCESS_DENIED). Para resolver isto, mude para um SQL warehouse sem servidor no editor SQL, ou ligue o seu notebook ou job à computação sem servidor.
Registar uma base de dados
IU
- Usa o comutador de aplicações para ir ao Analytics e à IA.
- No Explorador de Catálogos, clique no botão mais e crie um catálogo.
- Insira um nome de catálogo (por exemplo,
lakebase_catalog). - Selecione Lakebase Postgres como tipo de catálogo e, em seguida, selecione a opção Autoscaling.
- Selecione o seu projeto, filial e base de dados Postgres.
- Clique em Criar.
O catálogo aparece no Explorador de Catálogos, onde pode encontrar esquemas, tabelas e vistas, e consultá-los usando computação 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}")
SDK de 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());
encaracolar
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"
}
}'
Isto retorna a uma operação de longa duração. Sondagem o campo decifrado name até done: true. Ver Operações de longa duração. Para configuração de autenticação, veja Autenticação.
Explore bases de dados registadas
Após o registo, vá ao seu catálogo no Explorador de Catálogos para encontrar esquemas, tabelas e vistas. Clique em qualquer tabela para ver detalhes do esquema, dados de exemplo e informações sobre linhagem.
O Unity Catalog sincroniza automaticamente os metadados da tua base de dados Lakebase. Quando adicionar ou modificar tabelas no Lakebase, atualize a vista de catálogo para ver atualizações.
Verificar o estado do registo
Para recuperar os detalhes atuais do registo de um catálogo programaticamente:
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}")
SDK de 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());
encaracolar
curl "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Consultar bases de dados registadas
Consulta bases de dados Lakebase registadas a partir de um warehouse SQL serverless ou de notebooks e jobs a correr em computação 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;
O catálogo de apenas leitura garante que as consultas não modificam a sua base de dados Lakebase através do Unity Catalog. Para modificar dados, utilize o Lakebase SQL Editor ou ligue-se diretamente à sua base de dados.
Permissões e controlo de acesso
As permissões do Catálogo Unity controlam o acesso às bases de dados Lakebase registadas:
- Propriedade do catálogo: O utilizador que regista a base de dados torna-se o proprietário do catálogo
-
Acesso à leitura: Conceder privilégios
USE CATALOGeSELECTpara permitir que outros consultem a base de dados - Administrador da Metastore: Os administradores da Metastore podem gerir todos os catálogos registados
Para conceder acesso a uma base de dados registada:
-- 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`;
As permissões definidas no Unity Catalog controlam o acesso a consultas através de warehouses SQL serverless e computação serverless. As ligações diretas à tua base de dados Lakebase utilizam funções e permissões Postgres de forma independente.
Cancelar o registro de um banco de dados
Desregistar remove o catálogo do Unity Catalog, mas não afeta a tua base de dados Lakebase. A base de dados mantém-se acessível através do Lakebase e das ligações diretas do Postgres.
IU
Selecione o catálogo no Explorador de Catálogo, clique no selecione Eliminar.
Python SDK
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.postgres.delete_catalog("catalogs/my-catalog").wait()
SDK de Java
import com.databricks.sdk.WorkspaceClient;
WorkspaceClient w = new WorkspaceClient();
w.postgres().deleteCatalog("catalogs/my-catalog").waitForCompletion();
encaracolar
curl -X DELETE "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Observação
Se criaste tabelas sincronizadas a partir da base de dados registada, apaga essas tabelas primeiro. Cada tabela de origem só pode ser usada para criar 20 tabelas sincronizadas, e as tabelas sincronizadas pendentes de eliminação contam para este limite.
Limitações
Acesso apenas de leitura: Os catálogos registados nas bases de dados Lakebase são apenas de leitura. Não podes modificar dados através de consultas do Unity Catalog.
Computação serverless necessária: Só pode consultar um catálogo Lakebase registado usando um warehouse SQL serverless ou computação serverless para notebooks e jobs. Os armazéns SQL Pro e Classic e o Classic Compute não são suportados.
Base de dados única por catálogo: Cada catálogo do Catálogo Unity representa uma base de dados Lakebase. Para expor múltiplas bases de dados, regista cada uma separadamente.
Sincronização de metadados: O Unity Catalog armazena metadados em cache para reduzir pedidos Postgres. Novos objetos podem não aparecer imediatamente. Clique
para ativar uma atualização completa.
Registo ramificado de bases de dados não suportado: Não pode registar uma base de dados ramificada como um catálogo separado do Unity Catalog. Quando se cria um branch a partir de uma base de dados que já está registada no Unity Catalog, o branch herda os metadados de registo do pai. Isto provoca a falha no registo de novos catálogos.