Compartir vía


Registro de una base de datos de Lakebase en el catálogo de Unity

Importante

El escalado automático de Lakebase es la versión más reciente de Lakebase, con proceso de escalado automático, escalado a cero, bifurcación y restauración instantánea. Para ver las regiones admitidas, consulte Disponibilidad de regiones. Si es un usuario aprovisionado de Lakebase, consulte Aprovisionamiento de Lakebase.

El registro de una base de datos de Lakebase en unity Catalog crea un catálogo de solo lectura que representa la base de datos de Postgres, lo que permite la gobernanza unificada de datos y el análisis entre orígenes en las cargas de trabajo transaccionales y de lakehouse.

¿Por qué registrarse en el catálogo de Unity?

El registro proporciona varias ventajas:

Gobernanza unificada: aplique los controles de gobernanza del Catálogo de Unity (permisos, seguimiento de linaje y registros de auditoría) a los datos de Lakebase junto con los datos de lakehouse.

Consultas entre orígenes: consulte las tablas de Unity Catalog y las bases de datos de Lakebase desde una única interfaz SQL, lo que permite el análisis que combina datos transaccionales y analíticos.

Detección centralizada: examine y detecte bases de datos, esquemas y tablas de Lakebase a través del Explorador de catálogos junto con otros orígenes de datos del área de trabajo.

Flujos de trabajo integrados: use datos de Lakebase en paneles y aplicaciones de Databricks sin cambiar contextos ni administrar conexiones independientes.

Cómo funciona

El registro crea un catálogo de Unity Catalog de solo lectura que refleja la estructura de tu base de datos Postgres, proporcionando acceso a los metadatos de los objetos de la base de datos (esquemas, tablas, vistas) a través de la capa de gobernanza de Unity Catalog.

Inicie el registro desde el Explorador de catálogos en lugar de desde la interfaz de Lakebase, que se integra naturalmente con el flujo de trabajo de creación de catálogos de Unity Catalog.

Después del registro:

  • La base de datos de Lakebase aparece como un catálogo en el catálogo de Unity
  • Los permisos del Catálogo de Unity controlan quién puede ver y consultar la base de datos.
  • El catálogo permanece de solo lectura: se administra la base de datos real a través de Lakebase.

Prerrequisitos

  • Un proyecto de Lakebase existente con al menos una base de datos
  • CREATE CATALOG privilegios en el catálogo metastore de Unity
  • Una instancia de SQL Warehouse sin servidor para consultar el catálogo registrado

Registrar una base de datos

Interfaz de usuario

  1. Use el conmutador de aplicaciones para navegar a Lakehouse.
  2. En el Explorador de catálogos, haga clic en el icono de signo más y en Crear un catálogo.
  3. Escriba un nombre de catálogo (por ejemplo, lakebase_catalog).
  4. Seleccione Lakebase Postgres como tipo de catálogo y, a continuación, elija la opción Escalado automático.
  5. Seleccione el proyecto, la rama y la base de datos de Postgres.
  6. Haga clic en Crear.

Registro de la base de datos LKB en el catálogo de Unity

El catálogo aparece en el Explorador de catálogos, donde puede examinar esquemas, tablas y vistas, y consultarlos mediante almacenes de SQL.

SDK de 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}")

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());

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"
    }
  }'

Esto devuelve una operación de larga duración. Sondee el campo devuelto name hasta done: true. Consulte Operaciones de ejecución prolongada. Para la configuración de la autenticación, consulte Autenticación.

Exploración de bases de datos registradas

Después del registro, vaya al catálogo en el Explorador de catálogos para examinar esquemas, tablas y vistas. Haga clic en cualquier tabla para ver los detalles del esquema, los datos de ejemplo y la información de linaje.

Unity Catalog sincroniza automáticamente los metadatos de la base de datos de Lakebase. Al agregar o modificar tablas en Lakebase, actualice la vista de catálogo para ver las actualizaciones.

Comprobación del estado del registro

Para recuperar los detalles de registro actuales de un catálogo mediante programación:

SDK de 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}")

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());

curl

curl "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Consulta de bases de datos registradas

Consulte las bases de datos de Lakebase registradas mediante almacenes de SQL o cualquier herramienta que se conecte al catálogo de Unity:

-- Query a registered :re[LKB] database
SELECT * FROM chatbot_catalog.public.conversations
WHERE created_at >= current_date - INTERVAL 7 DAYS;

-- Join :re[LKB] 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;

El catálogo de solo lectura garantiza que las consultas no modifiquen la base de datos de Lakebase a través del catálogo de Unity. Para modificar los datos, use el Editor de SQL de Lakebase o conéctese directamente a la base de datos.

Control de acceso y permisos

Los permisos del catálogo de Unity controlan el acceso a las bases de datos de Lakebase registradas:

  • Propiedad del catálogo: el usuario que registra la base de datos se convierte en el propietario del catálogo.
  • Acceso de lectura: concesión USE CATALOG y SELECT privilegios para permitir que otros usuarios consulten la base de datos
  • Administrador de metastore: los administradores de metastore pueden administrar todos los catálogos registrados.

Para conceder acceso a una base de datos registrada:

-- 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`;

Los permisos configurados en el Catálogo de Unity controlan el acceso a consultas a través de almacenes SQL. Las conexiones directas a la base de datos de Lakebase usan roles y permisos de Postgres de forma independiente.

Anular el registro de una base de datos

Anular el registro quita el catálogo del catálogo de Unity, pero no afecta a la base de datos de Lakebase. La base de datos sigue siendo accesible a través de Lakebase y las conexiones directas de Postgres.

Interfaz de usuario

Seleccione el catálogo en el Explorador de catálogos, haga clic en el icono círculo Puntos y seleccione Eliminar.

SDK de Python

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();

curl

curl -X DELETE "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Nota:

Si creó tablas sincronizadas a partir de la base de datos registrada, elimine primero esas tablas. Cada tabla de origen solo se puede usar para crear 20 tablas sincronizadas, y las tablas sincronizadas pendientes de eliminación cuentan para este límite.

Limitaciones

Acceso de solo lectura: los catálogos registrados desde bases de datos de Lakebase son de solo lectura. No se pueden modificar los datos a través de consultas de Catálogo de Unity.

Base de datos única por catálogo: cada catálogo de Unity representa una base de datos de Lakebase. Para exponer varias bases de datos, registre cada una por separado.

Sincronización de metadatos: El catálogo de Unity almacena en caché los metadatos para reducir las solicitudes de Postgres. Es posible que los nuevos objetos no aparezcan inmediatamente. Haga clic en Actualizar icono de esquema para desencadenar una actualización completa.

Aislamiento de rama: los catálogos registran bases de datos de ramas específicas. Para acceder a los datos de varias ramas, registre una base de datos de cada rama como un catálogo independiente.

Pasos siguientes