Atualize seu pacote para usar recursos de autoscale
Este guia aborda a atualização de um Databricks Asset Bundle (DAB) existente. A atualização converte uma configuração Lakebase de provisionamento (um database_instances recurso, opcionalmente com uma instância filha, catálogos e tabelas sincronizadas) para recurso Lakebase de autoscale (postgres_projects, postgres_branches, postgres_endpoints, e opcionalmente postgres_catalogs e postgres_synced_tables).
Quando aplicável
O seu banco de dados Lakebase já funciona na plataforma de autoscale. A partir de 12 de março de 2026, a API de instância de banco de dados cria novas instâncias do Lakebase como projetos de autoscale. Seu pacote é a única parte que ainda os referencia utilizando database_instances. A partir de junho de 2026, a Databricks automaticamente atualizará as instâncias provisionadas existentes para Autoscale. Em ambos os casos, os passos de atualização do bundle são os mesmos.
Como a atualização funciona
A atualização está no local. Databricks não move nem copia seus dados. O pacote interrompe o acompanhamento dos recursos provisionados e começa a gerenciar o mesmo banco de dados subjacente por meio dos recursos de autoscale. Isso desbloqueia recursos como o dimensionamento para zero e a ramificação.
A alteração exige duas chamadas de databricks bundle deploy, com os comandos databricks bundle deployment bind e unbind entre elas, para gerenciar a transição de estado do pacote.
Para as diferenças conceituais entre provisionadas e autoscale, consulte Atualizar para autoscale. Esta página aborda apenas a atualização da configuração do pacote.
Pré-requisitos
Antes de começar, é preciso ter:
- Versão 1.2.0 ou superior da CLI do Databricks, que atualiza seus recursos existentes no local. Para verificar sua versão, execute
databricks -v. - Autenticação configurada para seu workspace do Databricks. Consulte Configurar acesso ao seu workspace.
- Permissão CAN MANAGE no projeto Lakebase. Consulte Gerenciar permissões de projeto.
- Um banco de dados Lakebase existente atualmente gerenciado por um pacote como
database_instances. Se sua configuração incluir uma instância filha, catálogos ou tabelas sincronizadas, este guia também as abrange.
Esta página aborda database_instances, database_catalogs e synced_database_tables (tabelas sincronizadas). Databricks Apps ainda não são abordados.
Mapeamento de recursos
provisionamento | Dimensionamento automático |
|---|---|
Pai |
|
Criança |
|
Endpoint de leitura e gravação da instância secundária |
|
|
|
|
|
O ID do projeto é o name da instância pai , em minúsculas. Caso não haja certeza (por exemplo, se o nome contiver letras maiúsculas), localize o seu projeto na lista de projetos do aplicativo Lakebase e consulte o seu project_id.
Etapa 1: Estado inicial (Provisionado)
O databricks.yml inicial será algo assim. Os nomes são espaços reservados; utilize seus nomes reais. Inclua os blocos database_catalogs e synced_database_tables somente se o seu pacote os gerencia.
resources:
database_instances:
root:
name: my-instance
capacity: CU_2
child:
name: my-child
capacity: CU_2
parent_instance_ref:
name: ${resources.database_instances.root.name}
database_catalogs:
cat:
name: my-catalog
database_instance_name: ${resources.database_instances.root.name}
database_name: my_db
create_database_if_not_exists: true
synced_database_tables:
orders_synced:
name: my-catalog.default.orders_synced
database_instance_name: ${resources.database_instances.root.name}
logical_database_name: my_db
spec:
scheduling_policy: SNAPSHOT
source_table_full_name: main.default.orders
primary_key_columns:
- id
new_pipeline_spec:
storage_catalog: main
storage_schema: default
Passo 2 (implantado 1): Adote os autoscale recurso
Adicione os recursos de autoscale ao pacote junto com os provisionados existentes. Os blocos provisionados permanecem na configuração durante este passo. O projeto, as branches e o endpoint usam um conjunto mínimo de campos. O catálogo e a tabela sincronizada precisam de mais alguns campos, incluindo a tabela de origem da tabela sincronizada, a chave primária e o armazenamento do pipeline.
resources:
database_instances:
root:
name: my-instance
capacity: CU_2
child:
name: my-child
capacity: CU_2
parent_instance_ref:
name: ${resources.database_instances.root.name}
database_catalogs:
cat:
name: my-catalog
database_instance_name: ${resources.database_instances.root.name}
database_name: my_db
create_database_if_not_exists: true
synced_database_tables:
orders_synced:
name: my-catalog.default.orders_synced
database_instance_name: ${resources.database_instances.root.name}
logical_database_name: my_db
spec:
scheduling_policy: SNAPSHOT
source_table_full_name: main.default.orders
primary_key_columns:
- id
new_pipeline_spec:
storage_catalog: main
storage_schema: default
postgres_projects:
pg_root:
project_id: my-instance
postgres_branches:
pg_production:
branch_id: production
parent: ${resources.postgres_projects.pg_root.id}
pg_child:
branch_id: my-child
parent: ${resources.postgres_projects.pg_root.id}
postgres_endpoints:
pg_child_rw:
endpoint_id: primary
parent: ${resources.postgres_branches.pg_child.id}
endpoint_type: ENDPOINT_TYPE_READ_WRITE
postgres_catalogs:
pg_cat:
catalog_id: my-catalog
branch: ${resources.postgres_branches.pg_production.id}
postgres_database: my_db
create_database_if_missing: false
postgres_synced_tables:
pg_orders_synced:
synced_table_id: my-catalog.default.orders_synced
branch: ${resources.postgres_branches.pg_production.id}
postgres_database: my_db
source_table_full_name: main.default.orders
primary_key_columns:
- id
scheduling_policy: SNAPSHOT
new_pipeline_spec:
storage_catalog: main
storage_schema: default
As chaves de recurso de um pacote devem ser únicas em todos os tipos de recurso em um único pacote. Os recursos de autoscale acima usam um prefixo pg_ para evitar conflitos com as chaves provisionadas existentes (root, child, cat, orders_synced).
Antes de implantar, vincule cada recurso de autoscale ao seu backend existente. A vinculação garante que a implantação adote os recursos existentes em vez de criar novos. O ID do recurso para cada comando bind é o nome canônico do recurso no workspace:
databricks bundle deployment bind pg_root \
projects/my-instance
databricks bundle deployment bind pg_production \
projects/my-instance/branches/production
databricks bundle deployment bind pg_child \
projects/my-instance/branches/my-child
databricks bundle deployment bind pg_child_rw \
projects/my-instance/branches/my-child/endpoints/primary
databricks bundle deployment bind pg_cat \
catalogs/my-catalog
databricks bundle deployment bind pg_orders_synced \
synced_tables/my-catalog.default.orders_synced
Após a vinculação, implantar o pacote:
databricks bundle deploy
A implantação adota os recursos de autoscale em estado de pacote sem recriá-los. Os dados permanecem inalterados.
Passo 3 (Implantação 2): remover os recursos provisionados do estado do pacote
Depois que a implantação no passo 2 for concluída sem erros, remova as declarações provisionadas do pacote.
Para cada recurso provisionado, executar bundle deployment unbind. A próxima implantação em seguida para de acompanhar o recurso provisionado sem destruí-lo:
databricks bundle deployment unbind orders_synced
databricks bundle deployment unbind cat
databricks bundle deployment unbind child
databricks bundle deployment unbind root
Em seguida, remova o database_instances (ambas as entradas root e child), database_catalogs e os blocos synced_database_tables do YAML do seu pacote e reimplante:
databricks bundle deploy
O pacote não acompanha mais os recursos provisionados. Os dados permanecem. Os recursos de autoscale adotados no passo 2 agora gerenciam totalmente o banco de dados.
unbind Remove os recursos provisionados do acompanhamento de pacote sem excluí-los, para que seu banco de dados continue em execução.
Funções e bancos de dados Postgres
Funções e bancos de dados Postgres residem no seu banco de dados, não como recursos empacotados. A atualização do seu pacote não as altera. Eles permanecem na base de dados, disponíveis como antes.
O DABs ainda não disponibiliza funções ou bancos de dados Postgres como tipos de recurso de bundle. Para criar e gerenciá-los como código, use os recursos databricks_postgres_role e databricks_postgres_database do Terraform juntamente com seu pacote.
O que é possível após atualizar seu pacote
Depois que o autoscale gerenciar seu projeto, será possível fazer coisas que não estavam disponíveis no provisionado. Alguns destaques:
- Ramificação. Crie cópias instantâneas e isoladas do seu banco de dados para desenvolvimento, testes ou recuperação. Inclui branches protegidas e ramificação de ponto no tempo.
- Dimensionar para zero. Pausar o compute em branches inativas para redução de custos.
- Restauração instantânea. Recuperar a qualquer momento dentro da sua janela de retenção (até 30 dias).
- Réplicas de leitura. Endpoints de compute somente leitura separados que compartilham o mesmo armazenamento.
- Snapshot. Capturas pontuais do seu branch raiz, manuais ou agendadas.
Para um pacote completo que usa muitos desses juntos, consulte Gerenciar Lakebase com DABs.
Para desativar totalmente um projeto mais tarde, databricks bundle destroy não funciona para o Lakebase (endpoints de leitura e gravação não podem ser excluídos individualmente). Consulte Limpar recursos para o método correto.