管理された取り込みパイプラインのコストを監視する
SaaSコネクタ
データベースコネクタ
system.billing.usageテーブルを使用して、管理された取り込みパイプラインのコストを監視し、使用状況を追跡する方法を学習します。このページのクエリは、支出パターンを理解し、高コストのパイプラインを特定し、コストを特定のデータ ソースに帰属させるのに役立ちます。
LakeFlow Connect使用状況データの読み方
システムテーブル データにアクセスする権限を持つユーザーは、管理された取り込みのアカウント請求ログをsystem.billing.usageで表示およびクエリできます。 すべての請求レコードには、関連する特定のリソース、ID、および製品に使用量を割り当てる列が含まれています。
LakeFlow Connectでの管理された取り込みパイプラインの使用状況は、次の課金問題を使用して追跡されます。
パラメーター | 説明 |
|---|---|
| すべての管理対象コネクタの使用に対して |
| パイプライン処理の場合は |
|
|
usage_metadata列には、パイプライン リソースに関する情報を含む構造体が含まれます。
フィールド | 説明 |
|---|---|
| 取り込みパイプラインの一意の識別子。 |
| 宛先テーブル情報。 |
使用量テーブルの完全なリファレンスについては、 「課金利用システムテーブル リファレンス」を参照してください。
パイプライン保守費用
管理された取り込みパイプラインには、 LakeFlow Spark宣言型パイプラインと同様のメンテナンス料金が発生します。 これらのメンテナンス コストには、パイプライン インフラストラクチャ、メタデータ管理、パイプライン実行間の変更追跡が含まれます。時間の経過に伴う使用パターンを分析することで、データ処理コストとメンテナンス コストを区別できます。
請求データの運用化
Databricks 、 AI/BIダッシュボードを使用して、システム テーブルの請求データを使用したコスト モニタリング ダッシュボードを作成することをお勧めします。 新しいダッシュボードを作成することも、アカウント管理者が事前に構築されたカスタマイズ可能なコスト モニタリング ダッシュボードをインポートすることもできます。 使用状況ダッシュボードを参照してください。
また、クエリにアラートを追加して、使用状況データに関する情報を入手することもできます。 「アラートを作成する」を参照してください。
サンプルクエリ
次のクエリは、 system.billing.usageテーブル データを使用して、マネージド インジェスト パイプラインの使用状況を把握する方法の例を示しています。
今月のパイプラインの消費量はどれくらいですか?
このクエリは、現在の月のすべてのマネージド取り込みパイプラインの合計 DBU 消費量を返します。これを使用して、管理対象コネクタの全体的な支出を追跡します。
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
どのパイプラインが最も多くの DBU を消費しましたか?
このクエリは、使用状況データをパイプライン メタデータと結合することにより、最も高価な管理された取り込みパイプラインを特定します。 これを使用して最適化の取り組みの優先順位を決定します。
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
特定のパイプラインのコストの傾向はどうですか?
このクエリは、特定のパイプラインの毎日の使用パターンを表示します。:dlt_pipeline_idパイプライン ID に置き換えます。この ID は、 LakeFlow Spark宣言型パイプライン UI の [パイプラインの詳細] タブで確認できます。
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
最も高価なソースタイプはどれですか?
このクエリは、管理対象取り込みパイプラインのコストをコネクタ別に分類します。これを使用して、どのデータ ソースが最も使用率を高めているかを理解します。
SELECT
p.connector_type AS source_type,
COUNT(DISTINCT p.pipeline_id) AS pipeline_count,
SUM(u.usage_quantity) AS total_dbus,
ROUND(SUM(u.usage_quantity) / COUNT(DISTINCT p.pipeline_id), 2) AS avg_dbus_per_pipeline
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 source_type
ORDER BY total_dbus DESC
特定の予算タグを持つパイプラインには、どの程度の使用量が含まれるでしょうか?
このクエリは、特定の予算ポリシーでタグ付けされたマネージド取り込みパイプラインの使用状況を表示します。予算ポリシー タグを使用すると、チャージバックやコスト配分の目的で複数のパイプラインにわたってコストを追跡できます。:keyと:valueカスタム タグのキーと値に置き換えます。
マネージド取り込みパイプラインの予算ポリシーのタグ付けは API のみです。予算ポリシーの詳細については、 「サーバーレス予算ポリシーでの属性の使用法」を参照してください。
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
メンテナンスコストはいくらですか?パイプラインのデータ処理コストはいくらですか?
次のクエリは、パイプラインのメンテナンス料金をデータ処理コストから分離します。パイプラインがデータをアクティブに取り込んでいない場合でも、インフラストラクチャと変更の追跡をカバーするメンテナンス料金が発生します。
クエリでは、メンテナンス コストと処理コストを区別するために、1 時間あたり 0.1 DBU のしきい値が使用されます。パイプラインの特性に応じてこのしきい値を調整します。
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
月ごとにコストが増加しているパイプラインを表示する
このクエリは、2 か月間の管理対象取り込みパイプラインの使用量の増加率を計算します。これを使用して、最適化やデータ量のレビューが必要になる可能性のある、コストが増加しているパイプラインを特定します。
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
前月の使用料をドル単位で計算する
このクエリは、使用状況データと定価を結合して、管理対象取り込みパイプラインのおおよそのドルコストを計算します。実際のコストは、アカウントの価格帯と権限に応じて若干異なる場合があります。
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
取り込みコストが最も高い宛先カタログとスキーマはどれですか?
このクエリは、管理対象取り込みパイプラインのコストを宛先カタログとスキーマ別に集計します。これを使用して、取り込まれたデータがどこに保存されているか、および関連する取り込みコストが最も高い保存先を把握します。
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