התצוגה 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.

קבלת מדדי שימוש של חילופי הנתונים

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

  1. מוצאים את כל רשומות הנתונים ששייכות למאגר הנתונים שלכם.
  2. מאחזרים את קבוצת הנתונים של המקור שמצורפת לכרטיס המוצר.
  3. כדי לראות את מדדי השימוש של המאגר, אתם יכולים להשתמש בשאילתה הבאה:
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"}]           |
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+