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

تحليل تكاليف BigQuery حسب المستخدم

إن فهم أي المستخدمين يولّدون أكبر تكاليف BigQuery هو الخطوة الأولى للسيطرة على فاتورة السحابة. يرتّب هذا الاستعلام كل مستخدم حسب إجمالي التكلفة عند الطلب خلال نافذة زمنية قابلة للتكوين، مما يتيح لك تحديد أكبر المستهلكين بسرعة.

لماذا يهم هذا

بدون إسناد التكاليف على مستوى المستخدم، تجد المؤسسات صعوبة في تحديد من المسؤول عن ارتفاعات الفاتورة غير المتوقعة. يمكن لمستخدم واحد يشغّل استعلامات غير محسّنة أن يمثّل بسهولة 30-50% من إجمالي إنفاق المشروع. من خلال كشف التكاليف لكل مستخدم، يمكنك إجراء محادثات مستهدفة وتحديد ميزانيات وإعطاء الأولوية للتدريب.

كيف يعمل

يحتوي عرض INFORMATION_SCHEMA.JOBS_BY_PROJECT في BigQuery على بيانات وصفية لكل مهمة منفّذة في المشروع، بما في ذلك بريد المستخدم الإلكتروني وإجمالي البايتات المفوترة واستخدام الفتحات. يجمّع هذا الاستعلام total_bytes_billed لكل مستخدم ويحوّله إلى تكلفة عند الطلب المقدّرة بسعر Google الحالي البالغ 6.25 دولار لكل TiB محلَّل.

استعلام SQL

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

SQL
-- Rank users by estimated on-demand cost

DECLARE lookback_days INT64 DEFAULT 30;

WITH jobs AS (
  SELECT
    user_email,
    job_id,
    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
  WHERE creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
    AND job_type = 'QUERY'
    AND state = 'DONE'
    AND total_slot_ms IS NOT NULL
),
deduplicated AS (
  SELECT user_email, bytes_billed FROM jobs WHERE rn = 1
)
SELECT
  user_email,
  COUNT(*) AS query_count,
  ROUND(SUM(bytes_billed) / POW(1024, 4), 4) AS tib_scanned,
  ROUND(SUM(bytes_billed) / POW(1024, 4) * 6.25, 2) AS estimated_cost_usd
FROM deduplicated
GROUP BY user_email
ORDER BY estimated_cost_usd DESC
استبدل your-project وregion-us بمشروع GCP الخاص بك ومنطقة مجموعة البيانات.

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

يجمع الاستعلام كل مهمة استعلام مكتملة من INFORMATION_SCHEMA.JOBS_BY_PROJECT ضمن نافذة الاسترجاع. يزيل التكرار في المهام باستخدام ROW_NUMBER() مقسّمة بـ job_id (قد يسجّل BigQuery المهمة ذاتها أكثر من مرة). ثم يجمّع حسب user_email، ويجمع total_bytes_billed، ويحوّل البايتات إلى تيبيبايت (بالقسمة على 1024^4) قبل الضرب بسعر الطلب البالغ 6.25 دولار/TiB.

رؤى أساسية

  • lightbulb

    عادةً ما يمثّل عدد قليل من المستخدمين غالبية التكاليف — تحقق مما إذا كان أول 3 مستخدمين يمثّلون أكثر من 50% من إجمالي الإنفاق.

  • lightbulb

    كثيراً ما تتصدر حسابات الخدمة (dbt وLooker وAirflow) القائمة لأنها تشغّل استعلامات مجدولة على نطاق واسع.

  • lightbulb

    المستخدمون ذوو التكاليف العالية وعدد الاستعلامات المنخفض يشغّلون على الأرجح استعلامات غير محسّنة تمسح كميات كبيرة من البيانات.

  • lightbulb

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

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

  1. 1

    اضبط ضوابط التكاليف المخصصة لـ BigQuery للحدّ من البايتات المفوترة لكل مستخدم يومياً.

  2. 2

    اشترط وجود شروط LIMIT أو مرشّحات القسم للاستعلامات التفاعلية/المخصصة.

  3. 3

    استخدم التسميات على مهام الاستعلام المجدولة لتمييز التكاليف الآلية عن التكاليف البشرية.

  4. 4

    شارك هذا التقرير مع قادة الهندسة حتى يتمكنوا من توجيه أعضاء الفريق نحو أفضل ممارسات الاستعلام.

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

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

أدلة ذات صلة