שימוש בכלי bq
במדריך הזה תלמדו איך להשתמש ב-bq, כלי ממשק שורת הפקודה (CLI) מבוסס Python ל-BigQuery, כדי ליצור מערך נתונים, לטעון נתונים לדוגמה ולשאול שאילתות על טבלאות. אחרי שתשלימו את המדריך הזה, תכירו את bq ותדעו איך לעבוד עם BigQuery באמצעות CLI.
במאמרי העזרה של כלי שורת הפקודה של BigQuery יש רשימה מלאה של פקודות bq ודגלים.
לחצו על תראו לי איך כדי לקרוא הסבר מפורט על המשימה ישירות במסוף Google Cloud :
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
מפעילים את BigQuery API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםבפרויקטים חדשים, BigQuery API מופעל באופן אוטומטי.
- אופציונלי: מפעילים חיוב בפרויקט. גם אם אתם לא רוצים להפעיל חיוב או לספק כרטיס אשראי, השלבים שבמסמך הזה עדיין רלוונטיים. BigQuery מספק לכם ארגז חול לביצוע השלבים. מידע נוסף זמין במאמר בנושא הפעלת ארגז החול של BigQuery.
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת מערך נתונים, ליצירת טבלה, לטעינת נתונים ולשאילתת נתונים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
הפעלת משימות טעינה ומשימות שאילתה:
BigQuery Job User (
roles/bigquery.jobUser) -
יצירת מערך נתונים, יצירת טבלה, טעינת נתונים לטבלה והרצת שאילתה בטבלה:
כלי עריכת הנתונים של BigQuery (
roles/bigquery.dataEditor)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הורדת הקובץ שמכיל את נתוני המקור
הקובץ שאתם מורידים מכיל כ-7 MB של נתונים על שמות פופולריים לתינוקות. הוא ניתן על ידי מינהל הביטוח הלאומי בארה"ב.
מידע נוסף על הנתונים זמין במאמר Background information for popular names (מידע כללי על שמות פופולריים) באתר של Social Security Administration (המינהל לביטוח לאומי).
כדי להוריד את הנתונים של רשות הביטוח הלאומי בארה"ב, פותחים את כתובת ה-URL הבאה בכרטיסייה חדשה בדפדפן:
https://www.ssa.gov/OACT/babynames/names.zipמחזירים את הקובץ למקומו.
מידע נוסף על סכימת מערך הנתונים זמין בקובץ
NationalReadMe.pdfשחולץ.כדי לראות איך הנתונים נראים, פותחים את הקובץ
yob2024.txt. הקובץ הזה מכיל ערכים מופרדים בפסיקים של שם, מין שנקבע בלידה ומספר הילדים עם השם הזה. בקובץ אין שורת כותרת.מעבירים את הקובץ לספריית העבודה.
אם אתם עובדים ב-Cloud Shell, לוחצים על
סמל האפשרויות הנוספות העלאה, לוחצים על בחירת קבצים, בוחרים את קובץyob2024.txtואז לוחצים על העלאה.אם אתם עובדים במעטפת מקומית, מעתיקים או מעבירים את הקובץ
yob2024.txtלספרייה שבה אתם מריצים את כלי ה-bq.
יצירת מערך נתונים
אם הפעלתם את Cloud Shell מתוך התיעוד, מזינים את הפקודה הבאה כדי להגדיר את מזהה הפרויקט. כך לא תצטרכו לציין את מזהה הפרויקט בכל פקודה של CLI.
gcloud config set project PROJECT_IDמחליפים את PROJECT_ID במזהה הפרויקט.
מזינים את הפקודה הבאה כדי ליצור מערך נתונים בשם
babynames:bq mk --dataset babynamesהפלט אמור להיראות כך:
Dataset 'babynames' successfully created.מוודאים שמערך הנתונים
babynamesמופיע עכשיו בפרויקט:bq ls --datasets=trueהפלט אמור להיראות כך:
datasetId ------------- babynames
טעינת נתונים לטבלה
במערך הנתונים
babynames, טוענים את קובץ המקורyob2024.txtלטבלה חדשה בשםnames2024:bq load babynames.names2024 yob2024.txt name:string,assigned_sex_at_birth:string,count:integerהפלט אמור להיראות כך:
Upload complete. Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONEמוודאים שהטבלה
names2024מופיעה עכשיו במערך הנתוניםbabynames:bq ls --format=pretty babynamesהפלט אמור להיראות כך: חלק מהעמודות מושמטות כדי לפשט את הפלט.
+-----------+-------+ | tableId | Type | +-----------+-------+ | names2024 | TABLE | +-----------+-------+מוודאים שסכימת הטבלה של הטבלה החדשה
names2024היאname: string,assigned_sex_at_birth: stringו-count: integer:bq show babynames.names2024הפלט אמור להיראות כך: חלק מהעמודות מושמטות כדי לפשט את הפלט.
Last modified Schema Total Rows Total Bytes ----------------- ------------------------------- ------------ ------------ 14 Mar 17:16:45 |- name: string 31904 607494 |- assigned_sex_at_birth: string |- count: integer
שאילתות על נתונים בטבלה
קביעת השמות הכי פופולריים של בנות בנתונים:
bq query \ 'SELECT name, count FROM babynames.names2024 WHERE assigned_sex_at_birth = "F" ORDER BY count DESC LIMIT 5'הפלט אמור להיראות כך:
+-----------+-------+ | name | count | +-----------+-------+ | Olivia | 14718 | | Emma | 13485 | | Amelia | 12740 | | Charlotte | 12552 | | Mia | 12113 | +-----------+-------+קובעים את השמות הכי פחות פופולריים לבנים בנתונים:
bq query \ 'SELECT name, count FROM babynames.names2024 WHERE assigned_sex_at_birth = "M" ORDER BY count ASC LIMIT 5'הפלט אמור להיראות כך:
+---------+-------+ | name | count | +---------+-------+ | Aaran | 5 | | Aadiv | 5 | | Aadarsh | 5 | | Aarash | 5 | | Aadrik | 5 | +---------+-------+המספר המינימלי הוא 5 כי בנתוני המקור לא מופיעים שמות שמופיעים פחות מ-5 פעמים.
הסרת המשאבים
כדי לא לצבור חיובים בחשבון על המשאבים שבהם השתמשתם בדף הזה, אתם צריכים למחוק את הפרויקט יחד עם המשאבים. Google Cloud Google Cloud
מחיקת הפרויקט
אם השתמשתם ב-Sandbox של BigQuery כדי להריץ שאילתות על מערך הנתונים הציבורי, החיוב לא מופעל בפרויקט שלכם, ולא צריך למחוק את הפרויקט.הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.
כדי למחוק את הפרויקט:
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת המשאבים
אם השתמשתם בפרויקט קיים, מוחקים את המשאבים שיצרתם:
מחיקת מערך הנתונים
babynames:bq rm --recursive=true babynamesהדגל
--recursiveמוחק את כל הטבלאות במערך הנתונים, כולל הטבלהnames2024.הפלט אמור להיראות כך:
rm: remove dataset 'myproject:babynames'? (y/N)כדי לאשר את פקודת המחיקה, מזינים
y.