בדף זה מפורטות כמה דוגמאות לשאילתות של נתוני החיוב ב-Cloud שיוצאו ואוחסנו ב-BigQuery.
למידע נוסף על ייצוא נתוני החיוב ל-BigQuery, תוכלו לקרוא את הסקירה הכללית ואת המידע בנושא מגבלות.
ציון שם הטבלה לשימוש בשאילתות
בדוגמאות הבאות עליכם לציין את שם הטבלה בקטע FROM
כדי לשלוח שאילתות לגבי נתוני החיוב ב-Cloud אל BigQuery. שם הטבלה נקבע לפי שלושה ערכים:
project.dataset.BQ_table_name.
- project זהו המזהה שלהפרויקט שהגדרתם ב-Cloud שמכיל את מערך הנתונים שלכם ב-BigQuery.
- dataset זהו השם של מערך הנתונים שהגדרתם ב-BigQuery. הוא צריך להכיל את הטבלאות ב-BigQuery שמכילות את נתוני החיוב ב-Cloud.
- BQ_table_name זהו השם של הטבלה ב-BigQuery שמכילה את נתוני החיוב ב-Cloud המיוצאים, שעליהם מבצעים את השאילתה.
יש שלוש טבלאות ב-BigQuery שמכילות נתוני חיוב ב-Cloud:
- טבלת נתוני עלות סטנדרטיים של שימוש:
במערך הנתונים של BigQuery, הטבלה נקראת
gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
. - טבלת נתוני עלות מפורטים של שימוש:
במערך הנתונים של BigQuery, הטבלה נקראת
gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
. - טבלת נתוני תמחור:
במערך הנתונים של BigQuery, הטבלה נקראת
cloud_pricing_export
.
- טבלת נתוני עלות סטנדרטיים של שימוש:
במערך הנתונים של BigQuery, הטבלה נקראת
שאילתות לדוגמה לפי סוג הנתונים לחיוב ב-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 |
שימוש בטקסונומיית מוצרים ובטקסונומיה גיאוגרפית לשליחת שאילתות לגבי מק"טים
- טקסונומיית מוצרים היא רשימה של קטגוריות מוצרים שחלות על המק"ט, למשל Serverless, Cloud Run ו-VMs On Demand.
- טקסונומיה גיאוגרפית היא המטא-נתונים הגיאוגרפיים שחלים על מק"ט ומכילים ערכים של סוג ואזור.
הצגת טקסונומיית המוצרים של מק"ט
בדוגמה הזו מופיעה שאילתה שמציגה את הרשימה 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 |
נושאים קשורים
נושאים שקשורים לנתוני חיוב ב-Cloud שיוצאו
- הגדרת הייצוא של נתוני החיוב ב-Cloud ל-BigQuery
- הסבר על טבלאות נתוני החיוב ב-Cloud ב-BigQuery
- המחשה חזותית של ההוצאות לאורך זמן באמצעות Data Studio
דוחות של עלויות ותמחור שזמינים במסוף Google Cloud
- הצגת דוחות החיוב ב-Cloud ומגמות של עלויות
- הצגה והורדה של פרטי העלויות של החשבוניות ודפי החשבון
- הצגה והורדה של המחירים בשירותי הענן של Google
- בדיקת החיסכון בעזרת דוחות עם פירוט העלויות
- ניתוח היעילות של ההנחות תמורת התחייבות לשימוש
- הצגת היסטוריית התשלומים והעלויות