Aller au contenu principal

Surveiller le coût du pipeline d'ingestion géré

S'applique à : Icône de coche verte connecteurs SaaS Icône de coche verte connecteurs de base de données Icône de coche verte connecteurs basés sur la query

Découvrez comment utiliser la table system.billing.usage pour surveiller les coûts du pipeline d'ingestion géré et suivre l'utilisation. Les queries sur cette page vous aident à comprendre les modèles de dépenses, à identifier les pipelines coûteux et à attribuer les coûts à des sources de données spécifiques.

Comment lire les données d'utilisation de Lakeflow Connect

Les utilisateurs disposant des autorisations d'accès aux données des tables système peuvent consulter et interroger leurs Logs de facturation de compte pour l'ingestion gérée à system.billing.usage. Chaque enregistrement de facturation comprend des colonnes qui attribuent le montant d'utilisation à des ressources, des identités et des produits spécifiques impliqués.

L'utilisation du pipeline d'ingestion géré dans Lakeflow Connect est suivie à l'aide des parameter de facturation suivants :

parameter

Description

billing_origin_product

Définir sur LAKEFLOW_CONNECT pour toute utilisation de connecteurs gérés.

usage_type

Défini sur COMPUTE_TIME pour le traitement du pipeline.

usage_unit

Enregistré en MILLISECOND (temps de compute brut) et DBU (unité de Tarif).

parameter

Description

billing_origin_product

Définir sur LAKEFLOW_CONNECT pour toute utilisation de connecteurs gérés.

usage_type

Défini sur COMPUTE_TIME pour le traitement du pipeline.

usage_unit

Enregistré en MILLISECOND (temps de compute brut) et DBU (unité de Tarif).

La colonne usage_metadata comprend une structure avec des informations sur les ressources du pipeline :

Champ

Description

dlt_pipeline_id

L'identifiant unique du pipeline d'ingestion.

  • uc_table_catalog
  • uc_table_schema
  • uc_table_name

Les informations sur la table de destination.

Champ

Description

dlt_pipeline_id

L'identifiant unique du pipeline d'ingestion.

  • uc_table_catalog
  • uc_table_schema
  • uc_table_name

Les informations sur la table de destination.

Pour une référence complète de la table d'utilisation, consultez la référence de la table système d'utilisation facturable.

Frais de maintenance du pipeline

Les pipelines d'ingestion gérés entraînent des frais de maintenance similaires aux LakeFlow Pipelines. Ces coûts de maintenance couvrent l'infrastructure de pipeline, la gestion des métadonnées et le suivi des changements entre les exécutions de pipeline. Vous pouvez distinguer les coûts de traitement des données des coûts de maintenance en analysant les modèles d'utilisation au fil du temps.

Mettre en service les données de facturation

Databricks recommande d'utiliser les tableaux de bord AI/BI pour créer des tableaux de bord de monitoring des coûts à l'aide des données de facturation de la table système. Vous pouvez créer un nouveau tableau de bord, ou les administrateurs de compte peuvent importer un tableau de bord de monitoring des coûts prédéfini et personnalisable. Consultez les tableaux de bord d'utilisation.

Vous pouvez également ajouter des alertes à vos query pour vous aider à rester informé sur les données d'utilisation. Voir Créer une alerte.

Exemples de query

Les requêtes suivantes fournissent des exemples de la manière dont vous pouvez utiliser les données de la table system.billing.usage pour obtenir des insights sur l'utilisation de votre pipeline d'ingestion géré.

Combien mes pipelines ont-ils consommé ce mois-ci ?

Cette query renvoie la consommation totale de DBU pour tous les pipelines d'ingestion gérés du mois en cours. Utilisez ceci pour suivre les dépenses globales liées aux connecteurs gérés.

SQL
SELECT
usage_date,
SUM(usage_quantity) AS total_dbus
FROM system.billing.usage
WHERE
billing_origin_product = 'LAKEFLOW_CONNECT'
AND MONTH(usage_date) = MONTH(NOW())
AND YEAR(usage_date) = YEAR(NOW())
GROUP BY usage_date
ORDER BY usage_date DESC

Quels pipelines ont consommé le plus de DBU ?

Cette requête identifie vos pipelines d'ingestion gérés les plus coûteux en joignant les données d'utilisation aux métadonnées des pipelines. Utilisez ceci pour prioriser les efforts d'optimisation.

SQL
WITH ranked_pipelines AS (
SELECT
u.usage_metadata.dlt_pipeline_id AS pipeline_id,
p.name AS pipeline_name,
SUM(u.usage_quantity) AS total_dbus,
COUNT(DISTINCT u.usage_date) AS days_active
FROM system.billing.usage u
JOIN system.lakeflow.pipelines p
ON u.usage_metadata.dlt_pipeline_id = p.pipeline_id
WHERE
u.billing_origin_product = 'LAKEFLOW_CONNECT'
AND u.usage_date >= DATE_SUB(NOW(), 30)
GROUP BY pipeline_id, pipeline_name
)
SELECT
pipeline_name,
pipeline_id,
total_dbus,
days_active,
ROUND(total_dbus / days_active, 2) AS avg_daily_dbus
FROM ranked_pipelines
ORDER BY total_dbus DESC
LIMIT 20

Quelle est la tendance des coûts pour un pipeline spécifique ?

Cette query affiche le modèle d'utilisation quotidienne pour un pipeline spécifique. Remplacez :dlt_pipeline_id par l'ID de votre pipeline, que vous pouvez trouver dans l'onglet Détails du pipeline de l'interface utilisateur Lakeflow pipelines.

SQL
SELECT
usage_date,
SUM(usage_quantity) AS daily_dbus,
COUNT(*) AS usage_events
FROM system.billing.usage
WHERE
usage_metadata.dlt_pipeline_id = :dlt_pipeline_id
AND billing_origin_product = 'LAKEFLOW_CONNECT'
AND usage_date >= DATE_SUB(NOW(), 90)
GROUP BY usage_date
ORDER BY usage_date ASC

Quel est le coût de mon pipeline ?

Cette query détaille les coûts du pipeline d'ingestion géré par pipeline. Remplacez :pipeline_id par l'ID de votre pipeline Lakeflow Connect, que vous trouverez sur l'onglet Détails du pipeline dans l'interface utilisateur du pipeline.

SQL
SELECT
u.usage_date,
p.name AS pipeline_name,
SUM(u.usage_quantity) AS daily_dbus,
SUM(u.usage_quantity * lp.pricing.effective_list.default) AS estimated_cost
FROM system.billing.usage u
JOIN system.lakeflow.pipelines p
ON u.usage_metadata.dlt_pipeline_id = p.pipeline_id
JOIN system.billing.list_prices lp
ON lp.sku_name = u.sku_name
WHERE
u.usage_metadata.dlt_pipeline_id = :pipeline_id
AND u.billing_origin_product = 'LAKEFLOW_CONNECT'
AND u.usage_end_time >= lp.price_start_time
AND (lp.price_end_time IS NULL OR u.usage_end_time < lp.price_end_time)
AND u.usage_date >= DATE_SUB(NOW(), 30)
GROUP BY u.usage_date, pipeline_name
ORDER BY u.usage_date DESC

Quel volume d'utilisation peut être attribué aux pipelines avec un tag budgétaire spécifique ?

Cette query montre l'utilisation pour les pipelines d'ingestion gérés balisés avec une politique d'utilisation spécifique. Les balises de politique d'utilisation vous permettent de suivre les coûts sur plusieurs pipelines à des fins de refacturation ou d'allocation des coûts. Remplacez :key et :value par votre clé et valeur de balise personnalisée.

Le balisage de la politique d'utilisation pour les pipelines d'ingestion gérés est uniquement via API. Pour plus d'informations sur les politiques d'utilisation, consultez Attribuer l'utilisation avec les politiques d'utilisation Serverless.

SQL
SELECT
custom_tags[:key] AS tag_value,
usage_date,
SUM(usage_quantity) AS daily_dbus
FROM system.billing.usage
WHERE
billing_origin_product = 'LAKEFLOW_CONNECT'
AND custom_tags[:key] = :value
AND usage_date >= DATE_SUB(NOW(), 30)
GROUP BY tag_value, usage_date
ORDER BY usage_date DESC

Quel est le coût de la maintenance par rapport à... coût de traitement des données pour mes pipelines ?

La query suivante sépare les frais de maintenance du pipeline des coûts de traitement des données. Des frais de maintenance s’appliquent même lorsque les pipelines n’ingèrent pas activement de données, couvrant l’infrastructure et le suivi des modifications.

La query utilise un threshold de 0,1 DBU par heure pour distinguer les coûts de maintenance et de traitement. Ajustez ce threshold en fonction des caractéristiques de votre pipeline.

SQL
WITH hourly_usage AS (
SELECT
usage_metadata.dlt_pipeline_id AS pipeline_id,
DATE_TRUNC('hour', usage_start_time) AS usage_hour,
SUM(usage_quantity) AS hourly_dbus
FROM system.billing.usage
WHERE
billing_origin_product = 'LAKEFLOW_CONNECT'
AND usage_date >= DATE_SUB(NOW(), 30)
GROUP BY pipeline_id, usage_hour
)
SELECT
pipeline_id,
SUM(CASE WHEN hourly_dbus > 0.1 THEN hourly_dbus ELSE 0 END) AS processing_dbus,
SUM(CASE WHEN hourly_dbus <= 0.1 THEN hourly_dbus ELSE 0 END) AS maintenance_dbus,
SUM(hourly_dbus) AS total_dbus
FROM hourly_usage
GROUP BY pipeline_id
ORDER BY total_dbus DESC

Montrez-moi les pipelines où les coûts augmentent mois après mois

Cette query calcule le taux de croissance de l'utilisation du pipeline d'ingestion géré entre deux mois. Utilisez ceci pour identifier les pipelines dont les coûts augmentent et qui pourraient nécessiter une optimisation ou un examen du volume de données.

SQL
SELECT
after.pipeline_id,
after.pipeline_name,
before_dbus,
after_dbus,
ROUND(((after_dbus - before_dbus) / NULLIF(before_dbus, 0) * 100), 2) AS growth_rate
FROM
(
SELECT
u.usage_metadata.dlt_pipeline_id AS pipeline_id,
p.name AS pipeline_name,
SUM(u.usage_quantity) AS before_dbus
FROM system.billing.usage u
JOIN system.lakeflow.pipelines p
ON u.usage_metadata.dlt_pipeline_id = p.pipeline_id
WHERE
u.billing_origin_product = 'LAKEFLOW_CONNECT'
AND u.usage_date BETWEEN DATE_SUB(NOW(), 60) AND DATE_SUB(NOW(), 30)
GROUP BY pipeline_id, pipeline_name
) AS before
JOIN
(
SELECT
u.usage_metadata.dlt_pipeline_id AS pipeline_id,
p.name AS pipeline_name,
SUM(u.usage_quantity) AS after_dbus
FROM system.billing.usage u
JOIN system.lakeflow.pipelines p
ON u.usage_metadata.dlt_pipeline_id = p.pipeline_id
WHERE
u.billing_origin_product = 'LAKEFLOW_CONNECT'
AND u.usage_date >= DATE_SUB(NOW(), 30)
GROUP BY pipeline_id, pipeline_name
) AS after
ON before.pipeline_id = after.pipeline_id
WHERE after_dbus > before_dbus
ORDER BY growth_rate DESC

Calculez le coût en dollars de l'utilisation du mois précédent

Cette query joint les données d'utilisation aux prix catalogue pour calculer le coût approximatif en dollars des pipelines d'ingestion gérés. Le coût réel pourrait différer légèrement en fonction de votre niveau de Tarifs de compte et de vos droits.

SQL
SELECT
DATE_TRUNC('day', u.usage_date) AS usage_day,
SUM(u.usage_quantity * lp.pricing.effective_list.default) AS estimated_cost
FROM system.billing.usage u
JOIN system.billing.list_prices lp
ON lp.sku_name = u.sku_name
WHERE
u.billing_origin_product = 'LAKEFLOW_CONNECT'
AND u.usage_end_time >= lp.price_start_time
AND (lp.price_end_time IS NULL OR u.usage_end_time < lp.price_end_time)
AND u.usage_date >= ADD_MONTHS(DATE_TRUNC('month', CURRENT_DATE), -1)
AND u.usage_date < DATE_TRUNC('month', CURRENT_DATE)
GROUP BY usage_day
ORDER BY usage_day ASC

Quels catalogues et schémas de destination ont les coûts d'ingestion les plus élevés ?

Cette query agrège les coûts du pipeline d'ingestion géré par catalogue de destination et schéma. Utilisez ceci pour comprendre où les données ingérées sont stockées et quelles destinations ont les coûts d'ingestion associés les plus élevés.

SQL
SELECT
usage_metadata.uc_table_catalog AS catalog_name,
usage_metadata.uc_table_schema AS schema_name,
COUNT(DISTINCT usage_metadata.dlt_pipeline_id) AS pipeline_count,
SUM(usage_quantity) AS total_dbus
FROM system.billing.usage
WHERE
billing_origin_product = 'LAKEFLOW_CONNECT'
AND usage_metadata.uc_table_catalog IS NOT NULL
AND usage_date >= DATE_SUB(NOW(), 30)
GROUP BY catalog_name, schema_name
ORDER BY total_dbus DESC

Ressources supplémentaires