התצוגה INFORMATION_SCHEMA.SHARED_DATASET_USAGE
התצוגה INFORMATION_SCHEMA.SHARED_DATASET_USAGE מכילה את המטא-נתונים כמעט בזמן אמת על צריכת הטבלאות של מערך הנתונים המשותף. כדי להתחיל לשתף את הנתונים בין ארגונים, קראו את המאמר BigQuery sharing (לשעבר Analytics Hub).
התפקידים הנדרשים
כדי לקבל את ההרשאה שנדרשת לשליחת שאילתות לתצוגה INFORMATION_SCHEMA.SHARED_DATASET_USAGE, צריך לבקש מהאדמין להקצות לכם את התפקיד BigQuery Data Owner (roles/bigquery.dataOwner) ב-IAM בפרויקט המקור.
להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה bigquery.datasets.listSharedDatasetUsage, שנדרשת כדי לשלוח שאילתות לתצוגה INFORMATION_SCHEMA.SHARED_DATASET_USAGE.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.
סכימה
הנתונים הבסיסיים מחולקים לפי העמודהjob_start_time ומקובצים לפי project_id ו-dataset_id.
הסכימה של INFORMATION_SCHEMA.SHARED_DATASET_USAGE היא:
| שם העמודה | סוג הנתונים | ערך |
|---|---|---|
project_id
|
STRING
|
(עמודת אשכול) מזהה הפרויקט שמכיל את מערך הנתונים המשותף. |
dataset_id
|
STRING
|
(עמודת אשכולות) המזהה של קבוצת הנתונים המשותפת. |
table_id
|
STRING
|
המזהה של הטבלה שאליה ניגשו. |
data_exchange_id
|
STRING
|
נתיב המשאב של החלפת הנתונים. |
listing_id
|
STRING
|
נתיב המשאב של כרטיס המוצר. |
job_start_time
|
TIMESTAMP
|
(עמודת חלוקה למחיצות) שעת ההתחלה של המשימה. |
job_end_time
|
TIMESTAMP
|
שעת הסיום של המשימה. |
job_id
|
STRING
|
מזהה המשימה. לדוגמה, bquxjob_1234. |
job_project_number
|
INTEGER
|
מספר הפרויקט שהמשימה שייכת אליו. |
job_location
|
STRING
|
מיקום המשרה. |
linked_project_number
|
INTEGER
|
מספר הפרויקט של המנוי. |
linked_dataset_id
|
STRING
|
המזהה של קבוצת הנתונים המקושרת של המנוי. |
subscriber_org_number
|
INTEGER
|
מספר הארגון שבו המשימה הופעלה. זה מספר הארגון של המנוי. השדה הזה ריק בפרויקטים שאין להם ארגון. |
subscriber_org_display_name
|
STRING
|
מחרוזת קריאה לאנשים שמתייחסת לארגון שבו המשימה הופעלה. זה מספר הארגון של המנוי. השדה הזה ריק בפרויקטים שאין להם ארגון. |
job_principal_subject
|
STRING
|
המזהה הראשי (מזהה אימייל של משתמש, חשבון שירות, מזהה אימייל של קבוצה, דומיין) של משתמשים שמריצים משימות ושאילתות על מערכי נתונים מקושרים. |
num_rows_processed
|
INTEGER
|
המספר הכולל של השורות שעובדו על ידי מסדי הנתונים הטבלאיים שאליהם מפנה המשאב שנשלחה אליו שאילתה. |
total_bytes_processed
|
INTEGER
|
מספר הבייטים הכולל שעובדו על ידי מסדי הנתונים הטבלאיים שאליהם מפנה המשאב שנשלחה אליו שאילתה. |
shared_resource_id
|
STRING
|
המזהה של המשאב ששלחתם אליו שאילתה (טבלה, תצוגה או שגרת משנה). |
shared_resource_type
|
STRING
|
סוג המשאב שנשלחה אליו שאילתה. לדוגמה, TABLE, EXTERNAL_TABLE, VIEW, MATERIALIZED_VIEW, TABLE_VALUED_FUNCTION או SCALAR_FUNCTION.
|
referenced_tables
|
RECORD REPEATED
|
מכילה את השדות project_id, dataset_id, table_id ו-processed_bytes של מסד הנתונים הטבלאי.
|
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע במקום להשתמש בתו כללי לחיפוש (SELECT *). ציון מפורש של העמודות מונע את קריסת השאילתות אם הסכימה הבסיסית משתנה.
שמירת נתונים
התצוגה INFORMATION_SCHEMA.SHARED_DATASET_USAGE מכילה משימות שפועלות והיסטוריית משימות מ-180 הימים האחרונים.
היקף ותחביר
שאילתות בתצוגה הזו חייבות לכלול מזהה אזור. אם לא מציינים מזהה אזורי, המטא-נתונים מאוחזרים מהאזור של ארה"ב. בטבלה הבאה מוסבר היקף האזור של התצוגה הזו:
| שם התצוגה המפורטת | היקף המשאבים | היקף האזור |
|---|---|---|
[PROJECT_ID.]INFORMATION_SCHEMA.SHARED_DATASET_USAGE |
רמת הפרויקט | אזור בארה"ב |
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE |
רמת הפרויקט | REGION |
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud (אופציונלי). אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
REGION: כל שם של אזור של מערך נתונים. לדוגמה,`region-us`.
דוגמאות
כדי להריץ את השאילתה בפרויקט אחר, שהוא לא פרויקט ברירת המחדל, מוסיפים את מזהה הפרויקט בפורמט הבא:
PROJECT_ID.region-REGION_NAME.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
לדוגמה, myproject.region-us.INFORMATION_SCHEMA.SHARED_DATASET_USAGE.
קבלת המספר הכולל של המשימות שבוצעו בכל הטבלאות המשותפות
בדוגמה הבאה מחושב המספר הכולל של משימות שהופעלו על ידי מנויים בפרויקט:
SELECT COUNT(DISTINCT job_id) AS num_jobs FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
התוצאה אמורה להיראות כך:
+------------+ | num_jobs | +------------+ | 1000 | +------------+
כדי לבדוק את סך כל המשימות שהופעלו על ידי מנויים, משתמשים בסעיף WHERE:
- למערכי נתונים, צריך להשתמש ב-
WHERE dataset_id = "...". - לטבלאות, צריך להשתמש ב-
WHERE dataset_id = "..." AND table_id = "...".
קבלת הטבלה הכי נפוצה בשימוש על סמך מספר השורות שעובדו
השאילתה הבאה מחשבת את הטבלה הכי נפוצה בשימוש, על סמך מספר השורות שעובדו על ידי המנויים.
SELECT dataset_id, table_id, SUM(num_rows_processed) AS usage_rows FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE GROUP BY 1, 2 ORDER BY 3 DESC LIMIT 1
הפלט אמור להיראות כך:
+---------------+-------------+----------------+ | dataset_id | table_id | usage_rows | +---------------+-------------+----------------+ | mydataset | mytable | 15 | +---------------+-------------+----------------+
איך מוצאים את הארגונים שצורכים הכי הרבה מהטבלאות שלכם
השאילתה הבאה מחשבת את המנויים המובילים על סמך מספר הבייטים שעובדו מהטבלאות שלכם. אפשר גם להשתמש בעמודה num_rows_processed כמדד.
SELECT subscriber_org_number, ANY_VALUE(subscriber_org_display_name) AS subscriber_org_display_name, SUM(total_bytes_processed) AS usage_bytes FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE GROUP BY 1
הפלט אמור להיראות כך:
+--------------------------+--------------------------------+----------------+ |subscriber_org_number | subscriber_org_display_name | usage_bytes | +-----------------------------------------------------------+----------------+ | 12345 | myorganization | 15 | +--------------------------+--------------------------------+----------------+
למנויים בלי ארגון, אפשר להשתמש ב-job_project_number במקום ב-subscriber_org_number.
קבלת מדדי שימוש של חילופי הנתונים
אם המרכז להחלפת נתונים ומערך הנתונים של המקור נמצאים בפרויקטים שונים, בצעו את השלבים הבאים כדי להציג את מדדי השימוש של המרכז להחלפת נתונים:
- מוצאים את כל רשומות הנתונים ששייכות למאגר הנתונים שלכם.
- מאחזרים את קבוצת הנתונים של המקור שמצורפת לכרטיס המוצר.
- כדי לראות את מדדי השימוש של המאגר, אתם יכולים להשתמש בשאילתה הבאה:
SELECT * FROM source_project_1.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE dataset_id='source_dataset_id' AND data_exchange_id="projects/4/locations/us/dataExchanges/x1" UNION ALL SELECT * FROM source_project_2.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE dataset_id='source_dataset_id' AND data_exchange_id="projects/4/locations/us/dataExchanges/x1"
קבלת מדדי שימוש בתצוגות משותפות
השאילתה הבאה מציגה את מדדי השימוש של כל התצוגות המשותפות בפרויקט:
SELECT project_id, dataset_id, table_id, num_rows_processed, total_bytes_processed, shared_resource_id, shared_resource_type, referenced_tables FROM `myproject`.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE shared_resource_type = 'VIEW'
הפלט אמור להיראות כך:
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| project_id | dataset_id | table_id | num_rows_processed | total_bytes_processed | shared_resource_id | shared_resource_type | referenced_tables |
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| myproject | source_dataset | view1 | 6 | 38 | view1 | VIEW | [{"project_id":"myproject","dataset_id":"source_dataset","table_id":"test_table","processed_bytes":"21"},
{"project_id":"bq-dataexchange-exp","dataset_id":"other_dataset","table_id":"other_table","processed_bytes":"17"}] |
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
קבלת מדדי שימוש של פונקציות משותפות עם ערכי טבלה
השאילתה הבאה מציגה את מדדי השימוש של כל הפונקציות המשותפות עם ערכי טבלה שקיימות בפרויקט:
SELECT project_id, dataset_id, table_id, num_rows_processed, total_bytes_processed, shared_resource_id, shared_resource_type, referenced_tables FROM `myproject`.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE shared_resource_type = 'TABLE_VALUED_FUNCTION'
הפלט אמור להיראות כך:
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+
| project_id | dataset_id | table_id | num_rows_processed | total_bytes_processed | shared_resource_id | shared_resource_type | referenced_tables |
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+
| myproject | source_dataset | | 3 | 45 | provider_exp | TABLE_VALUED_FUNCTION | [{"project_id":"myproject","dataset_id":"source_dataset","table_id":"test_table","processed_bytes":"45"}] |
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+