Compartilhar via


Registrar seu banco de dados no Catálogo do Unity

Importante

Esse recurso está em Visualização Pública nas seguintes regiões: westus, , westus2, eastus, eastus2, centralus, southcentralus, , northeurope, westeurope, , australiaeast, , brazilsouth, , canadacentral, , centralindia, , southeastasiauksouth.

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

Propriedade e permissões

  • Se o banco de dados não existir, ele poderá ser criado junto com o catálogo. Nesse caso, a propriedade dos objetos seguirá essas diretrizes.
  • Além disso, o criador do catálogo deve ter os CREATE CATALOG privilégios no metastore do Catálogo do Unity.

Criar um catálogo

Para registrar um banco de dados com o Catálogo do Unity, use a interface do usuário do Azure Databricks, a chamada à API, o SDK do Python ou a CLI.

interface do usuário

  1. Clique em Computação na barra lateral do workspace.
  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 do Unity Catalog ou criar um novo. Use uma das seguintes opções:
    • Para usar um banco de dados existente: insira o nome do catálogo do Unity desejado 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 do Catálogo do Unity ao mesmo tempo: insira o nome de 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 exibição do Gerenciador de Catálogos.

SDK do Python

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

encurvar

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 de banco de dados devem conter apenas caracteres alfanuméricos ou sublinhados. Observe que os nomes de banco de dados não podem incluir hifens.
  • O catálogo criado no Unity Catalog com base no banco de dados é somente leitura.

Explorar objetos postgres no Catálogo do Unity 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 workspace.
  2. No navegador Catálogo , clique no cluster e selecione um SQL Warehouse sem servidor em execução como seu recurso de computação.
  3. Clique em Iniciar e feche.

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

Para disparar uma atualização completa, clique em Atualizar Ícone de Esquema.

Excluir um catálogo de banco de dados no Catálogo do Unity

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

O Databricks recomenda que você exclua primeiro todas as tabelas sincronizadas do catálogo de 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 Catálogo do Unity após a exclusão de um catálogo de banco de dados. Tabelas sincronizadas pendentes de exclusão no Catálogo do Unity 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.

interface do usuário

  1. Clique em Catálogo na barra lateral do workspace.
  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.

SDK do Python

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

encurvar

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 remover o banco de dados postgres.