ניהול קוד באמצעות 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, אתם יכולים ללחוץ על Use different connection type (שימוש בסוג חיבור אחר) כדי להתחבר באמצעות 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 מתעדכן אוטומטית בהתאם למצב של הענף שהוצא.
גישה לקובצי מחברת בהרכבה של מאגר 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.
המאמרים הבאים
- איך יוצרים מחברות
- איך יוצרים שאילתות שמורות
- איך יוצרים ומנהלים מאגרי מידע
- איך מארגנים נכסי קוד באמצעות תיקיות