ניהול טבלאות מקובצות
במאמר הזה מוסבר איך לקבל מידע על טבלאות מקובצות ב-BigQuery ואיך לשלוט בגישה אליהן.
למידע נוסף, קראו את המאמרים הבאים:
- מידע על תמיכה בטבלאות מסודרות באשכולות ב-BigQuery זמין במאמר מבוא לטבלאות מסודרות באשכולות.
- במאמר יצירת טבלאות מקובצות מוסבר איך ליצור טבלאות מקובצות.
לפני שמתחילים
כדי לקבל מידע על טבלאות, צריכה להיות לכם ההרשאה bigquery.tables.get. תפקידי ה-IAM המוגדרים מראש הבאים כוללים את ההרשאות bigquery.tables.get:
roles/bigquery.metadataViewerroles/bigquery.dataViewerroles/bigquery.dataOwnerroles/bigquery.dataEditorroles/bigquery.admin
בנוסף, אם למשתמש יש הרשאת bigquery.datasets.create, כשהוא יוצר מערך נתונים, הוא מקבל גישת bigquery.dataOwner אליו.
גישת bigquery.dataOwner מאפשרת למשתמש לקבל מידע על טבלאות במערך נתונים.
במאמר תפקידים והרשאות מוגדרים מראש יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.
שליטה בגישה לטבלאות מקובצות
כדי להגדיר גישה לטבלאות ולתצוגות, אפשר להעניק תפקיד IAM לישות ברמות הבאות, שמפורטות לפי סדר טווח המשאבים המותר (מהגדול ביותר לקטן ביותר):
- רמה גבוהה בGoogle Cloud היררכיית המשאבים, כמו רמת הפרויקט, התיקייה או הארגון
- ברמת מערך הנתונים
- רמת הטבלה או התצוגה
אפשר גם להגביל את הגישה לנתונים בטבלאות באמצעות השיטות הבאות:
הגישה לכל משאב שמוגן על ידי IAM היא מצטברת. לדוגמה, אם לישות אין גישה ברמה גבוהה כמו פרויקט, אפשר להעניק לישות גישה ברמת מערך הנתונים, ואז לישות תהיה גישה לטבלאות ולתצוגות במערך הנתונים. באופן דומה, אם לישות אין גישה ברמה הגבוהה או ברמת מערך הנתונים, אפשר להעניק לישות גישה ברמת הטבלה או התצוגה.
הענקת תפקידי IAM ברמה גבוהה יותר בGoogle Cloudהיררכיית המשאבים, כמו ברמת הפרויקט, התיקייה או הארגון, מעניקה לישות גישה למגוון רחב של משאבים. לדוגמה, אם נותנים לישות תפקיד ברמת הפרויקט, הישות מקבלת הרשאות שחלות על כל מערכי הנתונים בפרויקט.
הקצאת תפקיד ברמת מערך הנתונים מציינת את הפעולות שישות יכולה לבצע בטבלאות ובתצוגות במערך הנתונים הספציפי הזה, גם אם לישות אין גישה ברמה גבוהה יותר. במאמר שליטה בגישה למערכי נתונים מוסבר איך מגדירים בקרת גישה ברמת מערך הנתונים.
הקצאת תפקיד ברמת הטבלה או התצוגה המפורטת מציינת את הפעולות שישות יכולה לבצע בטבלאות ובתצוגות מפורטות ספציפיות, גם אם לישות אין גישה ברמה גבוהה יותר. במאמר שליטה בגישה לטבלאות ולתצוגות מוסבר איך מגדירים בקרת גישה ברמת הטבלה.
אפשר גם ליצור תפקידי IAM בהתאמה אישית. אם יוצרים תפקיד בהתאמה אישית, ההרשאות שמעניקים תלויות בפעולות הספציפיות שרוצים שהישות תוכל לבצע.
אי אפשר להגדיר הרשאת 'דחייה' במשאב כלשהו שמוגן על ידי IAM.
מידע נוסף על תפקידים והרשאות זמין במאמר הסבר על תפקידים במסמכי התיעוד של IAM ובמאמר תפקידים והרשאות של IAM ב-BigQuery.
קבלת מידע על טבלאות מקובצות
בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לחלונית Resources במסוף Google Cloud .
לוחצים על שם מערך הנתונים כדי להרחיב אותו, ואז לוחצים על שם הטבלה שרוצים להציג.
לוחצים על פרטים.
מוצגים פרטי הטבלה, כולל עמודות האשכולות.
SQL
בטבלאות מסודרות באשכולות, אפשר לשלוח שאילתה לעמודה CLUSTERING_ORDINAL_POSITION בתצוגה INFORMATION_SCHEMA.COLUMNS כדי למצוא את ההיסט של העמודה בטבלה, שמתחיל מ-1, בתוך עמודות האשכול של הטבלה:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
CREATE TABLE mydataset.data (column1 INT64, column2 INT64) CLUSTER BY column1, column2; SELECT column_name, clustering_ordinal_position FROM mydataset.INFORMATION_SCHEMA.COLUMNS;
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
המיקום הסידורי של האשכול הוא 1 עבור column1 ו-2 עבור column2.
מטא-נתונים נוספים של הטבלה זמינים בתצוגות TABLES, TABLE_OPTIONS, COLUMNS ו-COLUMN_FIELD_PATH ב-INFORMATION_SCHEMA.
BQ
מריצים את הפקודה bq show כדי להציג את כל המידע בטבלה. משתמשים בדגל --schema כדי להציג רק מידע על סכימת הטבלה. אפשר להשתמש בדגל --format כדי לשלוט בפלט.
אם אתם מקבלים מידע על טבלה בפרויקט שאינו פרויקט ברירת המחדל שלכם, צריך להוסיף את מזהה הפרויקט למערך הנתונים בפורמט הבא: project_id:dataset.
bq show \ --schema \ --format=prettyjson \ PROJECT_ID:DATASET.TABLE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
DATASET: השם של מערך הנתונים -
TABLE: שם הטבלה
דוגמאות:
מזינים את הפקודה הבאה כדי להציג את כל המידע על myclusteredtable ב-mydataset. mydataset בפרויקט ברירת המחדל.
bq show --format=prettyjson mydataset.myclusteredtable
הפלט אמור להיראות כך:
{
"clustering": {
"fields": [
"customer_id"
]
},
...
}
API
מבצעים קריאה לשיטה bigquery.tables.get ומספקים את כל הפרמטרים הרלוונטיים.
הצגת רשימה של טבלאות מסודרות באשכולות במערך נתונים
ההרשאות שנדרשות כדי לראות את רשימת הטבלאות המקובצות והשלבים לראות אותן זהים לאלה של טבלאות רגילות. מידע נוסף זמין במאמר בנושא הצגת רשימת הטבלאות במערך נתונים.
שינוי הגדרות האשכול
אפשר לשנות או להסיר את הגדרות האשכולות של טבלה, או לשנות את קבוצת העמודות שמשויכות לאשכול בטבלה שמשויכת לאשכול. השיטה הזו לעדכון קבוצת העמודות של האשכולות שימושית לטבלאות שנעשה בהן שימוש בהוספות רציפות של נתונים, כי אי אפשר להחליף את הטבלאות האלה בקלות בשיטות אחרות.
כדי להחיל הגדרת אשכול חדשה על טבלאות לא מחולקות או מחולקות למחיצות, פועלים לפי השלבים הבאים.
בכלי bq, מעדכנים את הגדרת האשכולות של הטבלה כך שתתאים לאשכולות החדשים:
bq update --clustering_fields=CLUSTER_COLUMN DATASET.ORIGINAL_TABLE
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_COLUMN: העמודה שלפיה מתבצעת ההצבה באשכולות – לדוגמה,mycolumn -
DATASET: השם של מערך הנתונים שמכיל את הטבלה, למשלmydataset -
ORIGINAL_TABLE: השם של הטבלה המקורית, למשלmytable
אפשר גם לקרוא ל-API method
tables.updateאוtables.patchכדי לשנות את מפרט האשכולות.-
כדי לאגד את כל השורות לפי הגדרת האשכול החדשה, מריצים את ההצהרה הבאה
UPDATE:UPDATE DATASET.ORIGINAL_TABLE SET CLUSTER_COLUMN=CLUSTER_COLUMN WHERE true
המאמרים הבאים
- מידע על שליחת שאילתות לטבלאות מסודרות באשכולות זמין במאמר בנושא שליחת שאילתות לטבלאות מסודרות באשכולות.
- סקירה כללית של התמיכה בטבלאות מחולקות למחיצות ב-BigQuery זמינה במאמר מבוא לטבלאות מחולקות למחיצות.
- במאמר יצירת טבלאות עם חלוקה למחיצות מוסבר איך ליצור טבלאות כאלה.