ניהול קוד באמצעות repositories של Git ב-BigQuery Studio
אפשר לנהל סקריפטים של SQL ופריטי Notebook באמצעות מאגרי Git של BigQuery Studio. התכונה הזו משלבת את בקרת הגרסאות ישירות בדפדפן הקבצים של BigQuery Studio, ומאפשרת לשכפל מאגרי מידע, לנהל ענפים ולבצע פעולות Git בלי לצאת מהמסוף. Google Cloud
מאגרי Git ב-BigQuery Studio מציעים חוויה יעילה יותר שמבוססת על תיקיות, בהשוואה למאגרים קלאסיים. מאגרי Git של BigQuery Studio מופיעים ישירות בחלונית הימנית מתחת לתיקיית הבסיס של המשתמש.
באמצעות מאגרי Git ב-BigQuery Studio, אתם יכולים לנהל אינטראקציה עם נכסי הקוד שלכם בדיוק כמו עם קבצים וספריות רגילים, תוך שמירה על חיבור למאגר Git מרוחק.
מגבלות
- מאגרי Git ב-BigQuery Studio מוגבלים להקשר של תיקיית הבסיס של המשתמש ומיועדים לשימוש פרטי. אל תשתפו את המאגרים האלה עם משתמשים אחרים. המאגרים האלה מופיעים בתיקיית הבסיס של המשתמש – שהיא ייצוג וירטואלי של הנכסים בפרויקט – אבל מבחינה טכנית הם נוצרים ברמת הפרויקט.
- אין תמיכה בשימוש במחבר של חשבון Developer Connect עם Git Proxy.
- פעולות במערכת הקבצים במיקום הטעינה צורכות מכסת Dataform.
- תהליך השכפול של מאגרי קוד עם מספר גדול של קבצים, קבצים גדולים, הרבה ענפים או היסטוריית קומיטים מורכבת וארוכה נמשך זמן רב יותר. יכול להיות שפעולת השיבוט תחרוג מהזמן הקצוב לתפוגה של הפעולה, ולכן לא תתבצע יצירה מוצלחת של המאגר. כדי לקצר את זמן השכפול של מאגרי מידע עם היסטוריית קומיטים ארוכה, אפשר ליצור שכפול שטחי. אפשר לאחזר עוד קומיטים בהמשך לפי הצורך.
- הגודל של קבצי מחברת שמאוחסנים במאגר Git של BigQuery Studio לא יכול להיות גדול מ-30MB. אם הקבצים גדולים מ-30MB, צריך לשמור אותם באחסון המקומי של זמן הריצה של Colab מחוץ למיקום המצורף.
כשמבצעים שינויים במאגר Git מחוץ לנקודת הגישה – למשל, עריכה או שינוי שם של קבצים בחלונית הימנית – יכול להיות שיחלפו עד 60 שניות עד שהשינויים האלה יוצגו בנקודת הגישה בסביבת זמן הריצה של המחברת. אפשר לשנות את משך הזמן הזה באמצעות העברת הפרמטר
CACHE_TTL_SECONDSאל הקונסטרוקטור:FuseWidget(CACHE_TTL_SECONDS=NUMBER)מחליפים את
NUMBERבמספר השניות שבהן המטמון יישאר תקף. הקטנת הערך הזה מגדילה את תדירות הסנכרון וצורכת את המכסה של Dataform מהר יותר.
לפני שמתחילים
מפעילים את Developer Connect API בפרויקט Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לניהול קוד באמצעות מאגרי Git של BigQuery Studio, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Developer Connect OAuth User (roles/developerconnect.oauthUser) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאות שנדרשות לניהול קוד באמצעות מאגרי Git ב-BigQuery Studio. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לנהל קוד באמצעות מאגרי Git של BigQuery Studio, נדרשות ההרשאות הבאות:
-
resourcemanager.projects.get -
resourcemanager.projects.list -
developerconnect.operations.list -
developerconnect.operations.get -
developerconnect.locations.list -
developerconnect.locations.get -
developerconnect.users.startOAuth -
developerconnect.users.finishOAuth -
developerconnect.users.fetchAccessToken -
developerconnect.users.getSelf -
developerconnect.users.deleteSelf -
developerconnect.accountConnectors.get -
developerconnect.accountConnectors.list -
developerconnect.accountConnectors.gitProxyUse -
developerconnect.accountConnectors.httpProxyUse -
developerconnect.accountConnectors.gitProxyRead -
developerconnect.accountConnectors.gitProxyWrite -
developerconnect.accountConnectors.httpProxyRead -
developerconnect.accountConnectors.httpProxyWrite -
developerconnect.accountConnectors.fetchUserRepositories
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
שיקולי אבטחה במאגרי מידע
נכסי קוד ב-BigQuery מבוססים על Dataform, ולכן חשוב לשים לב להשלכות האבטחה הבאות עבור משתמשים שיש להם גישה לנכסים האלה:
- ההרשאות ברמת הפרויקט ב-Dataform קובעות את רמת החשיפה של נכסי הקוד. משתמשים עם ההרשאה
dataform.repositories.list– שכלולה בתפקידים רגילים ב-BigQuery כמו BigQuery Job User, BigQuery Studio User ו-BigQuery User – יכולים לראות את כל נכסי הקוד בחלונית Explorer של הפרויקט Google Cloud , בלי קשר לשאלה אם הם יצרו את הנכסים האלה או שהנכסים האלה שותפו איתם. כדי להגביל את החשיפה, אפשר ליצור תפקידים בהתאמה אישית שלא כוללים את ההרשאהdataform.repositories.list. - יכול להיות שמשתמשים שיש להם הרשאת עריכה בנכסים האלה יוכלו לגשת לסודות ששותפו עם סוכן השירות של Dataform. כדי לאבטח את פרטי הכניסה, צריך להגביל את הגישה ליצירה ולעריכה למשתמשים מהימנים, ולהגביל את הסודות שסוכן השירות של Dataform יכול לגשת אליהם. מידע נוסף זמין במאמר גישה לסודות במהלך התקנת חבילות.
מידע נוסף זמין במאמר שיקולי אבטחה לגבי הרשאות ב-Dataform.
יצירת מאגר Git ב-BigQuery Studio
כשיוצרים מאגר Git, חשוב להתחשב בדרישות הבאות:
- יכול להיות שחיבור של מאגר Git מרוחק למאגר Git ייכשל אם המאגר המרוחק לא פתוח לאינטרנט הציבורי, למשל אם הוא נמצא מאחורי חומת אש. במקרה כזה, צריך להוסיף את טווחי כתובות ה-IP של יציאת Dataform לכללי חומת האש כדי לאפשר חיבורים למאגרי מידע מרוחקים מוגנים.
- כדי ליצור מאגר Git שמקושר למאגר Git מרוחק שלא נמצא ברשימת ההיתרים במדיניות הארגון
dataform.restrictGitRemotes, צריך קודם להוסיף את מאגר Git המרוחק לרשימהallowedValuesבמדיניות, ואז ליצור את מאגר Git. מידע נוסף זמין במאמר בנושא הגבלת מאגרי מידע מרוחקים.
כדי ליצור מאגר Git:
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על קבצים כדי לפתוח את דפדפן הקבצים.
אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
לצד צומת הבסיס של המשתמש, לוחצים על הצגת פעולות > יצירה > מאגר Git.
מזינים את כתובת ה-URL של מאגר Git מרוחק.
מערכת BigQuery Studio מזהה אם קיים מחבר חשבון של Developer Connect. אלה האפשרויות שעומדות לרשותכם:
- אם נמצא מחבר לחשבון, השם המוצג של מאגר Git ימולא מראש. אפשר לערוך את הערכים האלה.
- אם אין מחבר חשבונות, לוחצים על יצירת מחבר חשבונות כדי ליצור מחבר חשבונות חדש.
- אם אתם לא רוצים להשתמש במחבר של חשבון Developer Connect, אתם יכולים ללחוץ על שימוש בסוג חיבור אחר כדי להתחבר באמצעות HTTPS או SSH.
אופציונלי: כדי ליצור מאגר שיבוטים רדוד עם היסטוריית קומיטים מוגבלת, לוחצים על אפשרויות מתקדמות ואז מסמנים את תיבת הסימון שיבוט רדוד.
- בשדה עומק, מזינים את מספר הקומיטים שרוצים לאחזר בהיסטוריית הקומיטים המוגבלת.
לוחצים על Connect.
עריכת קובץ
כדי לערוך קובץ, לוחצים על צומת של קובץ – כמו סקריפט SQL או מחברת – כדי לפתוח את הקובץ בכרטיסיית עריכה חדשה.
כל השינויים שתבצעו יישמרו באופן אוטומטי.
ניהול קבצים
אפשר לבצע משימות ניהול רגילות באמצעות תפריט הפעולות שמשויך לכל פריט. כדי לגשת לאפשרויות האלה, לוחצים על פתיחת פעולות ליד כל תיקייה או קובץ.
ברמת הספרייה, אפשר לבצע את המשימות הבאות:
- יצירה במאגר: יצירת נכסי קוד חדשים, כולל שאילתות SQL, מחברות, לוחות נתונים, הכנות נתונים, קבצים או ספריות משנה.
- העלאה למאגר: ייבוא קבצים קיימים מהמחשב המקומי לספרייה שנבחרה.
- שינוי שם: שינוי השם של הספרייה.
- העברה: העברת הספרייה למיקום אחר. אפשר להעביר ספרייה רק למיקום אחר באותו מאגר Git. מידע נוסף זמין במאמר בנושא העברה או העתקה של קבצים וספריות.
- מחיקה: הסרה סופית של הספרייה וכל התוכן שלה מסביבת העבודה המקומית.
ברמת הקובץ, אפשר לבצע את המשימות הבאות:
- פתיחה או פתיחה ב: צפייה בקובץ בעורך ברירת המחדל או באפליקציה ספציפית, לדוגמה, סביבת מחברת ספציפית.
- שינוי שם: שינוי שם הקובץ.
- העתקה: יצירת עותק של הקובץ. אפשר להעתיק קבצים רק לספריות באותו מאגר Git.
- העברה: העברת הקובץ לספרייה אחרת באותו מאגר Git. מידע נוסף זמין במאמר בנושא העברה או העתקה של קבצים וספריות.
- הורדה: שמירת עותק של הקובץ במחשב המקומי.
- מחיקה: הקובץ יוסר מסביבת העבודה.
העברה או העתקה של קבצים וספריות
אפשר להעביר או להעתיק קבצים וספריות, אבל הם חייבים להישאר באותו מאגר Git.
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על קבצים כדי לפתוח את דפדפן הקבצים.
מאתרים את הקובץ או הספרייה שרוצים להעביר או להעתיק.
לוחצים על פתיחת פעולות > העברה או העתקה.
בתיבת הדו-שיח שמופיעה, בוחרים את ספריית היעד באותו מאגר Git.
לוחצים על העברה או על העתקה.
שמירה ושליחה של השינויים
כדי לסנכרן את העריכות המקומיות עם המאגר המרוחק:
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על מאגר.
אופציונלי: מעבירים את העכבר מעל קובץ ששונה ולוחצים על הצגת ההבדלים כדי לראות השוואה בין הגרסה המקומית לבין הגרסה האחרונה שבוצעה בה פעולת Commit.
בשדה Commit message (הודעת אישור), מזינים תיאור של השינויים.
לוחצים על Commit (שמירה). השינויים נשמרים בהיסטוריית ה-Git של הענף המקומי.
לוחצים על העברה לענף מרוחק. השינויים שלכם מסונכרנים עם המאגר המרוחק.
הצגת סניף חדש
אתם יכולים לנהל סניפים מקומיים וליצור סניף מקומי חדש על סמך סניף מעקב מקומי או מרוחק קיים.
בכרטיסייה Repository, בקטע Branches, אפשר לראות את הענפים המקומיים שהוצאו. התווית CURRENT מציינת את הענף הפעיל, והתווית DEFAULT מציינת את ענף ברירת המחדל של המאגר.
כדי להוציא ענף חדש, מבצעים את הפעולות הבאות:
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על מאגר.
מרחיבים את הקטע סניפים.
לצד ענף, לוחצים על Open actions (פתיחת פעולות) ואז על Check out new branch (הוצאת ענף חדש).
בתפריט Source branch, בוחרים את הענף שרוצים שהענף החדש יתבסס עליו, למשל
origin/main.בשדה שם הענף, מזינים שם לענף החדש.
לוחצים על לתשלום. BigQuery Studio בודק קודם את ענף המקור. אם שם הענף שצוין מציין ענף חדש, הוא נוצר על סמך המקור הזה. הענף החדש הופך לענף הפעיל, והתוכן של מאגר Git מתעדכן אוטומטית בהתאם למצב של הענף שהוצא.
צפייה בהיסטוריית הקומיטים
אתם יכולים לראות את היסטוריית השמירה של הענף הפעיל. אם המאגר נוצר כשיבוט רדוד, בחלונית Branch commit history (היסטוריית קומיטים של הענף) מוצג באנר מידע שמציין שהיסטוריית הקומיטים של המאגר מוגבלת. אפשר להרחיב את ההיסטוריה המקומית על ידי אחזור של עוד קומיטים.
כדי לראות את היסטוריית ההתחייבויות:
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על מאגר.
לצד כפתור הפעולה הראשי של ניהול הגרסאות, לוחצים על החץ בתפריט הנפתח ואז על הצגת היסטוריית השמירה.
נפתחת החלונית Branch commit history (היסטוריית הקומיטים של הענף), שבה מוצגת היסטוריית הקומיטים של הענף הפעיל.
אופציונלי: כדי לאחזר עוד קומיטים למאגר שיבוטים רדוד, בחלונית Branch commit history לוחצים על Fetch.
בתיבת הדו-שיח Fetch (shallow clone) (אחזור (שיבוט שטחי)), בשדה Additional commits to fetch (פעולות קומיט נוספות לאחזור), מזינים את מספר פעולות הקומיט הנוספות לאחזור מהיסטוריית המאגר.
אם מזינים
0, לא מתבצע אחזור של קומיטים היסטוריים נוספים, אבל BigQuery Studio מבצע אחזור רגיל כדי לסנכרן הפניות ומטא-נתונים מרוחקים.לוחצים על אחזור.
אפשר לחזור על הפעולה של אחזור הנתונים לפי הצורך עד שכל הקומיטים יאוחזרו.
גישה לקובצי מחברת בהרכבה של מאגר Git
כשניגשים למחברת מתוך מאגר Git של BigQuery Studio, אפשר לטעון את מאגר Git של המארח בזמן הריצה של המחברת. הפעולה mount היא חיבור שגורם למאגר Git מרוחק להופיע כאילו הוא מאגר מקומי בזמן הריצה של מחברת. כך ה-Notebook יכול לגשת ישירות לקבצים אחרים ולסקריפטים של שאילתות באותו מאגר, לקרוא אותם ולכתוב בהם.
הרכבת מאגר Git
כדי לטעון את מאגר Git, מריצים את קוד Python הבא במחברת:
from google_dataform_fuse_widget import FuseWidget
FuseWidget()
כשהמחברת מחוברת לנקודת הגישה, מתרחשים השינויים הבאים:
- ספריית העבודה הנוכחית של סשן ה-notebook מתעדכנת כדי לשקף את הנתיב היחסי שלה במאגר Git. כך אפשר לוודא שהגישה לקבצים מבוססת-נתיב תפעל באופן אוטומטי.
- הנתיב של מאגר Git בזמן הריצה של הנוטבוק מתווסף לנתיב המערכת של Python, וכך אפשר להשתמש בהצהרות ייבוא רגילות של Python כדי לטעון סקריפטים וקבצים של שאילתות ממאגר Git ישירות לנוטבוק.
ניהול ההרכבה והחיבור
אפשר להשתמש באמצעי הבקרה הבאים כדי לנהל את סביבת העבודה:
- Mount workspace (הוספת סביבת עבודה): מתחיל את תהליך ההוספה של מאגר Git. ה-mount הוא משאב משותף, ולכן אם כמה מחברות באותו זמן ריצה של Colab משתמשות באותו מאגר Git, הן משתמשות באותו mount.
- ביטול הטעינה של סביבת העבודה: מפסיק את תהליך הטעינה של מאגר Git. ביטול הטעינה של סביבת העבודה גורם לכך שהטעינה לא תהיה זמינה לכל קובצי ה-notebook באותה סביבת זמן ריצה של Colab שהשתמשו בה.
- חיבור לסביבת עבודה: מתחיל את החיבור לנקודת טעינה פעילה בסשן הנוכחי של המחברת. החיבור מעדכן את ספריית העבודה ואת נתיב המערכת של המחברת כך שיכללו את מאגר Git, וכך תוכלו לגשת לקבצים ולייבא אותם.
- ניתוק Workspace: מסיים את חיבור ההרכבה לסשן הנוכחי של המחברת ומאפס אותו למצב ברירת המחדל. ניתוק לא משפיע על סטטוס החיבור של נקודת העיגון בסשנים פעילים אחרים של מחברות. כדי לסיים את החיבור של הסשן, מומלץ להשתמש בלחצן ניתוק סביבת העבודה.
- תיקון: משחזר את הנפח או את החיבור למצב תקין אם הם הופכים ללא שמישים.
אחרי שמאתחלים את הנתיב, אפשר לעיין בשורת הסטטוס כדי לראות את התקינות בזמן אמת ואת הנתיב הפעיל של הנתיב. אלה מצבי התקינות האפשריים: Connected, Mounted, Stopped ו-Unhealthy.
המאמרים הבאים
- איך יוצרים מחברות
- איך יוצרים שאילתות שמורות
- איך יוצרים ומנהלים מאגרי מידע
- איך מארגנים נכסי קוד באמצעות תיקיות