Criar e gerenciar uma instância de banco de dados
Visualização
Esse recurso está em Public Preview nas seguintes regiões: us-east-1
, us-west-2
, eu-west-1
, ap-southeast-1
, ap-southeast-2
, eu-central-1
, us-east-2
, ap-south-1
.
Para começar a usar as cargas de trabalho OLTP, crie uma instância de banco de dados do Lakebase usando a interface do usuário do Databricks, a chamada de API, o Python SDK ou a CLI.
Criar uma instância de banco de dados
Crie uma instância de banco de dados com o padrão recomendado. Você precisa fornecer um nome de instância (somente de 1 a 63 caracteres, letras e hífens). Como criador, você é o proprietário do banco de dados com a função databricks_superuser
.
A maioria dos usuários do site workspace pode criar instâncias de banco de dados pelo site default. Se você encontrar problemas de permissão, consulte permissões de instância de banco de dados.
- UI
- Python SDK
- CLI
- curl
- Clique em Computação na barra lateral do workspace.
- Clique em Lakebase Postgres tab.
- Clique em Criar instância de banco de dados .
- Insira o nome da instância do banco de dados (somente de 1 a 63 caracteres, letras e hífens).
- Clique em Criar .
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseInstance
# Initialize the Workspace client
w = WorkspaceClient()
# Create a database instance
instance = w.database.create_database_instance(
DatabaseInstance(
name="my-database-instance",
capacity="CU_1"
)
)
print(f"Created database instance: {instance.name}")
print(f"Connection endpoint: {instance.read_write_dns}")
# Create a database instance
databricks database create-database-instance my-database-instance \
--capacity CU_1
# Create with advanced options (using JSON for more complex parameters)
databricks database create-database-instance \
--json '{
"name": "my-database-instance",
"capacity": "CU_2",
"retention_window_in_days": 14
}'
Crie uma instância de banco de dados e especifique uma janela de retenção.
export PAT=<YOUR_PAT>
export INSTANCE_NAME="instance_name"
> curl -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://[your databricks workspace]/api/2.0/database/instances \
--data-binary @- << EOF
{
"name": "$INSTANCE_NAME",
"capacity": "CU_1",
"retention_window_in_days": 14
}
EOF
Configurações avançadas
O senhor também pode configurar esses recursos durante a criação ou após a criação, editando sua instância:
Recurso | Descrição |
---|---|
Selecione uma política de orçamento para sua instância de banco de dados para atribuir o uso e o faturamento do serverless a orçamentos específicos. O senhor também pode adicionar tags personalizadas. | |
escala compute recurso para os requisitos de desempenho de sua carga de trabalho (padrão: 2 CU). | |
Defina a janela de retenção (2-35 dias, default 7 dias) para recuperação pontual. | |
Adicione nós de failover para garantir a continuidade dos negócios das cargas de trabalho de produção. | |
Crie um clone copy-on-write a partir de uma instância de banco de dados existente. |
Parar ou começar uma instância
Para interromper ou iniciar uma instância de banco de dados, o senhor deve ter as permissões CAN MANAGE
nela. Para parar ou começar uma instância, use a interface do usuário Databricks, a chamada API, Python
SDK, ou CLI.
- UI
- Python SDK
- CLI
- curl
- Clique em Computação na barra lateral do workspace.
- Clique em Lakebase Postgres tab.
- Clique na instância do banco de dados que o senhor deseja interromper ou começar.
- Clique em Parar ou começar no canto superior direito da página.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseInstance
# Initialize the Workspace client
w = WorkspaceClient()
# Stop a database instance
instance_name = "my-database-instance"
w.database.update_database_instance(
name=instance_name,
database_instance=DatabaseInstance(
name=instance_name,
stopped=True
),
update_mask="*"
)
print(f"Stopped database instance: {instance_name}")
# Start a database instance
w.database.update_database_instance(
name=instance_name,
database_instance=DatabaseInstance(
name=instance_name,
stopped=False
),
update_mask="*"
)
print(f"Started database instance: {instance_name}")
# Stop a database instance
databricks database update-database-instance my-database-instance \
--json '{
"stopped": true
}'
# Start a database instance
databricks database update-database-instance my-database-instance \
--json '{
"stopped": false
}'
A seguinte chamada de API interrompe uma instância de banco de dados.
-X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/instances/$INSTANCE_NAME \
--data-binary @- << EOF
{
"stopped": true
}
EOF
O seguinte API chama o senhor de começar uma instância de banco de dados.
curl -X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/instances/$INSTANCE_NAME \
--data-binary @- << EOF
{
"stopped": false
}
EOF
Comportamento quando interrompido
Comportamento da instância do banco de dados
- Os dados são preservados.
- A instância não pode ser usada para operações de leitura ou gravação.
- As tabelas sincronizadas não servem para leituras.
- LakeFlow O pipeline declarativo (LDP) não detecta instâncias paradas e pode retornar erros.
- Catálogos registrados em instâncias interrompidas não mostram detalhes do esquema na interface do usuário.
Limitações funcionais:
- Você não pode criar nem excluir
DatabaseTables
ouDatabaseCatalogs
. - Você pode excluir ou redimensionar uma instância interrompida. As mudanças de capacidade entram em vigor quando a instância é reiniciada.
- O senhor pode interromper o pipeline.
Comportamento ao começar
- A instância entra no estado
STARTING
e se tornaAVAILABLE
quando estiver pronta.
Limitações
- O LDP não detecta instâncias interrompidas e pode retornar erros.
- Catálogos registrados em instâncias interrompidas não mostram detalhes do esquema na interface do usuário.
Excluir uma instância
Tenha cuidado ao excluir a instância do banco de dados, pois isso excluirá todos os dados associados.
Você deve ter as permissões CAN MANAGE
na instância do banco de dados. Se você não for o proprietário das tabelas ou catálogos, deverá reatribuir a propriedade para si mesmo. os administradores do espaço de trabalho podem excluir instâncias de banco de dados que não lhes pertencem.
A Databricks recomenda excluir todos os catálogos associados do Unity Catalog, tabelas sincronizadas e instâncias filhas antes de excluir a instância do banco de dados. Caso contrário, a tentativa de acessar view catálogos ou executar SQL consultas que fazem referência a eles resultará em erros.
- UI
- Python SDK
- CLI
- curl
- Clique em Computação na barra lateral do workspace.
- Clique em Lakebase Postgres tab.
- Selecione a instância do banco de dados que você deseja excluir.
- Clique em Catalogs (Catálogos ) tab para view a lista completa de catálogos de banco de dados associados à instância do banco de dados.
- Para cada catálogo de banco de dados, exclua todas as tabelas sincronizadas, inclusive as que estão localizadas em catálogos gerenciais e não estão registradas como catálogos de banco de dados.
- Clique em
> Excluir catálogo .
from databricks.sdk import WorkspaceClient
# Initialize the Workspace client
w = WorkspaceClient()
# Delete a database instance
instance_name = "my-database-instance"
w.database.delete_database_instance(
name=instance_name,
purge=True # Required to delete the instance
)
print(f"Deleted database instance: {instance_name}")
# Delete with force option (to delete child instances too)
w.database.delete_database_instance(
name=instance_name,
force=True, # Delete child instances too
purge=True
)
# Delete a database instance
databricks database delete-database-instance my-database-instance \
--purge
# Delete with force option (to delete child instances too)
databricks database delete-database-instance my-database-instance \
--json '{
"force": true,
"purge": true
}'
purge=true
deve ser especificado para excluir uma instância de banco de dados.
curl -X DELETE --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/instances/$INSTANCE_NAME?purge=true
Atualizar uma política de orçamento serverless de uma instância de banco de dados
As políticas de orçamento sem servidor consistem em tags que são aplicadas a qualquer atividade serverless compute incorrida por um usuário atribuído à política. Ao marcar uma instância de banco de dados com uma política de uso, o senhor pode atribuir custos de faturamento e uso a políticas específicas, facilitando o rastreamento, a gerência e o controle de gastos em serverless recurso.
Use a interface do usuário para atualizar a política orçamentária de uma instância de banco de dados:
- Clique em Computação na barra lateral do workspace.
- Clique em Lakebase Postgres tab.
- Selecione a instância do banco de dados para a qual você deseja atualizar a política de cobrança.
- Clique em Editar no canto superior direito.
- Selecione uma política de orçamento sem servidor .
- Clique em Salvar .
Next os passos
- Permitir que outros usuários acessem a instância do banco de dados a partir do Databricks. Consulte gerenciar funções e permissões e gerenciar funções do Postgres.
- Conecte-se e consulte sua instância de banco de dados a partir de ferramentas externas, do editor SQL ou de um Notebook.
- registro da instância do banco de dados em Unity Catalog.
- Sincronizar dados de tabelas existentes do Unity Catalog.
Limitações e requisitos
As seções a seguir descrevem os limites e os requisitos de configuração das instâncias do banco de dados gerenciar. Para restrições na criação e uso de instâncias, consulte Limitações e considerações.
Requisitos de nome de instância
- Deve ter de 1 a 63 caracteres.
- Deve começar com uma carta.
- Pode conter somente caracteres alfanuméricos e hífens.
- Não é possível incluir dois hífens consecutivos.