ניהול נתונים בטבלה
במאמר הזה מוסבר איך לנהל נתונים בטבלאות ב-BigQuery. אפשר לעבוד עם נתונים מטבלאות BigQuery בדרכים הבאות:
- טעינת נתונים לטבלה
- הוספה לנתוני הטבלה או החלפה שלהם
- עיון בנתונים בטבלה (או הצגתם בתצוגה מקדימה)
- שאילתת נתונים בטבלה
- שינוי נתונים בטבלה באמצעות שפת טיפול בנתונים (DML)
- העתקת נתוני הטבלה
- ייצוא נתוני טבלה
מידע על ניהול סכימות של טבלאות זמין במאמר שינוי סכימות של טבלאות.
לפני שמתחילים
מקצים תפקידים שמעניקים את ההרשאות הנדרשות למשתמשים שצריכים לבצע כל משימה במסמך הזה. ההרשאות שנדרשות (אם יש כאלה) לביצוע משימה מפורטות בקטע 'הרשאות נדרשות' של המשימה.
טעינת נתונים לטבלה
אפשר לטעון נתונים כשיוצרים טבלה, או ליצור טבלה ריקה ולטעון את הנתונים מאוחר יותר. כשמעלים נתונים, אפשר להשתמש בזיהוי אוטומטי של הסכימה עבור פורמטים נתמכים של נתונים, או לציין את הסכימה.
מידע נוסף על טעינת נתונים זמין במסמכי התיעוד לגבי הפורמט והמיקום של נתוני המקור:
מידע נוסף על טעינת נתונים מ-Cloud Storage
למידע נוסף על טעינת נתונים ממקור מקומי, ראו טעינת נתונים מקבצים מקומיים.
הוספה לנתוני הטבלה והחלפתם
אפשר להחליף נתונים בטבלה באמצעות פעולת טעינה או שאילתה. אפשר להוסיף נתונים לטבלה קיימת על ידי ביצוע פעולת טעינה והוספה, או על ידי הוספת תוצאות של שאילתה לטבלה.
מידע נוסף על הוספה לטבלה או על החלפה של טבלה בזמן טעינת נתונים זמין במסמכי התיעוד של פורמט נתוני המקור:
- הוספה לטבלה או החלפה של נתונים בטבלה באמצעות נתוני Avro
- הוספה לטבלה או החלפה של טבלה באמצעות נתוני CSV
- הוספה לטבלה או החלפה של טבלה באמצעות נתוני JSON
- הוספה לטבלה או החלפה של נתונים בטבלה באמצעות נתוני Parquet
- צירוף נתונים לטבלה או החלפת נתונים בטבלה באמצעות נתוני ORC
- הוספה לטבלה או החלפה של טבלה עם נתונים ממאגר נתונים
כדי להוסיף נתונים לטבלה או להחליף את הנתונים בטבלה באמצעות תוצאות של שאילתה, צריך לציין טבלת יעד ולהגדיר את פעולת הכתיבה לאחת מהאפשרויות הבאות:
- הוספה לטבלה – הוספת תוצאות השאילתה לטבלה קיימת.
- החלפת טבלה – החלפה של טבלה קיימת עם אותו שם באמצעות תוצאות השאילתה.
אפשר להשתמש בשאילתה הבאה כדי לצרף רשומות מטבלה אחת לטבלה אחרת:
INSERT INTO <projectID>.<datasetID>.<table1> ( <column2>, <column3>) (SELECT * FROM <projectID>.<datasetID>.<table2>)
מידע נוסף על שימוש בתוצאות של שאילתות כדי להוסיף נתונים או להחליף נתונים זמין במאמר כתיבת תוצאות של שאילתות.
עיון בנתוני הטבלה
אפשר לעיין בנתוני הטבלה או לקרוא אותם בדרכים הבאות:
- שימוש במסוף Cloud de Confiance
- שימוש בפקודה
bq headשל כלי שורת הפקודה של bq - קריאה לשיטת ה-API
tabledata.list - שימוש בספריות הלקוח
ההרשאות הנדרשות
כדי לקרוא נתונים מטבלה וממחיצה, צריך הרשאה לניהול זהויות והרשאות גישה (IAM) bigquery.tables.getData.
כל אחד מתפקידי ה-IAM המוגדרים מראש הבאים כולל את ההרשאות שדרושות לכם כדי לעיין בנתונים של טבלאות ומחיצות:
roles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.admin
אם יש לכם הרשאה bigquery.datasets.create, אתם יכולים לעיין בנתונים בטבלאות ובמחיצות של מערכי הנתונים שאתם יוצרים.
במאמר תפקידים והרשאות מוגדרים מראש יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.
עיון בנתוני הטבלה
כדי לעיין בנתוני הטבלה:
המסוף
נכנסים לדף BigQuery במסוף Cloud de Confiance .
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ואז בוחרים מערך נתונים.
לוחצים על סקירה כללית > טבלאות ובוחרים את הטבלה.
לוחצים על פרטים ורושמים את הערך שמופיע בשדה מספר השורות. יכול להיות שתצטרכו את הערך הזה כדי לשלוט בנקודת ההתחלה של התוצאות באמצעות כלי שורת הפקודה של BigQuery או ה-API.
לוחצים על תצוגה מקדימה. מוצג מדגם של מערך הנתונים.
שורת פקודה
מריצים את הפקודה bq head עם הדגל --max_rows כדי להציג רשימה של כל העמודות במספר מסוים של שורות בטבלה. אם לא מציינים ערך לפרמטר --max_rows, ברירת המחדל היא 100.
כדי לעיין בקבוצת משנה של עמודות בטבלה (כולל עמודות מוטמעות ועמודות חוזרות), משתמשים בדגל --selected_fields ומזינים את העמודות כרשימה מופרדת בפסיקים.
כדי לציין את מספר השורות שרוצים לדלג עליהן לפני הצגת נתוני הטבלה, משתמשים בדגל --start_row=integer (או בקיצור הדרך -s). ערך ברירת המחדל הוא 0. אפשר לאחזר את מספר השורות בטבלה באמצעות הפקודה bq show כדי לאחזר את פרטי הטבלה.
אם הטבלה שאתם מעיינים בה נמצאת בפרויקט שאינו פרויקט ברירת המחדל שלכם, צריך להוסיף את מזהה הפרויקט לפקודה בפורמט הבא:
project_id:dataset.table.
bq head \ --max_rows integer1 \ --start_row integer2 \ --selected_fields "columns" \ project_id:dataset.table
כאשר:
- integer1 הוא מספר השורות שיוצגו.
- integer2 הוא מספר השורות שיש לדלג עליהן לפני הצגת הנתונים.
- columns היא רשימה מופרדת בפסיקים של עמודות.
- project_id הוא מזהה הפרויקט.
- dataset הוא השם של מערך הנתונים שמכיל את הטבלה.
- table הוא שם הטבלה שרוצים לעיין בה.
דוגמאות:
מזינים את הפקודה הבאה כדי להציג את כל העמודות ב-10 השורות הראשונות ב-mydataset.mytable. mydataset נמצא בפרויקט ברירת המחדל שלכם.
bq head --max_rows=10 mydataset.mytable
מזינים את הפקודה הבאה כדי להציג את כל העמודות ב-100 השורות הראשונות ב-mydataset.mytable. mydataset נמצא בmyotherproject, ולא בפרויקט ברירת המחדל שלך.
bq head myotherproject:mydataset.mytable
מזינים את הפקודה הבאה כדי להציג רק את field1 ואת field2 ב-mydataset.mytable. הפקודה משתמשת בדגל --start_row כדי לדלג לשורה 100.
mydataset.mytable נמצא בפרויקט ברירת המחדל שלכם.
bq head --start_row 100 --selected_fields "field1,field2" mydataset.mytable
מכיוון שהפקודה bq head לא יוצרת עבודת שאילתה, פקודות bq head לא מופיעות בהיסטוריית השאילתות, ולא תחויבו עליהן.
API
כדי לעיין בנתונים של טבלה, צריך להפעיל את tabledata.list.
מציינים את שם הטבלה בפרמטר tableId.
אפשר להגדיר את הפרמטרים האופציונליים האלה כדי לשלוט בפלט:
-
maxResults— המספר המקסימלי של תוצאות להחזרה -
selectedFields— רשימה של עמודות להחזרה, מופרדות בפסיקים. אם לא מצוין, כל העמודות מוחזרות. -
startIndex– אינדקס מבוסס-אפס של שורת ההתחלה לקריאה
הערכים מוחזרים כשהם עטופים באובייקט JSON שצריך לנתח, כפי שמתואר במסמכי העיון של tabledata.list.
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#הוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery C# API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Go
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
בספריות הלקוח של Cloud ל-Go, החלוקה לדפים מתבצעת כברירת מחדל באופן אוטומטי, כך שלא צריך להטמיע אותה בעצמכם. לדוגמה:
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
ספריות הלקוח של Cloud ל-Node.js מבצעות אוטומטית חלוקה לדפים כברירת מחדל, כך שלא צריך להטמיע חלוקה לדפים בעצמכם. לדוגמה:
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי PHPהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery PHP API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
החלוקה לדפים מתבצעת באופן אוטומטי בספריות הלקוח של Cloud עבור PHP באמצעות פונקציית הגנרטור rows, שמביאה את הדף הבא של התוצאות במהלך האיטרציה.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Ruby
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Rubyהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Ruby API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
החלוקה לדפים מתבצעת באופן אוטומטי בספריות הלקוח ב-Cloud עבור Ruby באמצעות Table#data ו-Data#next.
שליחת שאילתות לנתונים בטבלה
אפשר להריץ שאילתות על נתוני BigQuery באמצעות אחד מסוגי משימות השאילתה הבאים:
משימות אינטראקטיביות של שאילתות. כברירת מחדל, BigQuery מריץ שאילתות כעבודות שאילתה אינטראקטיביות, שמיועדות להתחיל לפעול במהירות האפשרית.
משימות של שאילתות באצווה. לשאילתות אצווה יש עדיפות נמוכה יותר מאשר לשאילתות אינטראקטיביות. כשפרויקט או הזמנה משתמשים בכל משאבי ה-Compute הזמינים, סביר יותר שהשאילתות של אצווה יוכנסו לתור וישארו בו. אחרי שמתחילים להריץ שאילתה באצווה, היא פועלת כמו שאילתה אינטראקטיבית. מידע נוסף זמין במאמר בנושא תורים של שאילתות.
משימות של שאילתות מתמשכות. בעזרת המשימות האלה, השאילתה פועלת באופן רציף, ומאפשרת לכם לנתח נתונים נכנסים ב-BigQuery בזמן אמת, ואז לכתוב את התוצאות בטבלה ב-BigQuery או לייצא את התוצאות ל-Bigtable או ל-Pub/Sub. אתם יכולים להשתמש ביכולת הזו כדי לבצע משימות שרגישות לזמן, כמו יצירת תובנות ופעולה מיידית על סמך התובנות האלה, הפעלת מסקנות של למידת מכונה (ML) בזמן אמת ויצירת צינורות נתונים מבוססי-אירועים.
אפשר להריץ משימות של שאילתות בדרכים הבאות:
- לכתוב ולהריץ שאילתה במסוףCloud de Confiance .
- מריצים את הפקודה
bq queryבכלי שורת הפקודה של BigQuery. - קוראים באופן פרוגרמטי ל-method
jobs.queryאו ל-methodjobs.insertב-REST API של BigQuery. - שימוש בספריות הלקוח של BigQuery.
מידע נוסף על שאילתות בטבלאות BigQuery זמין במאמר מבוא לשאילתות בנתוני BigQuery.
בנוסף לשאילתות על נתונים שמאוחסנים בטבלאות BigQuery, אפשר להריץ שאילתות על נתונים שמאוחסנים מחוץ ל-BigQuery. מידע נוסף זמין במאמר מבוא למקורות נתונים חיצוניים.
שינוי נתוני הטבלה
אפשר לשנות נתונים בטבלה באמצעות הצהרות של שפת טיפול בנתונים (DML) ב-SQL. פקודות DML מאפשרות לעדכן, למזג, להוסיף ולמחוק שורות בטבלאות. לדוגמאות ולחומר עזר בנושא התחביר של כל סוג של פקודת DML, אפשר לעיין במאמר פקודות DML ב-GoogleSQL.
דיאלקט SQL מדור קודם לא תומך בהצהרות DML. כדי לעדכן או למחוק נתונים באמצעות SQL מדור קודם, צריך למחוק את הטבלה ואז ליצור אותה מחדש עם נתונים חדשים. לחלופין, אפשר לכתוב שאילתה שמשנה את הנתונים ולכתוב את תוצאות השאילתה בטבלת יעד חדשה.
העתקת נתוני הטבלה
כדי להעתיק טבלה:
- שימוש במסוף Cloud de Confiance
- שימוש בפקודה
bq cpשל כלי שורת הפקודה של bq - קריאה לשיטת ה-API
jobs.insertוהגדרה של משימת העתקה - שימוש בספריות הלקוח
מידע נוסף על העתקת טבלאות זמין במאמר בנושא העתקת טבלה.
ייצוא נתונים מטבלה
אפשר לייצא נתונים מטבלה לקטגוריה של Cloud Storage בפורמט CSV, JSON, Avro או Parquet (גרסת Preview). אי אפשר לייצא למחשב המקומי, אבל אפשר להוריד ולשמור את תוצאות השאילתה באמצעות מסוף Cloud de Confiance .
מידע נוסף זמין במאמר בנושא ייצוא נתונים מטבלה.
אבטחת טבלאות
כדי לשלוט בגישה לטבלאות ב-BigQuery, אפשר לעיין במאמר בנושא שליטה בגישה למשאבים באמצעות IAM.
המאמרים הבאים
- מידע נוסף על טעינת נתונים זמין במאמר מבוא לטעינת נתונים.
- מידע נוסף על שאילתות נתונים זמין במאמר מבוא לשאילתות נתונים ב-BigQuery.
- מידע נוסף על שינוי סכימות של טבלאות זמין במאמר שינוי סכימות של טבלאות.
- מידע נוסף על יצירה ושימוש בטבלאות זמין במאמר יצירה ושימוש בטבלאות.
- מידע נוסף על ניהול טבלאות זמין במאמר בנושא ניהול טבלאות.