התצוגה SCHEMATA_REPLICAS
התצוגה INFORMATION_SCHEMA.SCHEMATA_REPLICAS מכילה מידע על העתקים של סכימות.
התפקיד הנדרש
כדי לקבל את ההרשאות שנדרשות להפעלת שאילתה בתצוגה INFORMATION_SCHEMA.SCHEMATA_REPLICAS, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM BigQuery Data Viewer (roles/bigquery.dataViewer) בפרויקט.
להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
סכימה
התצוגהINFORMATION_SCHEMA.SCHEMATA_REPLICAS מכילה מידע על העתקים של מערכי נתונים.
לתצוגה INFORMATION_SCHEMA.SCHEMATA_REPLICAS יש את הסכימה הבאה:
| עמודה | סוג | תיאור |
|---|---|---|
catalog_name |
STRING |
מזהה הפרויקט שמכיל את מערך הנתונים. |
schema_name |
STRING |
המזהה של מערך הנתונים. |
replica_name |
STRING |
השם של הרפליקה. |
location |
STRING |
האזור או מספר האזורים שבהם נוצרה הרפליקה. |
replica_primary_assigned |
BOOL |
אם הערך הוא TRUE, הרפליקה היא בעלת ההקצאה הראשית. כשמשנים רפליקה משנית לרפליקה ראשית, המצב הזה נכנס לתוקף באופן מיידי. |
replica_primary_assignment_complete |
BOOL |
אם הערך הוא TRUE, ההקצאה הראשית הושלמה.
אם הערך הוא FALSE, הרפליקה אינה (עדיין) הרפליקה הראשית, גם אם replica_primary_assigned שווה ל-TRUE. מידע על משך הזמן שנדרש כדי שרפליקה משנית תהפוך לרפליקה ראשית זמין במאמר קידום הרפליקה המשנית. |
creation_time |
TIMESTAMP |
מועד היצירה של העותק. כשמשכפלים את הרפליקה בפעם הראשונה, היא לא מסונכרנת באופן מלא עם הרפליקה הראשית עד ש-creation_complete שווה ל-TRUE. הערך של
creation_time מוגדר לפני ש-creation_complete שווה ל-
TRUE. |
creation_complete |
BOOL |
אם הערך הוא TRUE, הסנכרון המלא הראשוני של הרפליקה הראשית לרפליקה המשנית הושלם. |
replication_time |
TIMESTAMP |
הערך של יכול להיות שחלק מהטבלאות ברפליקה יהיו עדכניות יותר מחותמת הזמן הזו. הערך הזה מוצג רק באזור המשני. אם מערך הנתונים מכיל טבלה עם נתונים בזמן אמת, הערך של |
sync_status |
JSON |
הסטטוס של הסנכרון בין הרפליקות הראשיות והמשניות של מערכי נתונים של רפליקציה בין אזורים ושל תוכנית התאוששות מאסון (DR). הפונקציה מחזירה NULL אם העותק הוא עותק ראשי או אם מערך הנתונים לא משתמש בשכפול. |
replica_primary_assignment_time |
TIMESTAMP |
השעה שבה הופעל המעבר הראשי לרפליקה. |
replica_primary_assignment_completion_time |
TIMESTAMP |
השעה שבה הושלם המעבר הראשי אל הרפליקה. |
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.
היקף ותחביר
שאילתות שמופעלות על התצוגה הזו חייבות לכלול מסנן אזור. בטבלה הבאה מוסבר היקף האזור בתצוגה הזו:
| שם התצוגה | היקף המשאבים | היקף האזור |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS[_BY_PROJECT] |
ברמת הפרויקט | REGION |
-
אופציונלי:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
REGION: כל שם של אזור במערך נתונים. לדוגמה,`region-us`.
דוגמאות
בקטע הזה מפורטות דוגמאות לשאילתות של התצוגה המפורטת INFORMATION_SCHEMA.SCHEMATA_REPLICAS.
דוגמה: הצגת רשימה של כל קבוצות הנתונים המשוכפלות באזור מסוים
בדוגמה הבאה מפורטים כל מערכי הנתונים המשוכפלים באזור US:
SELECT * FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS;
התוצאה אמורה להיראות כך:
+---------------------+-------------------+--------------+----------+--------------------------+-------------------------------------+---------------------+-------------------+------------------+ | catalog_name | schema_name | replica_name | location | replica_primary_assigned | replica_primary_assignment_complete | creation_time | creation_complete | replication_time | +---------------------+-------------------+--------------+----------+--------------------------+-------------------------------------+---------------------+-------------------+------------------+ | myproject | replica1 | us-east7 | us-east7 | true | true | 2023-04-17 20:42:45 | true | NULL | | myproject | replica1 | us-east4 | us-east4 | false | false | 2023-04-17 20:44:26 | true | NULL | +---------------------+-------------------+--------------+----------+--------------------------+-------------------------------------+---------------------+-------------------+------------------+
דוגמה: הצגת רשימה של מערכי נתונים משוכפלים והעותק הראשי של כל אחד מהם
בדוגמה הבאה מוצגת רשימה של כל מערכי הנתונים המשוכפלים והרפליקה הראשית שלהם באזור US:
SELECT catalog_name, schema_name, replica_name AS primary_replica_name, location AS primary_replica_location, replica_primary_assignment_complete AS is_primary, FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS WHERE replica_primary_assignment_complete = TRUE AND replica_primary_assigned = TRUE;
התוצאה אמורה להיראות כך:
+---------------------+-------------+----------------------+--------------------------+------------+ | catalog_name | schema_name | primary_replica_name | primary_replica_location | is_primary | +---------------------+-------------+----------------------+--------------------------+------------+ | myproject | my_schema1 | us-east4 | us-east4 | true | | myproject | my_schema2 | us | US | true | | myproject | my_schema2 | us | US | true | +---------------------+-------------+----------------------+--------------------------+------------+
דוגמה: הצגת רשימה של מערכי נתונים משוכפלים והסטטוס של העותקים שלהם
בדוגמה הבאה מפורטים כל מערכי הנתונים המשוכפלים ומצבי השכפול שלהם:
SELECT catalog_name, schema_name, replica_name, CASE WHEN (replica_primary_assignment_complete = TRUE AND replica_primary_assigned = TRUE) THEN 'PRIMARY' WHEN (replica_primary_assignment_complete = FALSE AND replica_primary_assigned = FALSE) THEN 'SECONDARY' ELSE 'PENDING' END AS replica_state, FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS;
התוצאה אמורה להיראות כך:
+---------------------+-------------+--------------+---------------+ | catalog_name | schema_name | replica_name | replica_state | +---------------------+-------------+--------------+---------------+ | myproject | my_schema1 | us-east4 | PRIMARY | | myproject | my_schema1 | my_replica | SECONDARY | +---------------------+-------------+--------------+---------------+
דוגמה: ציין מתי כל רפליקה נוצרה והאם המילוי הראשוני של הנתונים הושלם
בדוגמה הבאה מוצגת רשימה של כל העותקים המשוכפלים ומועד היצירה שלהם. כשיוצרים רפליקה משנית, הנתונים שלה לא מסונכרנים באופן מלא עם הרפליקה הראשית עד ש-creation_complete שווה ל-TRUE.
SELECT catalog_name, schema_name, replica_name, creation_time AS creation_time, FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS WHERE creation_complete = TRUE;
התוצאה אמורה להיראות כך:
+---------------------+-------------+--------------+---------------------+ | catalog_name | schema_name | replica_name | creation_time | +---------------------+-------------+--------------+---------------------+ | myproject | my_schema1 | us-east4 | 2023-06-15 00:09:11 | | myproject | my_schema2 | us | 2023-06-15 00:19:27 | | myproject | my_schema2 | my_replica2 | 2023-06-15 00:19:50 | | myproject | my_schema1 | my_replica | 2023-06-15 00:16:19 | +---------------------+-------------+--------------+---------------------+
דוגמה: הצגת הזמן האחרון שסונכרן
בדוגמה הבאה מוצגת חותמת הזמן העדכנית ביותר שבה הרפליקה המשנית הגיעה למצב זהה לרפליקה הראשית.
צריך להריץ את השאילתה הזו באזור שמכיל את הרפליקה המשנית. יכול להיות שחלק מהטבלאות במערך הנתונים יקדימו את זמן השכפול שדווח.
SELECT catalog_name, schema_name, replica_name, -- Calculate the replication lag in seconds. TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), replication_time, SECOND) AS replication_lag_seconds, -- RLS -- Calculate the replication lag in minutes. TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), replication_time, MINUTE) AS replication_lag_minutes, -- RLM -- Show the last sync time for easier interpretation. replication_time AS secondary_replica_fully_synced_as_of_time, FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS
התוצאה אמורה להיראות כך:
+---------------------+-------------+--------------+-----+-----+-------------------------------------------+ | catalog_name | schema_name | replica_name | rls | rlm | secondary_replica_fully_synced_as_of_time | +---------------------+-------------+--------------+-----+-----+-------------------------------------------+ | myproject | my_schema1 | us-east4 | 23 | 0 | 2023-06-15 00:18:49 | | myproject | my_schema2 | us | 67 | 1 | 2023-06-15 00:22:49 | | myproject | my_schema1 | my_replica | 11 | 0 | 2023-06-15 00:28:49 | | myproject | my_schema2 | my_replica2 | 125 | 2 | 2023-06-15 00:29:20 | +---------------------+-------------+--------------+-----+-----+-------------------------------------------+
הערך NULL מציין שהרפליקה המשנית אף פעם לא סונכרנה באופן מלא עם הרפליקה הראשית.