יצירה וניהול של מאגרים

מאגרי BigQuery מאפשרים לכם לנהל את הגרסאות של קובצי הקוד ולשתף פעולה עם הצוות שלכם. אתם יכולים ליצור, לשתף ולמחוק מאגרים ב-BigQuery, או לחבר אותם למאגר Git של צד שלישי.

כדי ליהנות מחוויית ניהול גרסאות יעילה יותר שמבוססת על תיקיות, מומלץ להשתמש במאגרי Git ב-BigQuery Studio. השילוב הזה מאפשר לכם לעבוד עם הסתעפויות של Git ישירות בדפדפן הקבצים של BigQuery Studio, ולשכפל כמה מאגרים בבת אחת בלי לנהל סביבות עבודה נפרדות.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and Dataform APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and Dataform APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לעבודה עם מאגרים וסביבות עבודה, אתם צריכים לבקש מהאדמין לתת לכם את התפקידים הבאים ב-IAM במאגרים ובסביבות העבודה:

  • ליצור ולנהל מאגרים משותפים: בעלי הקוד (roles/dataform.codeOwner)
  • יצירה ומחיקה של סביבות עבודה במאגרים משותפים: עורך קוד (roles/dataform.codeEditor)
  • ליצור, לשנות ולנהל גרסאות של קובצי בקרה בסביבות עבודה במאגרים משותפים: עורך קוד (roles/dataform.codeEditor)
  • צפייה בסביבות העבודה ובקבצים שלהן במאגרים משותפים: צפייה בקוד (roles/dataform.codeViewer)
  • יצירה וניהול של מאגרים פרטיים, כולל כל הפעולות בסביבות העבודה ובקבצים במאגר הפרטי: יוצר קוד (roles/dataform.codeCreator)

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

חשבונות משתמשים שיש להם את התפקיד "עריכת קוד" במאגר יכולים לערוך את כל סביבות העבודה במאגר.

מאגרים פרטיים שאתם יוצרים עדיין גלויים לחשבונות משתמשים שקיבלו את התפקידים "אדמין ב-BigQuery" או "אדמין ב-BigQuery Studio" ברמת הפרויקט. חשבונות המשתמשים האלה יכולים לשתף את המאגר הפרטי שלכם עם משתמשים אחרים.

שיקולי אבטחה למאגרים

נכסי הקוד ב-BigQuery מופעלים על ידי Dataform, לכן חשוב להביא בחשבון את ההשלכות הבאות על האבטחה של משתמשים שיש להם גישה לנכסים האלה:

  • ההרשאות של Dataform ברמת הפרויקט קובעות את הרשאות הצפייה בנכסי הקוד. משתמשים עם ההרשאה dataform.repositories.list – שכלולה בתפקידים הרגילים של BigQuery כמו BigQuery Job User,‏ BigQuery Studio User ו-BigQuery User – יכולים לראות את כל נכסי הקוד בחלונית Explorer של הפרויקט ב- Google Cloud , גם אם הם לא יצרו את הנכסים האלה או שהנכסים האלה לא שותפו איתם. כדי להגביל את החשיפה, אתם יכולים ליצור תפקידים בהתאמה אישית שלא כוללים את ההרשאה dataform.repositories.list.
  • משתמשים שיכולים לערוך את הנכסים האלה יכולים לגשת לכל הסודות ששותפו עם סוכן השירות של Dataform. כדי לאבטח את פרטי הכניסה, הגבילו את הגישה ליצירה ולעריכה למשתמשים מהימנים, והגבילו את הגישה של סוכן השירות של Dataform לסודות. מידע נוסף זמין במאמר גישה לסודות במהלך התקנת החבילה.

מידע נוסף זמין במאמר שיקולי אבטחה לגבי הרשאות ב-Dataform.

יצירת מאגר

כדי ליצור מאגר BigQuery:

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בחלונית השמאלית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

    אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.

  3. בחלונית Explorer, מרחיבים את הפרויקט ולוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.

  4. לוחצים על Add Repository.

  5. בחלונית Create repository, בשדה Repository ID, מקלידים מזהה ייחודי.

    המזהים יכולים לכלול רק מספרים, אותיות, מקפים וקווים תחתונים.

  6. ברשימה הנפתחת Region, בוחרים אזור ב-BigQuery שבו רוצים לאחסן את המאגר ואת התוכן שלו. בוחרים את האזור ב-BigQuery שהכי קרוב למיקום שלכם.

    רשימה של אזורים זמינים ב-BigQuery מופיעה במאמר מיקומים של BigQuery Studio. האזור של המאגר לא חייב להיות זהה למיקום של מערכי הנתונים ב-BigQuery.

  7. לוחצים על יצירה.

חיבור למאגר של צד שלישי

בקטע הזה נסביר איך לקשר מאגר של BigQuery למאגר מרוחק. אחרי שמקשרים את המאגרים, אפשר לבצע פעולות Git בקבצים שבסביבות העבודה שכלולות במאגר. לדוגמה, שליפת עדכונים מהמאגר המרוחק ודחיפת שינויים למאגר המרוחק.

מומלץ ליצור מאגר BigQuery ייעודי לכל מאגר מרוחק שאתם מתחברים אליו. כדי שהמיפוי יהיה ברור, תנו למאגר ב-BigQuery שם דומה לזה של המאגר המרוחק.

אפשר לקשר מאגר מרוחק באמצעות HTTPS או SSH. אם המאגר המרוחק לא פתוח לאינטרנט הציבורי, למשל אם הוא נמצא מאחורי חומת אש, יכול להיות שהקישור של מאגר BigQuery למאגר המרוחק ייכשל. בטבלה הבאה מפורטים ספקי Git נתמכים ושיטות החיבור שזמינות למאגרים שלהם:

ספק Git שיטת החיבור
Azure DevOps Services SSH
Bitbucket SSH
GitHub SSH או HTTPS
GitLab SSH או HTTPS

חיבור מאגר מרוחק באמצעות SSH

כדי לחבר מאגר מרוחק באמצעות SSH, צריך ליצור מפתח SSH וסוד ב-Secret Manager. מפתח ה-SSH מורכב ממפתח SSH ציבורי וממפתח SSH פרטי. אתם צריכים לשתף את מפתח ה-SSH הציבורי עם ספק ה-Git שלכם, וליצור סוד ב-Secret Manager עם מפתח ה-SSH הפרטי. אחר כך משתפים את הסוד עם סוכן השירות של Dataform.

‫BigQuery משתמש בסוד עם מפתח ה-SSH הפרטי כדי להיכנס לספק Git ולבצע שינויים בשם המשתמשים. ‫BigQuery מבצע את השינויים האלה באמצעות כתובת האימייל של המשתמש ב- Google Cloud , כדי שתוכלו לדעת מי ביצע כל שינוי.

כדי לקשר מאגר מרוחק למאגר BigQuery באמצעות SSH:

  1. בספק Git, מבצעים את הפעולות הבאות:

    Azure DevOps Services

    1. ב-Azure DevOps Services, יוצרים מפתח SSH פרטי.
    2. מעלים את מפתח ה-SSH הציבורי למאגר של Azure DevOps Services.

    Bitbucket

    1. ב-Bitbucket, יוצרים מפתח SSH פרטי.
    2. מעלים את מפתח ה-SSH הציבורי למאגר ב-Bitbucket.

    GitHub

    1. ב-GitHub, בודקים אם יש מפתחות SSH קיימים.
    2. אם אין לכם מפתחות SSH קיימים, או שאתם רוצים להשתמש במפתח חדש, צרו מפתח SSH פרטי.
    3. מעלים את מפתח ה-SSH הציבורי של GitHub למאגר ב-GitHub.

    GitLab

    1. ב-GitLab, יוצרים מפתח SSH פרטי.
    2. מעלים את מפתח ה-SSH הציבורי של GitLab למאגר GitLab.
  2. ב-Secret Manager, יוצרים סוד ומדביקים את מפתח ה-SSH הפרטי בתור הערך של הסוד. מפתח ה-SSH הפרטי צריך להיות מאוחסן בקובץ שדומה ל-~/.ssh/id_ed25519. נותנים שם ל-Secret כדי שתוכלו למצוא אותו בעתיד.

  3. נותנים לסוכן השירות של Dataform גישה לסוד.

    המזהה של סוכן השירות של Dataform הוא בפורמט הבא:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  4. מקצים לחשבון השירות את התפקיד roles/secretmanager.secretAccessor.

  5. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  6. בחלונית השמאלית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

  7. בחלונית Explorer, מרחיבים את הפרויקט ולוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.

  8. בוחרים את המאגר ב-BigQuery שרוצים לחבר למאגר המרוחק.

  9. בעורך, בוחרים בכרטיסייה Configuration (הגדרה).

  10. לוחצים על Connect with Git.

  11. בחלונית Connect to remote repository, לוחצים על לחצן הבחירה SSH.

  12. בשדה Remote Git repository URL, מקלידים את כתובת ה-URL של מאגר Git המרוחק, שמסתיימת ב-.git.

    כתובת ה-URL של מאגר Git המרוחק צריכה להיות באחד מהפורמטים הבאים:

    • כתובת URL אבסולוטית: ssh://git@{host_name}[:{port}]/{repository_path}, port היא אופציונלית.
    • כתובת URL דמוית SCP:‏ git@{host_name}:{repository_path}.
  13. בשדה Default remote branch name, מקלידים את השם של הענף הראשי של מאגר Git המרוחק.

  14. בתפריט הנפתח Secret, בוחרים את הסוד שיצרתם שמכיל את המפתח הפרטי של SSH.

  15. בשדה SSH public host key value, מקלידים את המפתח הציבורי של המארח של ספק Git.

    Azure DevOps Services

    1. כדי לאחזר את מפתח המארח הציבורי של Azure DevOps Services, מריצים את הפקודה הבאה במסוף:

      ssh-keyscan -t rsa ssh.dev.azure.com
      
    2. מעתיקים את אחד מהמפתחות שנוצרו, בלי ssh.dev.azure.com מתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:

      ALGORITHM BASE64_KEY_VALUE
      

      לדוגמה:

      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H
      

      צריך לוודא שהמפתח הזה עדיין מעודכן ב-Azure DevOps Services.

    Bitbucket

    1. כדי לאחזר את המפתח הציבורי של המארח ב-Bitbucket, מריצים את הפקודה הבאה במסוף:

      curl https://bitbucket.org/site/ssh
      
    2. הפקודה מחזירה רשימה של מפתחות מארח ציבוריים. בוחרים אחד מהמפתחות ברשימה ומעתיקים אותו, בלי bitbucket.org בתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:

      ALGORITHM BASE64_KEY_VALUE
      

      לדוגמה:

      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUO
      

      צריך לוודא שהמפתח הזה עדיין מעודכן ב-Bitbucket.

    GitHub

    1. כדי לאחזר את מפתח המארח הציבורי של GitHub, עיינו במאמר טביעות האצבע של מפתח ה-SSH של GitHub.
    2. הדף מכיל רשימה של מפתחות מארח ציבוריים. בוחרים אחת מהן ומעתיקים אותה, בלי github.com מתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:

      ALGORITHM BASE64_KEY_VALUE
      

      לדוגמה:

      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
      

      צריך לוודא שהמפתח הזה עדיין מעודכן ב-GitHub.

    GitLab

    1. כדי לאחזר את המפתח הציבורי של המארח ב-GitLab, עיינו ברשומות SSH known_hosts.
    2. הדף מכיל רשימה של מפתחות מארח ציבוריים. בוחרים אחת מהן ומעתיקים אותה, בלי gitlab.com מתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:

      ALGORITHM BASE64_KEY_VALUE
      

      לדוגמה:

      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
      

      צריך לוודא שהמפתח הזה עדיין מעודכן ב-GitLab.

  16. לוחצים על Connect.

חיבור מאגר מרוחק באמצעות HTTPS

כדי לחבר מאגר מרוחק באמצעות HTTPS, צריך ליצור סוד ב-Secret Manager עם אסימון גישה אישי, ולשתף את הסוד עם סוכן השירות של Dataform.

לאחר מכן, BigQuery משתמש בטוקן הגישה כדי להיכנס לספק Git ולבצע שינויים בשם המשתמשים. ‫BigQuery מבצע את השינויים האלה באמצעות כתובת האימייל של המשתמש ב- Google Cloud , כדי שתוכלו לדעת מי ביצע כל שינוי.

כדי לקשר מאגר מרוחק למאגר ב-BigQuery באמצעות HTTPS:

  1. בספק Git, מבצעים את הפעולות הבאות:

    GitHub

    1. ב-GitHub, יוצרים אסימון גישה אישי מפורט או אסימון גישה אישי קלאסי.

      • כדי ליצור טוקן גישה אישי מפורט ב-GitHub:
      1. בוחרים את הגישה למאגרים שנבחרו בלבד, ואז בוחרים את המאגר שאליו רוצים להתחבר.

      2. לתת גישת קריאה וכתיבה לתוכן של המאגר.

      3. מגדירים את זמן התפוגה של הטוקן בהתאם לצרכים שלכם.

      • כדי ליצור טוקן גישה אישי קלאסי ב-GitHub:
      1. נותנים ל-BigQuery את ההרשאה repo.

      2. מגדירים את זמן התפוגה של הטוקן בהתאם לצרכים שלכם.

    2. אם הארגון שלכם משתמש בכניסה יחידה (SSO) ב-SAML, אשרו את האסימון.

    GitLab

    1. ב-GitLab, יוצרים אסימון גישה אישי של GitLab.

    2. נותנים לטוקן את השם dataform. זהו שדה חובה.

    3. הענק ל-BigQuery את ההרשאות api, read_repository ו-write_repository.

    4. מגדירים את זמן התפוגה של האסימון בהתאם לצרכים שלכם.

  2. ב-Secret Manager, יוצרים סוד שמכיל את טוקן הגישה האישי של המאגר המרוחק.

  3. נותנים לסוכן השירות של Dataform גישה לסוד.

    המזהה של סוכן השירות של Dataform הוא בפורמט הבא:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  4. מקצים לחשבון השירות את התפקיד roles/secretmanager.secretAccessor.

  5. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  6. בחלונית השמאלית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

  7. בחלונית Explorer, מרחיבים את הפרויקט ולוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.

  8. בוחרים את המאגר ב-BigQuery שרוצים לחבר למאגר המרוחק.

  9. בעורך, בוחרים בכרטיסייה Configuration (הגדרה).

  10. לוחצים על Connect with Git.

  11. בחלונית Connect to remote repository, לוחצים על כפתור הבחירה HTTPS.

  12. בשדה Remote Git repository URL, מקלידים את כתובת ה-URL של מאגר Git המרוחק, שמסתיימת ב-.git.

    כתובת ה-URL של מאגר Git המרוחק לא יכולה להכיל שמות משתמשים או סיסמאות.

  13. בשדה Default remote branch name, מקלידים את השם של הענף הראשי של מאגר Git המרוחק.

  14. בתפריט הנפתח Secret, בוחרים את הסוד שיצרתם שמכיל את טוקן הגישה האישי.

  15. לוחצים על Connect.

עריכת החיבור למאגר המרוחק

כדי לערוך את החיבור בין מאגר BigQuery למאגר Git מרוחק:

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בחלונית השמאלית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

  3. בחלונית Explorer, מרחיבים את הפרויקט ולוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.

  4. בוחרים את מאגר BigQuery שרוצים לערוך את החיבור שלו.

  5. בעורך, בוחרים בכרטיסייה Configuration (הגדרה).

  6. בדף המאגר, לוחצים על Edit Git connection.

  7. עורכים את הגדרות החיבור.

  8. לוחצים על עדכון.

שיתוף מאגר

כדי לשתף מאגר, פועלים לפי השלבים הבאים:

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בחלונית השמאלית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

  3. בחלונית Explorer, מרחיבים את הפרויקט ולוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.

  4. מוצאים את המאגר שרוצים לשתף.

  5. לוחצים על פתיחת הפעולות ואז על שיתוף.

  6. בחלונית Share permissions, לוחצים על Add User/Group.

  7. בחלונית Add User/Group, בשדה New Principals, מקלידים שם אחד או יותר של משתמשים או קבוצות, מופרדים בפסיקים.

  8. בשדה Role, בוחרים את התפקיד שרוצים להקצות לחשבונות המשתמשים החדשים.

  9. לוחצים על Save.

מחיקת מאגר

כדי למחוק מאגר ואת כל התוכן שלו:

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בחלונית השמאלית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

  3. בחלונית Explorer, מרחיבים את הפרויקט ולוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.

  4. מוצאים את המאגר שרוצים למחוק.

  5. לוחצים על פתיחת הפעולות ואז על מחיקה.

  6. לוחצים על Delete.

המאמרים הבאים