Surveiller le coût du pipeline d'ingestion géré
S'applique à : connecteurs SaaS
connecteurs de base de données
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 |
|---|---|
| Définir sur |
| Défini sur |
| Enregistré en |
La colonne usage_metadata comprend une structure avec des informations sur les ressources du pipeline :
Champ | Description |
|---|---|
| L'identifiant unique du pipeline d'ingestion. |
| 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.
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.
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.
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.
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.
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.
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.
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.
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.
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