התצוגה INFORMATION_SCHEMA.SHARED_DATASET_USAGE
בתצוגה INFORMATION_SCHEMA.SHARED_DATASET_USAGE מוצגים מטא-נתונים כמעט בזמן אמת על השימוש בטבלאות של מערך הנתונים המשותף. כדי להתחיל לשתף את הנתונים בין ארגונים, אפשר לעיין במאמר בנושא BigQuery sharing (לשעבר Analytics Hub).
התפקידים הנדרשים
כדי לקבל את ההרשאה שנדרשת לשליחת שאילתה לתצוגה INFORMATION_SCHEMA.SHARED_DATASET_USAGE, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM BigQuery Data Owner (הבעלים של נתוני BigQuery) בפרויקט המקור.roles/bigquery.dataOwner
להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה bigquery.datasets.listSharedDatasetUsage, שנדרשת כדי לשלוח שאילתות לתצוגה INFORMATION_SCHEMA.SHARED_DATASET_USAGE.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
סכימה
נתוני הבסיס מחולקים למחיצות לפי העמודהjob_start_time ומקובצים לפי project_id ו-dataset_id.
ל-INFORMATION_SCHEMA.SHARED_DATASET_USAGE יש את הסכימה הבאה:
| שם העמודה | סוג הנתונים | ערך |
|---|---|---|
project_id
|
STRING
|
(Clustering column) מזהה הפרויקט שמכיל את מערך הנתונים המשותף. |
dataset_id
|
STRING
|
(Clustering column) המזהה של מערך הנתונים המשותף. |
table_id
|
STRING
|
המזהה של הטבלה שאליה מתבצעת גישה. |
data_exchange_id
|
STRING
|
נתיב המשאב של חילופי הנתונים. |
listing_id
|
STRING
|
נתיב המשאב של כרטיס המוצר. |
job_start_time
|
TIMESTAMP
|
(Partitioning column) שעת ההתחלה של העבודה הזו. |
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: מזהה הפרויקט ב- Cloud de Confiance . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
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"}] |
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+