Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
A Lakebase Autoscaling está em Beta nas seguintes regiões: eastus2, westeurope, westus.
O Autoscaling do Lakebase é a versão mais recente do Lakebase com computação automática, escala até zero, ramificação e restauração instantânea. Para comparação de funcionalidades com o Lakebase Provisioned, veja a escolha entre versões.
Esta página fornece uma visão geral da API de Autoscaling do Lakebase, incluindo autenticação, endpoints disponíveis e padrões comuns de utilização da API REST, CLI Databricks, SDKs Databricks (Python, Java, Go) e Terraform.
Para a referência completa da API, consulte a documentação da API Postgres.
Importante
A API do Lakebase Postgres está em fase Beta. Os endpoints, parâmetros e comportamentos da API estão sujeitos a alterações.
Authentication
A API Lakebase Autoscaling utiliza autenticação OAuth ao nível do espaço de trabalho para gerir a infraestrutura de projetos (criação de projetos, configuração de definições, etc.).
Observação
Dois tipos de conectividade: Esta API destina-se à gestão de plataformas (criação de projetos, branches, computações). Para acesso à base de dados (ligação a dados de consulta):
- Clientes SQL (psql, pgAdmin, DBeaver): Use tokens LakeBase OAuth ou palavras-passe Postgres. Consulte Autenticação.
- API de dados (HTTP RESTful): Utilize tokens LakeBase OAuth. Ver Data API.
- Controladores de linguagens de programação (psycopg, SQLAlchemy, JDBC): Utilize tokens LakeBase OAuth ou palavras-passe Postgres. Veja Quickstart.
Para uma explicação completa destas duas camadas de autenticação, veja Arquitetura de autenticação.
Configurar a autenticação
Autentique usando a CLI Databricks:
databricks auth login --host https://your-workspace.cloud.databricks.com
Siga as instruções do navegador para iniciar sessão. A CLI armazena em cache o seu token OAuth em ~/.databricks/token-cache.json.
Depois escolhe o teu método de acesso:
Python SDK
O SDK utiliza autenticação unificada e gere automaticamente os tokens OAuth:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
SDK de Java
O SDK utiliza autenticação unificada e gere automaticamente os tokens OAuth:
import com.databricks.sdk.WorkspaceClient;
WorkspaceClient w = new WorkspaceClient();
CLI
Os comandos usam automaticamente o token em cache:
databricks postgres list-projects
encaracolar
Gerar um token para chamadas diretas de API:
export DATABRICKS_TOKEN=$(databricks auth token | jq -r .access_token)
curl -X GET "https://your-workspace.cloud.databricks.com/api/2.0/postgres/projects" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Os tokens OAuth expiram após uma hora. Regenerar conforme necessário.
Para mais detalhes, consulte Autorizar o acesso do utilizador a Databricks com OAuth.
Endpoints disponíveis (Beta)
Todos os endpoints utilizam o caminho base /api/2.0/postgres/.
Projetos
| Funcionamento | Método | Ponto final | Documentation |
|---|---|---|---|
| Criar o projeto | POST |
/projects |
Criar um projeto |
| Atualizar projeto | PATCH |
/projects/{project_id} |
Configurações gerais |
| Excluir projeto | DELETE |
/projects/{project_id} |
Eliminar um projeto |
| Obter projeto | GET |
/projects/{project_id} |
Obtenha detalhes do projeto |
| Listar projetos | GET |
/projects |
Listar projetos |
Branches
| Funcionamento | Método | Ponto final | Documentation |
|---|---|---|---|
| Criar ramo | POST |
/projects/{project_id}/branches |
Criar uma ramificação |
| Atualizar ramo | PATCH |
/projects/{project_id}/branches/{branch_id} |
Atualizar as configurações da filial |
| Excluir ramo | DELETE |
/projects/{project_id}/branches/{branch_id} |
Eliminar uma ramificação |
| Obtém ramo | GET |
/projects/{project_id}/branches/{branch_id} |
Ver ramificações |
| Listar ramos | GET |
/projects/{project_id}/branches |
Lista de ramos |
Endpoints (Computa e Lê Réplicas)
| Funcionamento | Método | Ponto final | Documentation |
|---|---|---|---|
| Criar ponto de extremidade | POST |
/projects/{project_id}/branches/{branch_id}/endpoints |
Criar um cálculo / Criar uma réplica de leitura |
| Atualizar endpoint | PATCH |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Editar um cálculo / Editar uma réplica lida |
| Excluir ponto de extremidade | DELETE |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Eliminar um cálculo / Eliminar uma réplica de leitura |
| Obter endpoint | GET |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Visualização computa |
| Listar pontos finais | GET |
/projects/{project_id}/branches/{branch_id}/endpoints |
Visualizar cálculos |
Credenciais de Base de Dados
| Funcionamento | Método | Ponto final | Documentation |
|---|---|---|---|
| Gerar credencial de base de dados | POST |
/credentials |
Autenticação de token OAuth |
Operações
| Funcionamento | Método | Ponto final | Documentation |
|---|---|---|---|
| Comece a operar | GET |
/projects/{project_id}/operations/{operation_id} |
Ver exemplo abaixo |
Entrar em operação
Verifique o estado de uma operação de longa duração pelo nome do seu recurso.
Python SDK
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# Start an operation (example: create project)
operation = w.postgres.create_project(...)
print(f"Operation started: {operation.name}")
# Wait for completion
result = operation.wait()
print(f"Operation completed: {result.name}")
SDK de Java
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
WorkspaceClient w = new WorkspaceClient();
// Start an operation (example: create project)
CreateProjectOperation operation = w.postgres().createProject(...);
System.out.println("Operation started: " + operation.getName());
// Wait for completion
Project result = operation.waitForCompletion();
System.out.println("Operation completed: " + result.getName());
CLI
O CLI espera automaticamente que as operações sejam concluídas por padrão. Uso --no-wait para saltar votações:
# Create project without waiting
databricks postgres create-project --no-wait ...
# Later, check the operation status
databricks postgres get-operation projects/my-project/operations/abc123
encaracolar
# Get operation status
curl -X GET "$WORKSPACE/api/2.0/postgres/projects/my-project/operations/abc123" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Formato da resposta:
{
"name": "projects/my-project/operations/abc123",
"done": true,
"response": {
"@type": "type.googleapis.com/databricks.postgres.v1.Project",
"name": "projects/my-project",
...
}
}
Campos:
-
done:falseenquanto está em progresso,truequando concluído -
response: Contém o resultado quandodoneétrue -
error: Contém detalhes de erro caso a operação tenha falhado
Padrões comuns
Nomenclatura de recursos
Os recursos seguem um padrão hierárquico de nomenclatura onde os recursos filhos são atribuídos ao seu progenitor.
Os projetos utilizam este formato:
projects/{project_id}
Recursos filhos, como operações, estão integrados no projeto principal:
projects/{project_id}/operations/{operation_id}
Isto significa que precisa do ID do projeto pai para aceder a operações ou outros recursos filhos.
IDs de Recursos:
Ao criar recursos, deve fornecer um ID de recurso (como my-app) para o project_id, branch_id, ou endpoint_id parâmetro. Este ID torna-se parte do caminho de recurso nas chamadas de API (como projects/my-app/branches/development).
Podes, opcionalmente, fornecer um display_name rótulo mais descritivo ao teu recurso. Se não especificar um nome de visualização, o sistema usa o seu ID de recurso como nome de visualização.
:::dica Encontrar recursos na interface do utilizador
Para localizar um projeto na interface do Lakebase, procure o seu nome de exibição na lista de projetos. Se não forneceu um nome de visualização personalizado ao criar o projeto, procure pelo seu project_id (como "my-app").
:::
Observação
Os IDs dos Recursos não podem ser alterados após a criação.
Requisitos:
- Deve ter entre 1 e 63 caracteres
- Apenas letras minúsculas, dígitos e hífens
- Não pode começar nem terminar com um hífen
- Exemplos:
my-app,analytics-db,customer-123
Operações de longa duração (LROs)
As operações de criar, atualizar e eliminar devolvem um databricks.longrunning.Operation objeto que fornece um estado de conclusão.
Exemplo de resposta à operação:
{
"name": "projects/my-project/operations/abc123",
"done": false
}
Inquérito para conclusão usando o GetOperation:
Python SDK
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# Start an operation
operation = w.postgres.create_project(...)
# Wait for completion
result = operation.wait()
print(f"Operation completed: {result.name}")
SDK de Java
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
WorkspaceClient w = new WorkspaceClient();
// Start an operation
CreateProjectOperation operation = w.postgres().createProject(...);
// Wait for completion
Project result = operation.waitForCompletion();
System.out.println("Operation completed: " + result.getName());
CLI
A CLI espera automaticamente que as operações sejam concluídas por padrão. Use --no-wait para devolver imediatamente:
databricks postgres create-project --no-wait ...
encaracolar
# Poll the operation
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/operations/abc123" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq '.done'
Consulta a cada poucos segundos até done ser true.
Atualizar máscaras
As operações de atualização requerem um update_mask parâmetro que especifique quais os campos a modificar. Isto evita acidentalmente sobrescrever campos não relacionados.
Diferenças de formato:
| Método | Formato | Example |
|---|---|---|
| API REST | Parâmetro de consulta | ?update_mask=spec.display_name |
| Python SDK | Objeto FieldMask | update_mask=FieldMask(field_mask=["spec.display_name"]) |
| CLI | Argumento posicional | update-project NAME spec.display_name |