Get a free observability report to evaluate the potential savingsContact us →
تحليل التكاليف3 دقيقة قراءة

تحليل تكاليف BigQuery حسب التسمية

تتيح لك تسميات مهام BigQuery وضع علامات على الاستعلامات ببيانات وصفية من مفتاح وقيمة — أسماء الفرق ومعرّفات خطوط الأنابيب وعلامات الميزات أو البيئة. يجمّع هذا الاستعلام التكاليف حسب التسمية حتى تتمكن من إسناد الإنفاق إلى البُعد التجاري الأكثر أهمية لمؤسستك.

لماذا يهم هذا

إسناد التكاليف على مستوى المستخدم له حدوده. في مكدّسات البيانات الحديثة، قد يشغّل حساب خدمة واحد استعلامات نيابةً عن عشرات الفرق أو خطوط الأنابيب. تسدّ التسميات هذه الثغرة بتتيح لك وضع علامات على المهام بسياق العمل (مثل team=analytics وpipeline=revenue_report) ثم تشريح التكاليف وفقاً لذلك.

كيف يعمل

يخزّن BigQuery التسميات كحقل STRUCT متكرر على كل مهمة. يجري هذا الاستعلام CROSS JOIN على مصفوفة التسميات ويزيل التكرار في المهام، ثم يجمّع total_bytes_billed لكل زوج مفتاح وقيمة تسمية.

استعلام SQL

Fill in your details to get a ready-to-run query:

SQL
-- Break down on-demand cost by job label

DECLARE lookback_days INT64 DEFAULT 30;

WITH flattened AS (
  SELECT
    job_id,
    lbl.key AS label_key,
    lbl.value AS label_value,
    COALESCE(total_bytes_billed, 0) AS bytes_billed,
    ROW_NUMBER() OVER (PARTITION BY job_id ORDER BY end_time DESC) AS rn
  FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
  CROSS JOIN UNNEST(labels) AS lbl
  WHERE creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
    AND state = 'DONE'
    AND total_slot_ms IS NOT NULL
    AND lbl.key IS NOT NULL
),
deduplicated AS (
  SELECT label_key, label_value, bytes_billed
  FROM flattened WHERE rn = 1
)
SELECT
  label_key,
  label_value,
  COUNT(*) AS job_count,
  ROUND(SUM(bytes_billed) / POW(1024, 3), 2) AS gib_scanned,
  ROUND(SUM(bytes_billed) / POW(1024, 4) * 6.25, 2) AS estimated_cost_usd
FROM deduplicated
GROUP BY label_key, label_value
...
استبدل your-project وregion-us بمشروع GCP الخاص بك ومنطقة مجموعة البيانات.

شرح الاستعلام

يجري الاستعلام CROSS JOIN على الحقل المتكرر للتسميات لتسطيح صف واحد لكل تسمية لكل مهمة. يزيل التكرار باستخدام ROW_NUMBER() على job_id، ثم يجمّع حسب label_key وlabel_value لجمع total_bytes_billed. تُحسب التكلفة عند الطلب بـ 6.25 دولار/TiB.

رؤى أساسية

  • lightbulb

    إذا كانت معظم مهامك تفتقر إلى التسميات، فسيُظهر هذا الاستعلام جزءاً فقط من تكاليفك — ابدأ بتسمية خطوط الأنابيب الأكثر تكلفةً.

  • lightbulb

    قارن التكاليف على مستوى التسمية شهراً بشهر للكشف عن انتكاسات التكلفة التي أدخلتها ميزات جديدة أو تغييرات خط الأنابيب.

  • lightbulb

    يمكن للتسميات مثل 'environment=production' مقابل 'environment=staging' أن تكشف عما إذا كانت أحمال العمل غير الإنتاجية تكلّف أكثر مما هو متوقع.

  • lightbulb

    يضيف dbt تلقائياً تسميات باسم النموذج، مما يجعل هذا الاستعلام قوياً بشكل خاص لفرق dbt.

أفضل الممارسات

  1. 1

    فرض سياسة وضع التسميات: اشترط وجود تسمية 'team' و'pipeline' على الأقل لجميع المهام المجدولة.

  2. 2

    استخدم تسميات الاستعلام الافتراضية لـ BigQuery في أداة التنسيق الخاصة بك لوضع علامة تلقائياً على كل مهمة.

  3. 3

    أنشئ لوحة تتبع التكاليف على مستوى التسمية بمرور الوقت للكشف المبكر عن الانتكاسات.

  4. 4

    تنبّه على التسميات التي تتجاوز تكلفتها الأسبوعية عتبةً معينة.

هل تريد من CloudClerk إيجاد هذه الوفورات تلقائياً؟

تتصل منصتنا بمشروع BigQuery الخاص بك وتُشغّل هذه التحليلات تلقائياً وتقدّم توصيات التحسين المدعومة بالذكاء الاصطناعي — مع إخفاء هوية بياناتك بالكامل.

أدلة ذات صلة