Registar uma base de dados Lakebase no Unity Catalog

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 CATALOG privilégios na metastore do Unity Catalog
  • Um armazém de dados SQL sem servidor para consultar o catálogo registado. Os Pro e Classic SQL Warehouses não são suportados e devolvem um erro de permissões.

Importante

Os catálogos Lakebase no Unity Catalog requerem um Serverless SQL Warehouse. Consultar com um Pro ou Classic SQL Warehouse devolve um PERMISSION_DENIED erro. No editor SQL, abra o menu suspenso do warehouse e selecione um warehouse Serverless antes de executar uma consulta.

Registar uma base de dados

IU

  1. Usa o comutador de aplicações para ir a Analytics e AI.
  2. No Explorador de Catálogos, clique no botão mais e crie um catálogo.
  3. Insira um nome de catálogo (por exemplo, lakebase_catalog).
  4. Selecione Lakebase Postgres como tipo de catálogo e, em seguida, selecione a opção Autoscaling.
  5. Selecione o seu projeto, filial e base de dados Postgres.
  6. Clique em Criar.

Registar a base de dados LKB no Unity Catalog

O catálogo aparece no Explorador de Catálogos, onde pode encontrar esquemas, tabelas e vistas, e consultá-los usando armazéns SQL.

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

Consulte bases de dados Lakebase registadas usando SQL warehouses ou qualquer ferramenta que se ligue ao Unity Catalog:

-- 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 CATALOG e SELECT para 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 armazéns SQL. 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 ícone do círculo de Pontos e 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.

SQL Warehouse serverless necessário: Só pode consultar um catálogo Lakebase registado utilizando um SQL Warehouse serverless. Os Pro e Classic SQL Warehouses não suportam esta funcionalidade.

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 em Atualizar Ícone de Esquema 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.

Recursos adicionais