Compartir a través de


Supervisión del costo del proceso sin servidor

En este artículo se explica cómo usar la tabla de uso facturable del sistema para controlar el costo del uso de computación sin servidor.

Puede supervisar el uso del proceso sin servidor para cuadernos y trabajos consultando la tabla del sistema de uso facturable (system.billing.usage), que incluye atributos de usuario y carga de trabajo relacionados con los costos de proceso sin servidor. Los campos aplicables incluyen:

  • La columna identity_metadata incluye el campo run_as, que muestra el usuario o la entidad de servicio cuyas credenciales se usaron para ejecutar la carga de trabajo.
  • La columna usage_metadata tiene campos que describen la carga de trabajo: job_run_id, job_name, notebook_id, y notebook_path.

Características adicionales facturadas como sin servidor

Hay varias características de Azure Databricks que aprovechan el proceso sin servidor en segundo plano, pero no requieren que la cuenta esté habilitada para el proceso sin servidor para cuadernos, flujos de trabajo y canalizaciones declarativas de Lakeflow.

Las siguientes características se facturan en la SKU de trabajos sin servidor:

  • Supervisión de Lakehouse: ha iniciado sesión en la tabla de facturación con un valor billing_origin_product de LAKEHOUSE_MONITORING.
  • Optimización predictiva: ha iniciado sesión en la tabla de facturación con un valor billing_origin_product de PREDICTIVE_OPTIMIZATION.
  • Vistas materializadas en Databricks SQL: al crear una vista materializada en un almacenamiento de SQL, se crea una canalización sin servidor para procesar las actualizaciones. Puede ver los registros de facturación de la vista materializada consultando los registros donde billing_origin_product = 'SQL' y usage_metadata.dlt_pipeline_id IS NOT NULL.
  • Control de acceso específico en el proceso dedicado: identificación al tener un valor billing_origin_product de FINE_GRAINED_ACCESS_CONTROL.
  • Salas limpias: la sala limpia específica relacionada con el uso se registra en usage_metadata.central_clean_room_id.

Consideraciones para los registros de uso sin servidor

Al analizar el uso sin servidor, tenga en cuenta lo siguiente:

  • Es posible que vea varios registros asociados a una carga de trabajo de proceso sin servidor determinada en una hora determinada. Por ejemplo, puede ver varios registros con la misma job_id, job_run_ido job_name, pero con valores de consumo de DBU diferentes para cada uno. La suma de estas DBU representa colectivamente el consumo de DBU por hora para una ejecución de trabajo determinada.

Uso de presupuestos para supervisar los gastos

Los administradores de cuentas pueden configurar presupuestos para agrupar los costos y configurar alertas. Consulte Creación y supervisión de presupuestos.

Importar un panel de uso

Los administradores de cuentas pueden importar paneles de administración de costos a cualquier área de trabajo habilitada para Unity Catalog en su cuenta. Consulte Importación de un panel de uso.

Búsqueda de un trabajo o cuaderno en la interfaz de usuario

Para buscar un trabajo o cuaderno en la interfaz de usuario en función de un registro de facturación, copie el valor usage_metadata.job_id o usage_metadata.notebook_id del registro de uso. Estos identificadores son inmutables y se pueden usar incluso si cambia el nombre del trabajo o la ruta de acceso del cuaderno.

Para buscar un trabajo en la interfaz de usuario en función de su job_id:

  1. Copie el job_id del registro de uso. En este ejemplo, supongamos que el identificador es 700809544510906.
  2. Vaya a la interfaz de usuario Trabajos & y Pipelines en la misma área de trabajo Azure Databricks en la que se encuentra el trabajo.
  3. Seleccione el filtro Accesible por mí .
  4. Pegue el identificador (700809544510906) en la barra de búsqueda Filtrar trabajos.

Para buscar un cuaderno en la interfaz de usuario en función de su notebook_id, siga estas instrucciones:

  1. Copie el notebook_id del registro de uso. En este ejemplo, supongamos que el identificador es 700809544510906.
  2. Vaya a la interfaz de usuario de Áreas de trabajo en el mismo área de trabajo de Azure Databricks que el cuaderno.
  3. Haga clic en cualquier cuaderno de la lista.
  4. Después de abrir el cuaderno, examine la dirección URL en la barra de direcciones del explorador. Debería ser similar a https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>.
  5. En la barra de direcciones del explorador, reemplace el identificador del cuaderno por el identificador que copió en el primer paso y a continuación, elimine todo después del identificador del cuaderno. Debería ser similar a https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906.
  6. Después de extraer el cuaderno, puede hacer clic en el botón Compartir para ver el propietario del cuaderno.

Uso de alertas para realizar un seguimiento del gasto sin servidor

Las alertas son una manera eficaz de mantenerse informados sobre el gasto sin servidor. Con las alertas, puede recibir notificaciones cuando se cumplan determinadas condiciones en los resultados de la consulta. Para obtener información sobre cómo crear alertas, consulte Creación de una alerta.

Puede agregar alertas a las siguientes consultas para supervisar los presupuestos. En cada consulta, reemplace {budget} por el presupuesto elegido.

Alerta cuando cualquier gasto de área de trabajo supera un umbral en los últimos 30 días

Puede establecer una alerta para que se desencadene cada vez que esta consulta devuelva una fila. Reemplace {budget} por el presupuesto elegido.

SELECT
   t1.workspace_id,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS", "INTERACTIVE")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.workspace_id
HAVING
   list_cost > {budget}

Alerta cuando un usuario supera el umbral en los últimos 30 días

Puede establecer una alerta para que se desencadene cada vez que esta consulta devuelva una fila. Reemplace {budget} por el presupuesto elegido.

SELECT
   t1.identity_metadata.run_as,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS", "INTERACTIVE")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.identity_metadata.run_as
HAVING
   list_cost > {budget}

Alerta cuando un trabajo supera el umbral en los últimos 30 días

Puede establecer una alerta para que se desencadene cada vez que esta consulta devuelva una fila. Reemplace {budget} por el presupuesto elegido.

SELECT
   t1.workspace_id,
   t1.usage_metadata.job_id,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.workspace_id, t1.usage_metadata.job_id
HAVING
   list_cost > {budget}

Consultas de ejemplo

Use las siguientes consultas para obtener información sobre el uso sin servidor en su cuenta:

Ordenar cuadernos sin servidor en función del gasto total

Esta consulta devuelve una lista de cuadernos y cuántas DBU consume cada cuaderno, en orden descendente por consumo de DBU:

SELECT
  usage_metadata.notebook_id,
  usage_metadata. notebook_path,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  usage_metadata.notebook_id is not null
  and billing_origin_product = 'INTERACTIVE'
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2
ORDER BY
  total_dbu DESC

Ordenar trabajos sin servidor en función del gasto total

Esta consulta devuelve una lista de trabajos y el número de DBU que consume cada trabajo, en orden descendente por consumo de DBU:

SELECT
  usage_metadata.job_id,
  usage_metadata.job_name,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  usage_metadata.job_id is not null
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
  and sku_name like '%JOBS_SERVERLESS_COMPUTE%'
GROUP BY
  1,2
ORDER BY
  total_dbu DESC

Informe sobre las DTU consumidas por un usuario determinado

Esta consulta devuelve una lista de cuadernos y trabajos que usan un proceso sin servidor ejecutado por un usuario o entidad de servicio determinado y el número de DTU consumidas por cada carga de trabajo:

SELECT
  usage_metadata.job_id,
  usage_metadata.job_name,
  usage_metadata.notebook_id,
  usage_metadata. notebook_path,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  identity_metadata.run_as = '<emailaddress@domain.com>'
  and billing_origin_product in ('JOBS','INTERACTIVE')
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2,3,4
ORDER BY
  total_dbu DESC

Informe de las DTU de proceso sin servidor consumidas por cargas de trabajo que comparten una etiqueta personalizada

Esta consulta devuelve una lista de trabajos que usan un proceso sin servidor que comparten la misma etiqueta personalizada y el número de DTU consumidas por cada carga de trabajo:

SELECT
  usage_metadata.job_id,
  usage_metadata.job_name,
  usage_metadata.notebook_id,
  usage_metadata. notebook_path,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  custom_tags.<key> = '<value>'
  and billing_origin_product in ('JOBS','INTERACTIVE')
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2,3,4
ORDER BY
  total_dbu DESC