שאילתות לדוגמה בנושא ייצוא נתוני חיוב ב-Cloud

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

בדף זה מפורטות כמה דוגמאות לשאילתות של נתוני החיוב ב-Cloud שיוצאו ואוחסנו ב-BigQuery.

למידע נוסף על ייצוא נתוני החיוב ל-BigQuery, תוכלו לקרוא את הסקירה הכללית ואת המידע בנושא מגבלות.

ציון שם הטבלה לשימוש בשאילתות

בדוגמאות הבאות עליכם לציין את שם הטבלה בקטע FROM כדי לשלוח שאילתות לגבי נתוני החיוב ב-Cloud אל BigQuery. שם הטבלה נקבע לפי שלושה ערכים: project.dataset.BQ_table_name.

שאילתות לדוגמה לפי סוג הנתונים לחיוב ב-Cloud

בדף זה מוצגות דוגמאות לשאילתות עבור נתוני עלות סטנדרטיים של שימוש , נתוני עלות מפורטים של שימוש ונתוני תמחור.

נתוני עלות סטנדרטיים של שימוש נתוני עלות מפורטים של שימוש נתוני תמחור
דוגמאות לשאילתות עם נתוני עלות סטנדרטיים של שימוש דוגמאות לשאילתות של נתוני עלות מפורטים של שימוש דוגמאות לשאילתות של נתוני תמחור

דוגמאות לשאילתות של נתונים סטנדרטיים של עלות השימוש

בקטע הזה מפורטות דוגמאות לשאילתות של נתוני עלות סטנדרטיים של שימוש ב-Cloud שיוצאו ל-BigQuery.

הדוגמאות של השאילתות יכולות לעבוד גם עם נתוני עלות מפורטים של שימוש שיוצאו ל-BigQuery, למרות שהן לא נכתבות כדי לאחזר נתונים ברמת המשאב שמסופקים רק בייצוא של נתונים מפורטים של עלות השימוש.

ערכים נפוצים שכלולים בדוגמאות לשאילתות של נתוני עלות סטנדרטיים של שימוש

בשאילתות לדוגמה בקטע הזה נעשה שימוש בערך הבא עבור Table name: project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX

הצגת העלויות הכוללות בחשבונית

השאילתות הבאות מדגימות שתי דרכים להצגת ערכי עלויות וזיכויים באמצעות ייצוא נתוני החיוב.

  • השדה total מסכם באופן ישיר את ערכי העלויות והזיכויים בנקודה צפה (floating point). כתוצאה מכך עלולות להיות שגיאות של עיגול הנקודה הצפה.
  • השדה total_exact ממיר את ערכי העלויות והזיכויים לערכי מיקרו לפני חישוב הסיכום, ואז מבצע המרה בחזרה לדולר אחרי החישוב כדי להימנע משגיאה של עיגול הנקודה הצפה.

דוגמה 1: סיכום של כל העלויות, לכל חשבונית

בשאילתה הזו מוצג הסכום הכולל בחשבונית לכל חודש, כסכום של העלויות הקבועות, המיסים, ההתאמות ושגיאות העיגול.

SQL סטנדרטי

SELECT
  invoice.month,
  SUM(cost)
    + SUM(IFNULL((SELECT SUM(c.amount)
                  FROM UNNEST(credits) c), 0))
    AS total,
  (SUM(CAST(cost * 1000000 AS int64))
    + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64))
                  FROM UNNEST(credits) c), 0))) / 1000000
    AS total_exact
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY 1
ORDER BY 1 ASC
;

לדוגמה, התוצאה של השאילתה הקודמת עשויה להיות:

Row month total total_exact
1 201901 ‎1005.004832999999984$ 1005.00$‎
2 201902 992.3101739999999717$‎ 992.31$‎
3 201903 1220.761089999999642$‎ 1220.76$‎

דוגמה 2: הצגת פירוט לפי סוג העלות, לכל חודש חיוב בחשבונית

השאילתה הזו מציגה את הסכומים הכוללים לכל ערך בשדה cost_type בכל חודש. סוגי העלויות כוללים עלויות קבועות, מיסים, התאמות ושגיאות עיגול.

SQL סטנדרטי

SELECT
  invoice.month,
  cost_type,
  SUM(cost)
    + SUM(IFNULL((SELECT SUM(c.amount)
                  FROM   UNNEST(credits) c), 0))
    AS total,
  (SUM(CAST(cost * 1000000 AS int64))
    + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64))
                  FROM UNNEST(credits) c), 0))) / 1000000
    AS total_exact
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY 1, 2
ORDER BY 1 ASC, 2 ASC
;

לדוגמה, התוצאה של השאילתה הקודמת עשויה להיות:

Row month cost_type total total_exact
1 201901 regular 1000.501209987994782$‎ 1000.50$‎
2 201901 rounding_error $‎-0.500489920049387 ‎-0.50$
3 201901 tax 10.000329958477891$‎ 10.00$‎
4 201901 adjustment ‎-5.002572999387045$ ‎-5.00$

דוגמאות לשאילתות עם תוויות

בדוגמאות הבאות מופיעות דרכים נוספות לשליחת שאילתות לגבי הנתונים באמצעות תוויות.

לגבי הדוגמאות בקטע הזה, נניח את הפרטים הבאים:

  • יש לכם 2 אפליקציות (grapefruit-squeezer ו-chocolate-masher).
  • לכל אפליקציה יש 2 סביבות (dev ו-prod).
  • בסביבת dev יש מכונה אחת קטנה לכל אפליקציה.
  • בסביבת prod יש מכונה אחת קטנה באמריקה ומכונה אחת קטנה באסיה.
  • כל מכונה מסומנת בתווית שמכילה את האפליקציה והסביבה.
  • יש לכם מכונה אחת בלי תוויות המשמשת לעריכת ניסויים.

החיוב הכולל הוא 24$‎ לפי הפירוט הבא:

Instance Labels Total Cost
Small instance with 1 vCPU running in Americas אין 4$‎
Small instance with 1 vCPU running in Americas app: chocolate-masher
environment: dev
2$‎
Small instance with 1 vCPU running in Americas app: grapefruit-squeezer
environment: dev
3$‎
Small instance with 1 vCPU running in Americas app: chocolate-masher
environment: prod
3.25$‎
Small instance with 1 vCPU running in Asia app: chocolate-masher
environment: prod
3.75$‎
Small instance with 1 vCPU running in Americas app: grapefruit-squeezer
environment: prod
3.50$‎
Small instance with 1 vCPU running in Asia app: grapefruit-squeezer
environment: prod
4.50$‎

שליחת שאילתה בכל שורה ללא קיבוץ

שאילתה לכל שורה ללא קיבוץ תיצור את התצוגה המפורטת ביותר של העלויות האלה. נניח שכל השדות, מלבד תוויות ותיאורי מק"ט, זהים (פרויקט, שירות וכו').

SQL סטנדרטי

SELECT
  sku.description,
  TO_JSON_STRING(labels) as labels,
 cost as cost
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`;

SQL מדור קודם

TO_JSON_STRING not supported.
Row sku.description labels cost
1 Small instance with 1 vCPU running in Americas [] 4$‎
2 Small instance with 1 vCPU running in Americas [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}]‎ 2$‎
3 Small instance with 1 vCPU running in Americas [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}]‎ 3$‎
4 Small instance with 1 vCPU running in Americas [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}]‎ 3.25$‎
5 Small instance with 1 vCPU running in Asia [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}]‎ 3.75$‎
6 Small instance with 1 vCPU running in Americas [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}]‎ 3.50$‎
7 Small instance with 1 vCPU running in Asia [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}]‎ 4.50$‎
TOTAL 24$‎

קיבוץ לפי מפת תוויות כמחרוזת JSON

זוהי דרך קלה ומהירה להציג פירוט עלויות לפי כל שילוב של תוויות.

SQL סטנדרטי

SELECT
  TO_JSON_STRING(labels) as labels,
  sum(cost) as cost
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY labels;

SQL מדור קודם

TO_JSON_STRING not supported.
Row labels cost
1 [] 4$‎
2 [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}]‎ 2$‎
3 [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}]‎ 3$‎
4 [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}]‎ 7$‎
5 [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}]‎ 8$‎
TOTAL 24$‎

קיבוץ לפי ערך תוויות של מפתח ספציפי

פירוט העלויות לפי ערך תוויות של מפתח ספציפי הוא תרחיש נפוץ. כשאתם משתמשים באיחוד שמאלי (left join) ומעבירים את מסנן המפתח בתור התנאי של האיחוד (join) (במקום להשתמש בו בתנאי ה-WHERE), אתם כוללים עלויות שלא מכילות את המפתח הזה ובכך משיגים תצוגה מלאה של העלויות שלכם.

SQL סטנדרטי

SELECT
  labels.value as environment,
  SUM(cost) as cost
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
LEFT JOIN UNNEST(labels) as labels
  ON labels.key = "environment"
GROUP BY environment;

SQL מדור קודם

SELECT
  labels.value as environment,
  SUM(cost) as cost
FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX]
WHERE labels.key = "environment" OR labels.key IS NULL
GROUP BY environment;
Row environment cost
1 prod 15$‎
2 dev 5$‎
3 null 4$‎
TOTAL 24$‎

קיבוץ לפי צמדי מפתח/ערך

חשוב להיות זהירים כשמפרשים או מייצאים את התוצאות האלה. בכל שורה מוצג הסכום הנכון ללא ספירה כפולה, אבל אין לשלב את השורות עם שורות אחרות (אלא אם המפתח זהה, או אם אתם בטוחים שהמפתחות לא מוגדרים אף פעם לאותו משאב).

SQL סטנדרטי

SELECT
  labels.key as key,
  labels.value as value,
  SUM(cost) as cost
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
LEFT JOIN UNNEST(labels) as labels
GROUP BY key, value;

SQL מדור קודם

SELECT
  labels.key as key,
  labels.value as value,
  SUM(cost)
FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX]
GROUP BY key, value;
Row key value cost
1 null null 4$‎
2 app chocolate-masher 9$‎
3 app grapefruit-squeezer 11$‎
4 environment dev 5$‎
5 environment prod 15$‎
TOTAL 44$‎

שימו לב שהסכום הכולל גבוה מסכום החיוב.

שאילתות של הנחה תמורת התחייבות לשימוש

בשאילתות הבאות מוצגות דרכים שונות להצגת החיובים והזיכויים שמשויכים להנחות תמורת התחייבות לשימוש בנתוני החיוב המיוצאים. במאמר שיוך של הנחות תמורת התחייבות לשימוש מוסבר איך העמלות והזיכויים של ההתחייבויות משויכים לפרויקטים ולחשבון לחיוב ב-Cloud.

הצגת עמלות ההתחייבות

כדי להציג את עמלות ההתחייבות של ההנחות תמורת התחייבות לשימוש בנתוני החיוב המיוצאים, תוכלו להשתמש בשאילתה לדוגמה הבאה.

SQL סטנדרטי

SELECT
    invoice.month AS invoice_month,
    SUM(cost) as commitment_fees
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
WHERE LOWER(sku.description) LIKE "commitment%"
GROUP BY 1

הצגת הזיכויים תמורת התחייבות

כדי להציג את הזיכויים של ההנחות תמורת התחייבות לשימוש בנתוני החיוב המיוצאים, תוכלו להשתמש בשאילתה לדוגמה הבאה.

SQL סטנדרטי

SELECT
    invoice.month AS invoice_month,
    SUM(credits.amount) as CUD_credits
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
LEFT JOIN UNNEST(credits) AS credits
WHERE credits.type = "COMMITTED_USAGE_DISCOUNT"
GROUP BY 1

שימוש במסננים של היררכיית המשאבים לבדיקת ישות האב

אפשר להשתמש במסננים של היררכיית המשאבים כדי לצבור עלויות לפי רכיבים בהיררכיה, כמו פרויקטים, תיקיות וארגונים. השאילתות לדוגמה האלה מציגות שיטות לסיכום עלויות שמסוננות לפי רכיבים בהיררכיית משאבים, וכן להצגת ישות האב של הפרויקט.

דוגמה 1: סינון לפי שם המשאב

בדוגמה הזו מופיעות שאילתות לקיבוץ של העלויות לפי ישות האב של הפרויקט, וסינון לפי עלויות שנוצרו על סמך רכיב היררכי ספציפי בלבד, שאותו מזהים לפי השם של המשאב היחסי.

String method

SELECT
    invoice.month AS invoice_month,
    TO_JSON_STRING(project.ancestors) as ancestors,
    SUM(cost)
        + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0))
        AS net_cost
  FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq
  WHERE TO_JSON_STRING(project.ancestors) like "%resource_name\":\"folders/1234"
  GROUP BY invoice_month, ancestors
  ORDER BY invoice_month, ancestors

UNNEST method

SELECT
    invoice.month AS invoice_month,
    TO_JSON_STRING(project.ancestors) as ancestors,
    SUM(cost)
        + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0))
        AS net_cost
  FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor
  WHERE ancestor.resource_name = "folders/1234"
  GROUP BY invoice_month, ancestors
  ORDER BY invoice_month, ancestors

דוגמה 2: סינון לפי השם המוצג

בדוגמה הזו מופיעות שאילתות לקיבוץ של העלויות לפי ישות האב של הפרויקט, וסינון לפי עלויות שנוצרו על סמך רכיב היררכי ספציפי בלבד, שאותו מזהים לפי השם המוצג שהמשתמשים סיפקו.

String matching method

SELECT
    invoice.month AS invoice_month,
    TO_JSON_STRING(project.ancestors) as ancestors,
    SUM(cost)
        + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0))
        AS net_cost
  FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq
  WHERE TO_JSON_STRING(project.ancestors) like "%display_name\":\"MyFolderName%"
  GROUP BY invoice_month, ancestors
  ORDER BY invoice_month, ancestors

UNNEST method

SELECT
    invoice.month AS invoice_month,
    TO_JSON_STRING(project.ancestors) as ancestors,
    SUM(cost)
        + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0))
        AS net_cost
  FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor
  WHERE ancestor.display_name = "MyFolderName"
  GROUP BY invoice_month, ancestors
  ORDER BY invoice_month, ancestors

דוגמאות נוספות לשאילתות

שאילתות לפי פרויקט על עלויות וזיכויים בחודש חשבונית ספציפי

אם בחודש של החשבונית מציינים את החודש הספציפי יוני 2020 (בפורמט YYYYMM), השאילתה הזו תציג את העלויות והזיכויים בקיבוץ לפי פרויקט לצד התוויות של הפרויקט.

SQL סטנדרטי

SELECT
  project.name,
  TO_JSON_STRING(project.labels) as project_labels,
  sum(cost) as total_cost,
  SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) as total_credits
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
WHERE invoice.month = "202006"
GROUP BY 1, 2
ORDER BY 1;

SQL מדור קודם

TO_JSON_STRING not supported.
Row name project_labels total_cost total_credits
1 CTG - Dev [{"key":"ctg_p_env","value":"dev"}]‎ 79.140979 ‎-4.763796
2 CTG - Prod [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"eng"}]‎ 32.466272 ‎-3.073356
3 CTG - Sandbox [{"key":"ctg_p_env","value":"dev"}]‎ 0 0
4 CTG - Storage [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"data"}]‎ 7.645793 ‎-0.003761

דוגמאות לשאילתות של נתוני עלות מפורטים של שימוש

בקטע הזה מפורטות דוגמאות לשאילתות של נתוני עלות מפורטים של שימוש בחיוב ב-Cloud, שיוצאו ל-BigQuery.

מאחר שהסכימה המפורטת של עלות השימוש כוללת גם את כל השדות מהסכימה הסטנדרטית של עלות השימוש, הדוגמאות לשאילתות שסופקו עבור הנתונים הסטנדרטיים שמיוצאים ל-BigQuery מתאימות גם לנתונים המפורטים שמיוצאים. חשוב לשים לב שהדוגמאות של השאילתות הסטנדרטיות לא נכתבות כדי לאחזר נתונים ברמת המשאב, אשר מסופקים רק בייצוא של נתונים מפורטים של עלות השימוש. כשיוצרים שאילתות עבור נתונים מפורטים, אפשר להשתמש בשאילתה של הנתונים הסטנדרטיים בתור תבנית, ולאחר מכן לעדכן את שם הטבלה (Table name) ולהוסיף את כל השדות הזמינים בסכימה המפורטת של עלות השימוש.

למידע נוסף על הדרישות והמגבלות על הנתונים המפורטים שיוצאו, ראו סכימת נתוני העלות המפורטים של השימוש.

ערכים נפוצים שכלולים בדוגמאות לשאילתות של נתוני עלות מפורטים

בדוגמאות של השאילתות בקטע הזה נעשה שימוש בערך הבא עבור Table name: project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX

הצגת העלויות ברמת המשאב בחשבונית

השאילתות הבאות מדגימות שתי דרכים להצגת ערכי עלויות וזיכויים ברמת המשאב בחשבונית, באמצעות נתוני חיוב מיוצאים.

  • השדה total מסכם באופן ישיר את ערכי העלויות והזיכויים בנקודה צפה (floating point). כתוצאה מכך עלולות להיות שגיאות של עיגול הנקודה הצפה.
  • השדה total_exact ממיר את ערכי העלויות והזיכויים לערכי מיקרו לפני חישוב הסיכום, ואז מבצע המרה בחזרה לדולר אחרי החישוב כדי להימנע משגיאה של עיגול הנקודה הצפה.

סיכום העלויות לכל משאב, לכל חשבונית

בשאילתה הזו מוצג הסכום הכולל בחשבונית לכל משאב resource.name לחודש, כסכום של העלויות הקבועות, המיסים, ההתאמות והשגיאות בעיגול. העלויות שלא משויכות לאף פריט ברמת המשאב נצברות בשם null עבור אותו החודש.

SQL סטנדרטי

SELECT
  invoice.month,
  resource.name,
  SUM(cost)
    + SUM(IFNULL((SELECT SUM(c.amount)
                  FROM UNNEST(credits) c), 0))
    AS total,
  (SUM(CAST(cost * 1000000 AS int64))
    + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64))
                  FROM UNNEST(credits) c), 0))) / 1000000
    AS total_exact
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY 1, 2
ORDER BY 1 ASC, 2 ASC
;

לדוגמה, התוצאה של השאילתה הקודמת עשויה להיות:

Row month name total total_exact
1 201901 null ‎1005.004832999999984$ 1005.00$‎
2 201901 backend1 781.8499760000028$‎ 781.85$‎
3 201902 null 953.0034923645475983$‎ 953.03$‎
4 201902 backend1 992.3101739999999717$‎ 992.31$‎
5 201902 bitnami-launchpad-wordpress-1-wordpress 1.2817819999999998$‎ 1.28$‎

הצגת פירוט לפי סוג העלות לכל משאב, לכל חודש חיוב בחשבונית

השאילתה הזו מציגה את הסכומים הכוללים לכל cost_type לכל resource.name לחודש. סוגי העלויות כוללים עלויות קבועות, מיסים, התאמות ושגיאות עיגול. העלויות שלא משויכות לאף פריט ברמת המשאב נצברות בשם null עבור אותו החודש.

SQL סטנדרטי

SELECT
  invoice.month,
  cost_type,
  resource.name,
  SUM(cost)
    + SUM(IFNULL((SELECT SUM(c.amount)
                  FROM   UNNEST(credits) c), 0))
    AS total,
  (SUM(CAST(cost * 1000000 AS int64))
    + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64))
                  FROM UNNEST(credits) c), 0))) / 1000000
    AS total_exact
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY 1, 2, 3
ORDER BY 1 ASC, 2 ASC, 3 ASC
;

לדוגמה, התוצאה של השאילתה הקודמת עשויה להיות:

Row month cost_type name total total_exact
1 201901 regular null 1000.501209987994782$‎ 1000.50$‎
2 201901 rounding_error null $‎-0.500489920049387 ‎-0.50$
3 201901 tax null 10.000329958477891$‎ 10.00$‎
4 201901 adjustment null ‎-5.002572999387045$ ‎-5.00$
5 201901 regular backend1 410.998795012082947$‎ 411.00$‎
2 201901 rounding_error backend1 ‎-0.2404900489920378$ ‎-0.24$
3 201901 tax backend1 4.105840329977189$‎ 4.11$‎

פירוט העלויות של אשכולות Google Kubernetes Engine (GKE)

בקטע הזה מובאות דוגמאות לסינון העלויות של אשכול GKE בדוחות הייצוא של BigQuery. למידע נוסף על העלויות של אשכול GKE, אפשר לקרוא את המאמר הצגת פירוט של עלויות אשכול.

סינון העלויות ב-GKE

השאילתות הבאות לדוגמה ממחישות איך לסנן ולקבץ את עלויות GKE עבור סוגי המשאבים הנתמכים, לפי שם האשכול, מרחב השמות והתווית.

עלויות של אשכול GKE לפני זיכויים

SELECT
  SUM(cost) AS cost_before_credits,
  labels.value AS cluster_name
FROM `{{"<var>"}}BILLING_DATASET_TABLE{{"</var>"}}`
LEFT JOIN UNNEST(labels) as labels
  ON labels.key = "goog-k8s-cluster-name"
GROUP BY labels.value
;

עלויות GKE אחרי זיכויים לפי מרחב שמות

SELECT
  labels.value as namespace,
  SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS cost_after_credits,
FROM `{{"<var>"}}BILLING_DATASET_TABLE{{"</var>"}}`
LEFT JOIN UNNEST(labels) as labels
  ON labels.key = "k8s-namespace"
GROUP BY namespace
;

עלויות GKE לפי מק"טים

SELECT
  project.id AS project_id,
  labels.value AS cluster_name,
  sku.id AS sku_id,
  sku.description AS sku_description,
  SUM(cost) AS cost
FROM `{{"<var>"}}BILLING_DATASET_TABLE{{"</var>"}}`
JOIN UNNEST(labels) AS labels
  ON labels.key = "goog-k8s-cluster-name"
GROUP BY
  cluster_name, project_id, sku_description, sku_id
;

דוגמאות לשאילתות של נתוני תמחור

בקטע הזה מובאות דוגמאות שונות לשאילתות של נתוני תמחור בחיוב ב-Cloud שיוצאו ל-BigQuery.

ערכים נפוצים שכלולים בדוגמאות לשאילתות של תמחור

בדוגמאות לשאילתות בקטע הזה נעשה שימוש בערכים הבאים:

  • Table name:‏ project.dataset.cloud_pricing_export
  • SKU ID:‏ ‎2DA5-55D3-E679 (Cloud Run – Requests)

הצגת מחירי המחירון למק"ט ספציפי

בדוגמה הזו מופיעה שאילתה פשוטה שמציגה את הערך בשדה list_price של כל רמת תמחור למק"ט מסוים.

SQL סטנדרטי

SELECT sku.id,  sku.description, list_price.*
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

השדה _PARTITIONTIME נוצר באופן אוטומטי על ידי BigQuery ומייצג את התאריך שאליו שייכים הנתונים. במקום השדה _PARTITIONTIME, אפשר להשתמש בשדה שנוצר במפורש על ידי הייצוא בחיוב ב-Cloud, למשל pricing_as_of_time.

לפניכם אותה שאילתה שהוגדרה להשתמש בשדה pricing_as_of_time:

SELECT sku.id,  sku.description, list_price.*
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(pricing_as_of_time) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

תוצאות השאילתה:

Row id description pricing_unit aggregation_info.‎
aggregation_level
aggregation_info.‎
aggregation_interval
tiered_rates.‎
pricing_unit_quantity
tiered_rates.‎
start_usage_amount
tiered_rates.‎
usd_amount
tiered_rates.‎
account_currency_amount
1 2DA5-55D3-E679 Requests COUNT ACCOUNT MONTHLY 1000000 0 0 0
          1000000 2000000 0.4 0.4

הצגת מחירי המחירון למק"ט ספציפי, כולל תיאור של השירות

בשתי הדוגמאות בקטע הזה מופיעות שאילתות שמציגות את הערך בשדה list_price לכל רמת תמחור למק"ט מסוים, והן כוללות את תיאור המק"ט ואת תיאור השירות.

  • בדוגמה 1 מוצג מק"ט אחד לכל שורה, ורמות התמחור מופיעות כנתונים בתצוגת עץ.
  • בדוגמה 2 הנתונים מופיעים שלא בטבלת עץ, כדי להציג שורה אחת לכל מק"ט בכל רמת תמחור.

דוגמה 1: הצגת נתונים בתצוגת עץ

בדוגמה הזו מופיעה שאילתה למק"ט יחיד שנועדה להציג את הנתונים של השדה list_price. למק"ט הזה יש כמה רמות תמחור. הערכים בשדה list price מופיעים בשורות נפרדות, שמוצגות בתצוגת עץ מתחת לשורת מזהה המק"ט.

SQL סטנדרטי

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       list_price.*
FROM my-billing-admin-project.my_billing_dataset.cloud_pricing_export
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

תוצאות השאילתה:

Row sku_id sku_description service_id service_description aggregation_info.‎
aggregation_level
aggregation_info.‎
aggregation_interval
tiered_rates.‎
pricing_unit_quantity
tiered_rates.‎
start_usage_amount
tiered_rates.‎
usd_amount
tiered_rates.‎
account_currency_amount
1 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run ACCOUNT MONTHLY 1000000 0 0 0
            1000000 2000000 0.4 0.4

דוגמה 2: הצגת נתונים שלא בתצוגת עץ, המאוחדים באותה טבלה

בדוגמה הזו מופיעה שאילתה למק"ט יחיד שנועדה להציג את הערך בשדה list price. למק"ט יש כמה רמות תמחור. בשאילתה מוצג אופן השימוש באופרטור UNNEST כדי לשטח את המערך tiered_rates ולאחד את השדות לאותה טבלה, כך שתוצג שורה אחת לכל רמת תמחור.

SQL סטנדרטי

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       tier.*
FROM `my-billing-admin-project.my_billing_dataset.cloud_pricing_export` as sku_pricing, UNNEST (sku_pricing.list_price.tiered_rates) as tier
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

תוצאות השאילתה:

Row sku_id sku_description service_id service_description pricing_unit_quantity start_usage_amount usd_amount account_currency_amount
1 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run 1000000.0 0.0 0.0 0.0
2 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run 1000000.0 2000000.0 0.4 0.4

שימוש בטקסונומיית מוצרים ובטקסונומיה גיאוגרפית לשליחת שאילתות לגבי מק"טים

הצגת טקסונומיית המוצרים של מק"ט

בדוגמה הזו מופיעה שאילתה שמציגה את הרשימה product_taxonomy למק"ט מסוים, שבו ‎SKU ID = 2DA5-55D3-E679 (Cloud Run – Requests)‎.

SQL סטנדרטי

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       product_taxonomy
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

תוצאות השאילתה:

Row sku_id sku_description service_id service_description product_taxonomy
1 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run GCP
        Serverless
        Cloud Run
        Other

הצגת כל המק"טים בטקסונומיית מוצרים ספציפית

בדוגמה הזו מופיעה שאילתה שמציגה את כל המק"טים שתואמים לערך product_taxonomy מסוים. בשאילתה הזו הערך Serverless מצוין בשדה product taxonomy.

SQL סטנדרטי

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       product_taxonomy
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
     AND "Serverless" in UNNEST(product_taxonomy)
LIMIT 10
;

תוצאות השאילתה:

Row sku_id sku_description service_id service_description product_taxonomy
1 0160-BD7B-4C40 Cloud Tasks Network Intra Region Egress F3A6-D7B7-9BDA Cloud Tasks GCP
        Serverless
        Cloud Tasks
        Other
2 FE08-0A74-7AFD Cloud Tasks GOOGLE-API Egress F3A6-D7B7-9BDA Cloud Tasks GCP
        Serverless
        Cloud Tasks
        Other
3 A81A-32A2-B46D Task Queue Storage Salt Lake City F17B-412E-CB64 App Engine GCP
        Serverless
        GAE
        Other
        TaskQueue

הצגת כל המק"טים בטקסונומיה גיאוגרפית ספציפית ובטקסונומיית מוצרים ספציפית

בדוגמה הזו מופיעה שאילתה שמציגה את כל המק"טים שתואמים לאזור geo_taxonomy מסוים ולערך product_taxonomy מסוים, שבהם ‎region = us-east4‎ וגם ‎product_taxonomy = VMs On Demand‎.

SQL סטנדרטי

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       geo_taxonomy,
       product_taxonomy
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND "VMs On Demand" in UNNEST(product_taxonomy)
      AND geo_taxonomy.type = "REGIONAL"
      AND "us-east4" in UNNEST (geo_taxonomy.regions)
;

תוצאות השאילתה:

Row sku_id sku_description service_id service_description geo_taxonomy.type geo_taxonomy.regions product_taxonomy
1 9174-81EE-425B Sole Tenancy Premium for Sole Tenancy Instance Ram running in Virginia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Compute
            GCE
            VMs On Demand
            Memory: Per GB
2 C3B9-E891-85ED Sole Tenancy Instance Ram running in Virginia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Compute
            GCE
            VMs On Demand
            Memory: Per GB
3 6E2A-DCD9-87ED N1 Predefined Instance Ram running in Virginia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Compute
            GCE
            VMs On Demand
            Memory: Per GB

דוחות של עלויות ותמחור שזמינים במסוף Google Cloud