מחברים של Workflows מאפשרים להפוך לאוטומטי את תהליך השאילתות של מערך נתונים ב-BigQuery ואת כתיבת התוצאות בגיליון אלקטרוני של Google Sheets. מחברים מפשטים את הקריאה לממשקי API Google Cloud על ידי טיפול באימות ובפורמט הבקשה בתהליך העבודה.
לפני שמתחילים
לפני שמנסים את הדוגמה במסמך הזה, חשוב לוודא שביצעתם את הפעולות הבאות.
מפעילים את ממשקי ה-API של Compute Engine, Google Drive, Google Sheets ו-Workflows.
המסוף
gcloud
gcloud services enable \ compute.googleapis.com \ drive.googleapis.com \ sheets.googleapis.com \ workflows.googleapis.com
חשוב לשים לב לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, כי תצטרכו לקשר אותו לתהליך העבודה לדוגמה לצורך בדיקה. בפרויקטים חדשים שבהם מופעל Compute Engine API, חשבון השירות הזה נוצר עם תפקיד בסיסי של עריכה ב-IAM, ובפורמט האימייל הבא:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
אפשר לראות את מספר הפרויקט בדף Welcome במסוף Google Cloud , או לאחזר אותו:
gcloud projects describe PROJECT_ID
בסביבות ייצור, מומלץ מאוד ליצור חשבון שירות חדש ולהקצות לו תפקיד אחד או יותר ב-IAM שמכילים את ההרשאות המינימליות הנדרשות, ולפעול לפי העיקרון של הרשאות מינימליות.
יוצרים תיקייה חדשה ב-Google Drive. התיקייה הזו משמשת לאחסון הגיליון האלקטרוני. הגדרת הרשאה לתיקייה המשותפת מאפשרת לתהליך העבודה לכתוב בגיליון האלקטרוני.
- בקר בכתובת drive.google.com.
- לוחצים על חדש > תיקייה חדשה.
- נותנים שם לתיקייה.
- לוחצים על יצירה.
- לוחצים לחיצה ימנית על התיקייה החדשה ובוחרים באפשרות שיתוף.
מוסיפים את כתובת האימייל של חשבון השירות שמוגדר כברירת המחדל של Compute Engine.
כך חשבון השירות מקבל גישה לתיקייה. כשמשייכים את חשבון השירות לזרימת העבודה, לזרימת העבודה תהיה גישת עריכה לכל קובץ בתיקייה. מידע נוסף על שיתוף קבצים, תיקיות ותיקיות אחסון שיתופי
בוחרים את התפקיד עריכה.
מבטלים את הסימון של התיבה שליחת הודעה לאנשים.
לוחצים על שיתוף.
יצירת גיליון אלקטרוני
אפשר ליצור גיליון אלקטרוני באחת מהדרכים הבאות:
- יצירת גיליון אלקטרוני באמצעות Google Sheets
- יצירת גיליון אלקטרוני באמצעות המחבר של Google Sheets API
אין אפשרות ליצור גיליון אלקטרוני ישירות בתיקייה שצוינה באמצעות Google Sheets API. עם זאת, יש חלופות, כולל העברת הגיליון האלקטרוני לתיקייה ספציפית אחרי שיוצרים אותו, כמו בדוגמאות הבאות. מידע נוסף זמין במאמר איך עובדים עם תיקיות ב-Google Drive.
יצירת גיליון אלקטרוני באמצעות Google Sheets
כשיוצרים גיליון אלקטרוני באמצעות Google Sheets, הוא נשמר ב-Google Drive. כברירת מחדל, הגיליון האלקטרוני נשמר בתיקיית הבסיס ב-Drive.
נכנסים אל sheets.google.com.
לוחצים על חדש
.
פעולה זו תיצור גיליון אלקטרוני חדש ותפתח אותו. לכל גיליון אלקטרוני יש ערך ייחודי של
spreadsheetIdשמורכב מאותיות, מספרים, מקפים או קווים תחתונים. המזהה של הגיליון האלקטרוני מופיע בכתובת ה-URL של Google Sheets:https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0חשוב לזכור את המזהה הזה, כי תצטרכו להשתמש בו כשתיצרו את תהליך העבודה.
מעבירים את הגיליון האלקטרוני לתיקיית Google Drive שיצרתם קודם:
- בגיליון האלקטרוני, בוחרים באפשרות קובץ > העברה.
- עוברים לתיקייה שיצרתם.
- לוחצים על Move.
יצירת גיליון אלקטרוני באמצעות מחבר Google Sheets API
אתם יכולים להשתמש במחבר Google Sheets API כדי ליצור גיליון אלקטרוני. מכיוון שכלי Workflows משתמש בחשבון השירות כזהות של הטריגר, הגיליון האלקטרוני נוצר בתיקיית הבסיס של חשבון השירות ב-Google Drive. אחר כך תוכלו להעביר את הגיליון האלקטרוני לתיקייה אחרת.
בתהליך העבודה הבא, הערך spreadsheetId מאוחזר מהתוצאה resp:
YAML
JSON
מחליפים את FOLDER_ID במזהה של התיקייה שאליה רוצים להעביר את הגיליון האלקטרוני. לכל תיקייה ב-Drive יש מזהה ייחודי שמורכב מאותיות, ממספרים, ממקפים או מקווים תחתונים. אפשר למצוא את מזהה התיקייה בכתובת ה-URL של התיקייה:
https://drive.google.com/drive/folders/FOLDER_ID/edit#gid=0מידע נוסף זמין במאמר בנושא יצירה של תיקיות והוספת קבצים לתיקיות.
הפלט של תהליך העבודה אמור להיראות כך, כאשר הערך id הוא spreadsheetId:
"body": {
"id": "spreadsheetId",
"kind": "drive#file",
"mimeType": "application/vnd.google-apps.spreadsheet",
"name": "Untitled spreadsheet"
}
סקירה של מערך נתונים ציבורי ב-BigQuery
ב-BigQuery יש מספר מערכי נתונים ציבוריים שזמינים לציבור הרחב להרצת שאילתות.
ב-BigQuery, אפשר להריץ עבודת שאילתה אינטראקטיבית (על פי דרישה). לדוגמה, השאילתה הבאה מחזירה את 100 השמות הכי פופולריים במערך נתונים ספציפי וכותבת את הפלט לטבלה זמנית. זו השאילתה שתופעל בתהליך העבודה.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את שאילתת ה-SQL הבאה של BigQuery באזור הטקסט של עורך השאילתות:
SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 100לוחצים על Run.
BQ
בטרמינל, מזינים את הפקודה הבאה של bq query כדי להריץ שאילתה אינטראקטיבית באמצעות תחביר SQL סטנדרטי:
bq query \ --use_legacy_sql=false \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 100'
פריסת תהליך עבודה שכותב ל-Sheets
פריסת תהליך עבודה שיוצר שאילתה במערך נתונים של BigQuery באמצעות מחבר BigQuery API, וכותב את התוצאות לגיליון אלקטרוני ב-Sheets באמצעות מחבר Google Sheets API.
המסוף
נכנסים לדף Workflows במסוף Google Cloud :
לוחצים על Create.
מזינים שם לתהליך העבודה החדש:
read-bigquery-write-sheets.ברשימה Region בוחרים באפשרות us-central1 (Iowa).
בקטע חשבון שירות, בוחרים את חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com).לוחצים על הבא.
בעורך של תהליך העבודה, מזינים את ההגדרה הבאה של תהליך העבודה:
מחליפים את הערך של הפלייסולדר
sheetIdבערך שלspreadsheetId.לוחצים על פריסה.
gcloud
יוצרים קובץ קוד מקור לתהליך העבודה:
touch read-bigquery-write-sheets.yamlבכלי לעריכת טקסט, מעתיקים את זרימת העבודה הבאה לקובץ קוד המקור:
מחליפים את הערך של הפלייסולדר
sheetIdבערך שלspreadsheetId.מריצים את הפקודה הבאה כדי לפרוס את תהליך העבודה:
gcloud workflows deploy read-bigquery-write-sheets \ --source=read-bigquery-write-sheets.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
מחליפים את
PROJECT_NUMBERבמספר הפרויקט ב- Google Cloud. אפשר לראות את מספר הפרויקט בדף Welcome במסוף Google Cloud .
מריצים את תהליך העבודה ומאמתים את התוצאות
כשמריצים תהליך עבודה, מופעלת ההגדרה הנוכחית של תהליך העבודה שמשויכת לתהליך העבודה.
מריצים את תהליך העבודה:
המסוף
נכנסים לדף Workflows במסוף Google Cloud :
בדף Workflows, בוחרים את תהליך העבודה read-bigquery-write-sheets כדי לעבור לדף הפרטים שלו.
בדף פרטי תהליך העבודה, לוחצים על play_arrow הפעלה.
לוחצים שוב על Execute.
התוצאות של תהליך העבודה מוצגות בחלונית פלט.
הפלט אמור להיראות כך:
{ "spreadsheetId": "1pgkNY7mWICA6o6INUNLHGnmk0Tdioh0nUghZPOYPpZA", "updatedCells": 303, "updatedColumns": 3, "updatedRange": "Sheet1!A1:C101", "updatedRows": 101 }
gcloud
פותחים טרמינל.
מריצים את תהליך העבודה:
gcloud workflows run read-bigquery-write-sheets
תוצאות ההרצה צריכות להיות דומות לתוצאות הבאות:
Waiting for execution [4dcf737b-69d9-4081-b8d9-86d39ae86bd1] to complete...done. argument: 'null' duration: 3.131912897s endTime: '2023-01-25T14:59:46.818828242Z' name: projects/918619793306/locations/us-central1/workflows/read-bigquery-write-sheets/executions/4dcf737b-69d9-4081-b8d9-86d39ae86bd1 result: '{"spreadsheetId":"1pgkNY7mWICA6o6INUNLHGnmk0Tdioh0nUghZPOYPpZA","updatedCells":303,"updatedColumns":3,"updatedRange":"Sheet1!A1:C101","updatedRows":101}' startTime: '2023-01-25T14:59:43.686915345Z' state: SUCCEEDED
מוודאים שתהליך העבודה כתב את תוצאות השאילתה בגיליון האלקטרוני. לדוגמה, מספר העמודות והשורות בגיליון האלקטרוני צריך להיות זהה לערכים של
updatedColumnsושלupdatedRows.
המאמרים הבאים
- הפעלת תהליך עבודה מ-Google Sheets.
- השהיה וחידוש של תהליך עבודה באמצעות קריאות חוזרות ו-Google Sheets.
- מרכז הלמידה של Google Workspace