Partilhar via


Registre seu banco de dados no Catálogo Unity

Importante

Esta funcionalidade está na Pré-visualização Pública nas seguintes regiões: westus, westus2, eastus, eastus2, centralussouthcentralusnortheuropewesteuropeaustraliaeastbrazilsouthcanadacentralcentralindiasoutheastasiauksouth.

Esta página explica como registrar o seu banco de dados Lakebase como um catálogo de leitura única no Catálogo do Unity Catalog. Isso permite que você use os privilégios do Unity Catalog para gerenciar o acesso aos dados e aproveitar integrações como sincronização de dados gerenciados.

Propriedade e permissões

  • Se o banco de dados não existir, ele pode ser criado em conjunto com o catálogo. Neste caso, a propriedade dos objetos seguirá estas diretrizes.
  • O criador do catálogo também deve possuir CREATE CATALOG privilégios no metastore do Unity Catalog.

Criar um catálogo

Para registrar um banco de dados com o Unity Catalog, use a UI do Azure Databricks, a chamada de API, o SDK do Python ou a CLI.

IU

  1. Clique em Computação na barra lateral do espaço de trabalho.
  2. Na guia Instâncias de banco de dados , selecione sua instância de banco de dados.
  3. Na guia Catálogos , clique em Criar catálogo.
  4. Você pode registrar um banco de dados existente como um catálogo Unity Catalog ou criar um novo. Use uma das seguintes opções:
    • Para usar um banco de dados existente: insira o nome desejado do catálogo Unity Catalog e o nome do banco de dados Postgres existente. O banco de dados databricks_postgres padrão pode ser usado como o nome do banco de dados.
    • Para criar um novo banco de dados Postgres e um catálogo Unity Catalog ao mesmo tempo: insira o nome do catálogo desejado e ative Criar novo banco de dados.
  5. Clique em Criar.
  6. Após a criação, clique no catálogo na lista Catálogos para ver a visualização do Catalog Explorer.

Python SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseCatalog

# Initialize the Workspace client
w = WorkspaceClient()

# Register an existing database as a UC catalog
catalog = w.database.create_database_catalog(
    DatabaseCatalog(
        name="my_catalog",                    # Name of the UC catalog to create
        database_instance_name="my-instance", # Name of the database instance
        database_name="databricks_postgres",  # Name of the existing Postgres database
    )
)
print(f"Created database catalog: {catalog.name}")

# Create a new database and register it as a UC catalog
catalog = w.database.create_database_catalog(
    DatabaseCatalog(
        name="new_catalog",                   # Name of the UC catalog to create
        database_instance_name="my-instance", # Name of the database instance
        database_name="new_database",         # Name of the Postgres database to register (and optionally create)
        create_database_if_not_exists=True    # Create the database if it doesn't exist
    )
)
print(f"Created new database and catalog: {catalog.name}")

CLI

# Register an existing database as a UC catalog
databricks database create-database-catalog my_catalog my-instance databricks_postgres

# Create a new database and register it as a UC catalog
databricks database create-database-catalog new_catalog my-instance new_database \
  --create-database-if-not-exists

encaracolar

export PG_DATABASE_NAME="<name of the PG database to sync to UC>"
export CATLAOG_NAME="<name of UC catalog to create>"
// Optional
export CREATE_DATABASE_IF_NOT_EXISTS="<whether to create a new database>"
curl -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/catalogs \
--data-binary @- << EOF
{
  "name": "$CATALOG_NAME",
  "database_name": "$PG_DATABASE_NAME",
  "instance_name": "$INSTANCE_NAME",
  "create_database_if_not_exists": "$CREATE_DATABASE_IF_NOT_EXISTS" // optional
}

Limitações

  • Os nomes dos bancos de dados devem conter apenas caracteres alfanuméricos ou sublinhados. Observação Os nomes dos bancos de dados não podem incluir hífenes.
  • O catálogo criado no Unity Catalog com base na base de dados é somente leitura.

Explore objetos do Postgres no Unity Catalog por meio de um catálogo de banco de dados

Para exibir o catálogo, verifique se você tem um SQL warehouse sem servidor em execução anexado.

  1. Clique em Catálogo na barra lateral do espaço de trabalho.
  2. No navegador Catálogo, clique no cluster e selecione um armazém de dados SQL sem servidor em execução como recurso de computação.
  3. Clique em Iniciar e fechar.

À medida que você abre o catálogo, esquemas e tabelas, as sincronizações devem ser acionadas automaticamente. No entanto, a interface do usuário pode armazenar dados em cache para reduzir o número de solicitações Postgres, portanto, novos objetos podem não aparecer imediatamente.

Para acionar uma atualização completa, clique em Ícone de Esquema de Atualização.

Excluir um catálogo de banco de dados no Unity Catalog

Você deve ser o proprietário de um catálogo de banco de dados ou um administrador de metastore para excluí-lo.

O Databricks recomenda que você primeiro exclua todas as tabelas sincronizadas do catálogo do banco de dados. Cada tabela de origem só pode ser usada para criar 20 tabelas sincronizadas e pode levar até três dias para que as tabelas sincronizadas sejam limpas no Unity Catalog depois que um catálogo de banco de dados for excluído. As tabelas sincronizadas pendentes de exclusão no Unity Catalog contam para o limite de 20 tabelas sincronizadas por tabela de origem.

Use a interface do usuário do Azure Databricks, o SDK do Python, a CLI ou a API para excluir um catálogo de banco de dados.

IU

  1. Clique em Catálogo na barra lateral do espaço de trabalho.
  2. Selecione o catálogo de banco de dados que você deseja excluir do painel Catálogo .
  3. Clique no ícone do menu Kebab e clique em Excluir.

Python SDK

from databricks.sdk import WorkspaceClient

# Initialize the Workspace client
w = WorkspaceClient()

# Delete a database catalog
catalog_name = "my_catalog"
w.database.delete_database_catalog(name=catalog_name)
print(f"Deleted database catalog: {catalog_name}")

CLI

# Delete a database catalog
databricks database delete-database-catalog my_catalog

encaracolar

curl -X DELETE --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/catalogs/$CATALOG_NAME

Depois que o catálogo for excluído, você poderá renomear ou soltar o banco de dados Postgres.