Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una instancia de cómputo es un servicio virtualizado que ejecuta PostgreSQL para los proyectos de Lakebase. Cada rama tiene un cómputo principal (de lectura y escritura). Se requiere un equipo para conectarse a una sucursal y acceder a sus datos. Para obtener información general sobre cómo se relacionan los procesos y los puntos de conexión, consulte Proceso y puntos de conexión.
Comprender la informática
Información general sobre computación
Los recursos de proceso proporcionan la capacidad de procesamiento y la memoria necesarias para ejecutar consultas, administrar conexiones y controlar las operaciones de base de datos. Cada proyecto tiene un recurso de computación de lectura-escritura principal para su rama predeterminada.
Para conectarse a una base de datos en una filial, debe usar una computadora asociada a esa filial. Los procesos más grandes consumen más horas de proceso durante el mismo período de tiempo activo que los procesos más pequeños.
Identificadores de proceso
Cada proceso tiene tres identificadores, accesibles desde el menú Obtener identificador en la pestaña Procesos:
| Identificador | Fuente | Ejemplo | Se usa en |
|---|---|---|---|
| Nombre | El identificador de punto de conexión, establecido en primary para el proceso predeterminado. Proporcionado por el usuario al crear puntos de conexión a través de la API. |
primary |
Ruta de acceso del recurso de API (.../endpoints/primary) |
| UID | Generada por el sistema | ep-sweet-butterfly-y2nm75e1 |
Nombre de host de conexión |
| Nombre del recurso | Ruta de acceso completa de la API | projects/my-project/branches/production/endpoints/primary |
Llamadas a API |
El nombre de host de la cadena de conexión usa el UID, no el nombre de equipo.
Ajuste de tamaño de proceso
Tamaños de cálculo disponibles
Lakebase Postgres admite los siguientes tamaños de proceso:
- Proceso con escalado automático: de 0,5 CU a 64 CU (0,5 y luego incrementos enteros: 1, 2, 3... 64)
- Instancias de computación de tamaño fijo más grandes: de 65 CU a 112 CU
Nota:
La aplicación Lakebase muestra un subconjunto de tamaños usados habitualmente. Con postgres API, Terraform, Databricks Asset Bundles o el SDK de Databricks, puede establecer cualquier valor cu entero: 1–64 para los procesos de escalado automático y de 65 a 112 para procesos de mayor tamaño fijo.
¿Qué hay en una unidad de proceso?
Cada unidad de proceso (CU) asigna aproximadamente 2 GB de RAM a la instancia de base de datos, junto con todos los recursos de CPU y SSD locales asociados. El escalado aumenta estos recursos de forma lineal. Postgres distribuye la memoria asignada entre varios componentes:
- Cachés de bases de datos
- Memoria de trabajo
- Otros procesos con requisitos fijos de memoria
El rendimiento varía en función del tamaño de los datos y la complejidad de las consultas. Antes de escalar, probar y optimizar las consultas. El almacenamiento se escala automáticamente.
Especificaciones de cómputo
| Unidades de cómputo | RAM | Conexiones máximas |
|---|---|---|
| 0,5 CU | aproximadamente 1 GB | 105 |
| 1 unidad de capacidad | aproximadamente 2 GB | 218 |
| 2 CU | ~4 GB | 443 |
| 3 CU | ~6 GB | 668 |
| 4 Unidades de Cómputo | ~8 GB | 894 |
| 5 CU | ~10 GB | 1119 |
| 6 Unidades de Computación (CU) | ~12 GB | 1344 |
| 7 CU | ~14 GB | 1570 |
| 8 unidad de capacidad | ~16 GB | 1795 |
| 9 unidades de cálculo (UC) | ~18 GB | 2020 |
| 10 CU | ~20 GB | 2246 |
| 12 unidades de cálculo (UC) | ~24 GB | 2696 |
| 14 Unidades de Cómputo (CU) | ~28 GB | 3147 |
| 16 Unidades de Computación | ~32 GB | 3597 |
| 24 Unidades Computacionales (UC) | ~48 GB | 3993 |
| 28 CU | ~56 GB | 3993 |
| 32 Unidades de Cómputo (CU) | ~64 GB | 3993 |
| 36 UC | ~72 GB | 3993 |
| 40 CU | ~80 GB | 3993 |
| 44 Unidades de Cómputo | ~88 GB | 3993 |
| 48 Unidades de Cómputo | ~96 GB | 3993 |
| 52 UC | ~104 GB | 3993 |
| 56 CU | ~112 GB | 3993 |
| 60 Unidades de Computo | ~120 GB | 3993 |
| 64 CU (Unidades de Cómputo) | ~128 GB | 3993 |
| 72 Unidades de Cómputo | ~144 GB | 3993 |
| 80 Unidades de Cómputo (UC) | ~160 GB | 3993 |
| 88 Unidades de Computación (CU) | ~176 GB | 3993 |
| 96 Unidades de Cómputo (CU) | ~192 GB | 3993 |
| 104 CU | ~208 GB | 3993 |
| 112 Unidades de Computación | ~224 GB | 3993 |
Límites de conexión para los recursos de procesamiento con escalado automático: Cuando se habilita el escalado automático, el número máximo de conexiones se determina por el valor menor entre su CU máximo y 8× su CU mínima. Por ejemplo, si configura el escalado automático entre 2 y 8 CU, el límite de conexión es 1795 (el límite de 8 CU).
Límites de conexión de réplicas de lectura: los límites de conexión de proceso de réplicas de lectura se sincronizan con las configuraciones principales de proceso de lectura y escritura. Consulte Administración de réplicas de lectura para obtener más información.
Nota:
Algunas conexiones están reservadas para uso administrativo y del sistema. Por este motivo, SHOW max_connections puede mostrar un valor mayor que las Conexiones máximas que se muestran en la tabla anterior o en el cajón Editar proceso en la aplicación Lakebase. Los valores de la tabla y el cajón reflejan el número real de conexiones disponibles para su uso directo, mientras que SHOW max_connections incluye conexiones reservadas.
Guía de ajuste de tamaño
Al seleccionar un tamaño de computación, considere estos factores:
| Factor | Recomendación |
|---|---|
| Complejidad de las consultas | Las consultas analíticas complejas se benefician de tamaños de proceso mayores |
| Conexiones simultáneas | Más conexiones requieren cpu y memoria adicionales |
| Volumen de datos | Es posible que los conjuntos de datos más grandes necesiten más memoria para obtener un rendimiento óptimo. |
| Tiempo de respuesta | Las aplicaciones críticas pueden requerir procesos más grandes para un rendimiento coherente |
Estrategia de ajuste de tamaño óptimo
Seleccione un tamaño de proceso en función de los requisitos de datos:
- Conjunto de datos completo en memoria: elija un tamaño de proceso que pueda contener todo el conjunto de datos en memoria para obtener el mejor rendimiento.
- Conjunto de trabajo en memoria: para grandes conjuntos de datos, asegúrese de que sus datos más utilizados quepan en la memoria.
- Límites de conexión: seleccione un tamaño que admita las conexiones simultáneas máximas previstas.
Escalado automático
Lakebase admite configuraciones de proceso de tamaño fijo y escalado automático. El escalado automático ajusta dinámicamente los recursos de proceso en función de la demanda de la carga de trabajo, optimizando tanto el rendimiento como el costo.
| Tipo de configuración | Description |
|---|---|
| Tamaño fijo (0,5-64 CU) | Seleccione un tamaño de computación fijo que no se ajuste a la demanda de cargas de trabajo. Disponible para cómputos de 0,5 CU a 64 CU |
| Escalado automático (0,5-64 CU) | Use un control deslizante para especificar tamaños de proceso mínimos y máximos. Lakebase se escala vertical y horizontalmente dentro de estos límites en función de la carga actual. Disponible para instancias de cómputo de hasta 64 CU (128 GB) |
| Cómputos de tamaño fijo más grandes (80-112 CU) | Seleccione una capacidad de cómputo de tamaño fijo mayor, de hasta 112 CU. Estos servidores más grandes solo están disponibles en tamaños fijos y no admiten el escalamiento automático. |
Límite de escalado automático: El escalado automático se admite para los procesos de hasta 64 CU (128 GB). Para cargas de trabajo que requieran más de 64 CU, están disponibles cómputos de tamaño fijo de 80, 96 o 112 CU.
Configuración del escalado automático
Para habilitar o ajustar el escalado automático de un proceso, edite el proceso y use el control deslizante para establecer tamaños de proceso mínimo y máximo.
Para obtener información general sobre cómo funciona el escalado automático, consulte Escalado automático.
Consideraciones de escalado automático
Para obtener un rendimiento óptimo del escalado automático:
- Establezca el tamaño mínimo de proceso lo suficientemente grande como para almacenar en caché el conjunto de trabajo en memoria
- Tenga en cuenta que puede producirse un rendimiento deficiente hasta que el proceso se escala verticalmente y almacena en caché los datos.
- Sus límites de conexión se basan en el valor menor entre su CU máxima y 8× su CU mínima.
Restricciones de intervalo de escalado automático: la diferencia entre los tamaños de proceso máximo y mínimo no puede superar los 16 CU (es decir, max - min ≤ 16 CU). Por ejemplo, puede configurar el escalado automático de 8 a 24 CU, o de 48 a 64 CU, pero no de 0,5 a 32 CU (que sería un intervalo de 31,5 CU). El control deslizante de la aplicación Lakebase aplica esta restricción automáticamente. Para las cargas de trabajo que requieren más de 64 CU, utilice instancias de proceso de tamaño fijo más grandes, de hasta 112 CU.
Escalar a cero
La característica de escala a cero de Lakebase realiza automáticamente la transición de un proceso a un estado inactivo después de un período de inactividad, lo que reduce los costos de las bases de datos que no están activas continuamente.
| Configuración | Description |
|---|---|
| Escalado a cero habilitado | El cómputo se suspende automáticamente tras la inactividad para reducir costes. |
| Escalado a cero deshabilitado | Mantenimiento de un proceso "siempre activo" que elimina la latencia de inicio |
Para obtener información general sobre cómo funciona la escala a cero, consulte Escalado a cero. Para configurar la escala en cero para un proceso, consulte Configuración de la escala en cero.
Crear y gestionar recursos de cómputo
Ver procesos
Ver en la interfaz de usuario
Para ver los procesos de una rama, vaya a la página Ramas del proyecto en la aplicación Lakebase y seleccione una rama para ver su pestaña Procesos .
La pestaña Computes (Procesos) muestra información sobre todos los procesos asociados a la rama. La información que se muestra en la pestaña Computes (Procesos) se describe en la tabla siguiente.
| Detalle | Description |
|---|---|
| Tipo de proceso | El tipo de proceso es Principal (lectura y escritura) o Réplica de lectura (solo lectura). Una rama puede tener un único proceso principal (lectura y escritura) y varios procesos de réplica de lectura (solo lectura). |
| Estado | Estado actual: Activo o Suspendido (cuando el proceso se ha suspendido debido a escalado a cero). Muestra la fecha y hora en que se suspendió el proceso. |
| UID | Identificador único generado por el sistema para el cómputo, que comienza con el prefijo ep-. Este valor aparece en el nombre de host de conexión. Consulte Identificadores de proceso. |
| Tamaño | Tamaño de proceso en unidades de proceso (CU). Muestra un único valor CU (por ejemplo, 8 CU) para cálculos de tamaño fijo. Muestra un intervalo (por ejemplo, 8-16) para los procesos con el escalado automático habilitado. |
| Último activo | La fecha y hora en que el equipo de computación estuvo activo por última vez. |
Para cada proceso, puede:
- Haga clic en Conectar para abrir un cuadro de diálogo de conexión con los detalles de conexión de la rama asociada al proceso. El cuadro de diálogo incluye un botón de alternancia Agrupación de conexiones para roles nativos de contraseña de Postgres. Consulte Conexión a la base de datos y Uso de la agrupación de conexiones.
- Haga clic en Editar para modificar el tamaño de proceso (intervalo fijo o de escalado automático) y configurar la configuración de escalado a cero. Consulte Editar una instancia de cómputo.
- Haga clic en el icono de menú para acceder a opciones adicionales:
- Supervisión de la actividad: Visualice la actividad de cómputo y las métricas de rendimiento. Consulte Supervisión de la base de datos.
- Reiniciar proceso: reinicie el proceso para resolver problemas de conexión o aplicar cambios de configuración. Consulte Reiniciar un proceso.
Para agregar un proceso de réplica de lectura a la rama, haga clic en Agregar réplica de lectura. Las réplicas de lectura son procesos de solo lectura que permiten el escalado horizontal, ya que le permiten descargar la carga de trabajo de lectura del proceso principal. Consulte Réplicas de lectura y Administrar réplicas de lectura.
Obtener un cálculo de forma programática
Para obtener detalles sobre un proceso específico mediante postgres API:
SDK de Python
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# Get endpoint details
endpoint = w.postgres.get_endpoint(
name="projects/my-project/branches/production/endpoints/my-compute"
)
print(f"Endpoint: {endpoint.name}")
print(f"Type: {endpoint.status.endpoint_type}")
print(f"State: {endpoint.status.current_state}")
print(f"Host: {endpoint.status.hosts.host}")
print(f"Min CU: {endpoint.status.autoscaling_limit_min_cu}")
print(f"Max CU: {endpoint.status.autoscaling_limit_max_cu}")
En el SDK, acceda al host a través de endpoint.status.hosts.host (no endpoint.status.host).
SDK de Java
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.Endpoint;
WorkspaceClient w = new WorkspaceClient();
// Get endpoint details
Endpoint endpoint = w.postgres().getEndpoint(
"projects/my-project/branches/production/endpoints/my-compute"
);
System.out.println("Endpoint: " + endpoint.getName());
System.out.println("Type: " + endpoint.getStatus().getEndpointType());
System.out.println("State: " + endpoint.getStatus().getCurrentState());
System.out.println("Host: " + endpoint.getStatus().getHosts().getHost());
System.out.println("Min CU: " + endpoint.getStatus().getAutoscalingLimitMinCu());
System.out.println("Max CU: " + endpoint.getStatus().getAutoscalingLimitMaxCu());
Interfaz de línea de comandos (CLI)
# Get endpoint details
databricks postgres get-endpoint projects/my-project/branches/production/endpoints/my-compute --output json | jq
curl
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Listar cálculos programáticamente
Para enumerar todos los procesos y las réplicas de lectura de una rama mediante la API de Postgres:
SDK de Python
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# List all endpoints for a branch
endpoints = list(w.postgres.list_endpoints(
parent="projects/my-project/branches/production"
))
for endpoint in endpoints:
print(f"Endpoint: {endpoint.name}")
print(f" Type: {endpoint.status.endpoint_type}")
print(f" State: {endpoint.status.current_state}")
print(f" Host: {endpoint.status.hosts.host}")
print(f" CU Range: {endpoint.status.autoscaling_limit_min_cu}-{endpoint.status.autoscaling_limit_max_cu}")
print()
En el SDK, acceda al host a través de endpoint.status.hosts.host (no endpoint.status.host).
SDK de Java
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
WorkspaceClient w = new WorkspaceClient();
// List all endpoints for a branch
for (Endpoint endpoint : w.postgres().listEndpoints("projects/my-project/branches/production")) {
System.out.println("Endpoint: " + endpoint.getName());
System.out.println(" Type: " + endpoint.getStatus().getEndpointType());
System.out.println(" State: " + endpoint.getStatus().getCurrentState());
System.out.println(" Host: " + endpoint.getStatus().getHosts().getHost());
System.out.println(" CU Range: " + endpoint.getStatus().getAutoscalingLimitMinCu() +
"-" + endpoint.getStatus().getAutoscalingLimitMaxCu());
System.out.println();
}
Interfaz de línea de comandos (CLI)
# List endpoints for a branch
databricks postgres list-endpoints projects/my-project/branches/production --output json | jq
curl
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Nota:
Configuraciones típicas de rama:
- 1 punto de conexión: solo proceso principal de lectura y escritura
- Dos o más puntos de conexión: cómputo principal más una o varias réplicas de lectura
Editar proceso
Puede editar un recurso de computación para cambiar su tamaño, la configuración de escalado automático o la configuración para escalar a cero. Los nombres de proceso son de solo lectura y no se pueden cambiar de nombre.
Para editar un recurso computacional:
Interfaz de usuario
- Vaya a la pestaña Computes de tu rama en la aplicación Lakebase.
- Haga clic en Editar para el proceso, ajuste la configuración y haga clic en Guardar.
SDK de Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Endpoint, EndpointSpec, EndpointType, FieldMask
w = WorkspaceClient()
# Update a single field (max CU)
endpoint_spec = EndpointSpec(endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE, autoscaling_limit_max_cu=6.0)
endpoint = Endpoint(
name="projects/my-project/branches/production/endpoints/my-compute",
spec=endpoint_spec
)
result = w.postgres.update_endpoint(
name="projects/my-project/branches/production/endpoints/my-compute",
endpoint=endpoint,
update_mask=FieldMask(field_mask=["spec.autoscaling_limit_max_cu"])
).wait()
print(f"Updated max CU: {result.status.autoscaling_limit_max_cu}")
Para actualizar varios campos, inclúyelos tanto en la especificación como en la máscara de actualización:
# Update multiple fields (min and max CU)
endpoint_spec = EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
autoscaling_limit_min_cu=1.0,
autoscaling_limit_max_cu=8.0
)
endpoint = Endpoint(
name="projects/my-project/branches/production/endpoints/my-compute",
spec=endpoint_spec
)
result = w.postgres.update_endpoint(
name="projects/my-project/branches/production/endpoints/my-compute",
endpoint=endpoint,
update_mask=FieldMask(field_mask=[
"spec.autoscaling_limit_min_cu",
"spec.autoscaling_limit_max_cu"
])
).wait()
print(f"Updated min CU: {result.status.autoscaling_limit_min_cu}")
print(f"Updated max CU: {result.status.autoscaling_limit_max_cu}")
SDK de Java
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
import com.google.protobuf.FieldMask;
WorkspaceClient w = new WorkspaceClient();
// Update a single field (max CU)
EndpointSpec endpointSpec = new EndpointSpec()
.setAutoscalingLimitMaxCu(6.0);
FieldMask updateMask = FieldMask.newBuilder()
.addPaths("spec.autoscaling_limit_max_cu")
.build();
w.postgres().updateEndpoint(
new UpdateEndpointRequest()
.setName("projects/my-project/branches/production/endpoints/my-compute")
.setEndpoint(new Endpoint().setSpec(endpointSpec))
.setUpdateMask(updateMask)
);
System.out.println("Update initiated");
Para actualizar varios campos, inclúyelos tanto en la especificación como en la máscara de actualización:
// Update multiple fields (min and max CU)
EndpointSpec endpointSpec = new EndpointSpec()
.setAutoscalingLimitMinCu(1.0)
.setAutoscalingLimitMaxCu(8.0);
FieldMask updateMask = FieldMask.newBuilder()
.addPaths("spec.autoscaling_limit_min_cu")
.addPaths("spec.autoscaling_limit_max_cu")
.build();
w.postgres().updateEndpoint(
new UpdateEndpointRequest()
.setName("projects/my-project/branches/production/endpoints/my-compute")
.setEndpoint(new Endpoint().setSpec(endpointSpec))
.setUpdateMask(updateMask)
);
System.out.println("Update initiated");
Interfaz de línea de comandos (CLI)
# Update a single field (max CU)
databricks postgres update-endpoint projects/my-project/branches/production/endpoints/my-compute spec.autoscaling_limit_max_cu \
--json '{
"spec": {
"autoscaling_limit_max_cu": 6.0
}
}'
# Update multiple fields (min and max CU)
databricks postgres update-endpoint projects/my-project/branches/production/endpoints/my-compute "spec.autoscaling_limit_min_cu,spec.autoscaling_limit_max_cu" \
--json '{
"spec": {
"autoscaling_limit_min_cu": 1.0,
"autoscaling_limit_max_cu": 8.0
}
}'
curl
# Update a single field (max CU)
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.autoscaling_limit_max_cu" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"autoscaling_limit_max_cu": 6.0
}
}' | jq
# Update multiple fields (min and max CU)
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.autoscaling_limit_min_cu,spec.autoscaling_limit_max_cu" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"autoscaling_limit_min_cu": 1.0,
"autoscaling_limit_max_cu": 8.0
}
}' | jq
Nota:
Los cambios en la configuración de proceso surten efecto inmediato y pueden provocar interrupciones breves de la conexión durante el reinicio.
Configuración de la escala en cero
Para configurar la escala a cero, incluya spec.suspension en la máscara de actualización. Establezca suspend_timeout_duration (60s–604800s) para definir el tiempo de espera de inactividad o no_suspension: true para deshabilitarlo. No configure ninguna. La configuración no_suspension: false no es válida y devuelve un error. De forma predeterminada, la production rama tiene la escala a cero habilitada con un tiempo de espera de 24 horas.
Interfaz de usuario
- Vaya a la pestaña Computes de tu rama en la aplicación Lakebase.
- Haga clic en Editar para el proceso y, a continuación, habilite o deshabilite la configuración de escalado a cero. Cuando se habilita, configure el tiempo de espera de inactividad entre 60 segundos y 7 días.
- Haz clic en Guardar.
SDK de Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Endpoint, EndpointSpec, EndpointType, FieldMask
from google.protobuf.duration_pb2 import Duration
w = WorkspaceClient()
endpoint_name = "projects/my-project/branches/production/endpoints/my-compute"
# Disable scale to zero (compute stays active indefinitely)
endpoint_spec = EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
no_suspension=True
)
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(name=endpoint_name, spec=endpoint_spec),
update_mask=FieldMask(field_mask=["spec.suspension"])
).wait()
# Enable scale to zero with a 5-minute inactivity timeout (60s–604800s)
endpoint_spec = EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
suspend_timeout_duration=Duration(seconds=300)
)
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(name=endpoint_name, spec=endpoint_spec),
update_mask=FieldMask(field_mask=["spec.suspension"])
).wait()
SDK de Java
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
import com.google.protobuf.Duration;
import com.google.protobuf.FieldMask;
WorkspaceClient w = new WorkspaceClient();
String endpointName = "projects/my-project/branches/production/endpoints/my-compute";
FieldMask updateMask = FieldMask.newBuilder()
.addPaths("spec.suspension")
.build();
// Disable scale to zero (compute stays active indefinitely)
EndpointSpec noSuspensionSpec = new EndpointSpec()
.setNoSuspension(true);
w.postgres().updateEndpoint(
new UpdateEndpointRequest()
.setName(endpointName)
.setEndpoint(new Endpoint().setSpec(noSuspensionSpec))
.setUpdateMask(updateMask)
);
// Enable scale to zero with a 5-minute inactivity timeout (60s–604800s)
EndpointSpec timeoutSpec = new EndpointSpec()
.setSuspendTimeoutDuration(
Duration.newBuilder().setSeconds(300).build()
);
w.postgres().updateEndpoint(
new UpdateEndpointRequest()
.setName(endpointName)
.setEndpoint(new Endpoint().setSpec(timeoutSpec))
.setUpdateMask(updateMask)
);
Interfaz de línea de comandos (CLI)
# Disable scale to zero (compute stays active indefinitely)
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-compute \
spec.suspension \
--json '{
"spec": {
"no_suspension": true
}
}'
# Enable scale to zero with a 5-minute inactivity timeout (60s–604800s)
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-compute \
spec.suspension \
--json '{
"spec": {
"suspend_timeout_duration": "300s"
}
}'
curl
# Disable scale to zero (compute stays active indefinitely)
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.suspension" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"no_suspension": true
}
}' | jq
# Enable scale to zero with a 5-minute inactivity timeout (60s–604800s)
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.suspension" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"suspend_timeout_duration": "300s"
}
}' | jq
Deshabilitar o habilitar un cómputo
Deshabilitar una instancia de cómputo la suspende y bloquea todas las conexiones nuevas. A diferencia del escalado a cero, un recurso de proceso deshabilitado no puede activarse mediante un intento de conexión ni desde la aplicación de Lakebase. Para volver a habilitarlo, use la API.
SDK de Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Endpoint, EndpointSpec, EndpointType, FieldMask
w = WorkspaceClient()
endpoint_name = "projects/my-project/branches/production/endpoints/my-compute"
# Disable a compute (blocks all connections)
endpoint_spec = EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
disabled=True
)
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(name=endpoint_name, spec=endpoint_spec),
update_mask=FieldMask(field_mask=["spec.disabled"])
).wait()
# Re-enable a compute
endpoint_spec = EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
disabled=False
)
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(name=endpoint_name, spec=endpoint_spec),
update_mask=FieldMask(field_mask=["spec.disabled"])
).wait()
Para comprobar si un recurso de cómputo está deshabilitado actualmente, lea el valor del estado del endpoint. Estableces el valor en spec.disabled, pero lo vuelves a leer desde status.disabled:
endpoint = w.postgres.get_endpoint(
name="projects/my-project/branches/production/endpoints/my-compute"
)
print(endpoint.status.disabled) # True = disabled, False or None = enabled
Interfaz de línea de comandos (CLI)
# Disable a compute (blocks all connections)
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-compute \
spec.disabled \
--json '{
"spec": {
"disabled": true
}
}'
# Re-enable a compute
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-compute \
spec.disabled \
--json '{
"spec": {
"disabled": false
}
}'
Para comprobar si un recurso de cómputo está desactivado actualmente, lea status.disabled en el endpoint:
databricks postgres get-endpoint projects/my-project/branches/production/endpoints/my-compute --output json | jq '.status.disabled'
curl
# Disable a compute (blocks all connections)
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.disabled" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"disabled": true
}
}' | jq
# Re-enable a compute
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.disabled" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"disabled": false
}
}' | jq
Para comprobar si un recurso de cómputo está desactivado actualmente, lea status.disabled en el endpoint:
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq '.status.disabled'
Nota:
Después de volver a habilitar un proceso, es posible que se produzca un error en los nuevos intentos de conexión hasta que el proceso termine de reiniciarse.
Reiniciar proceso
Reinicie un proceso para aplicar actualizaciones, resolver problemas de rendimiento o recoger los cambios de configuración.
Para reiniciar un equipo:
- Vaya a la pestaña Computes de tu rama en la aplicación Lakebase.
- Haga clic en el
para el menú de cómputo, seleccione Reiniciar y confirme la operación.
Importante
Reiniciar una computadora interrumpe las conexiones activas. Configure las aplicaciones para volver a conectarse automáticamente para evitar interrupciones prolongadas.