יצירה וניהול של מאגרי מידע
במאמר הזה מוסבר איך לעבוד עם מאגרי מידע ב-BigQuery, כולל הפעולות הבאות:
- יצירת מאגרי מידע
- מחיקת מאגרים
- שיתוף מאגרי מידע
- חיבור אופציונלי של מאגר BigQuery למאגר צד שלישי
לפני שמתחילים
- נכנסים לחשבון 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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לכם כדי לעבוד עם מאגרי מידע וסביבות עבודה, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במאגרי מידע ובסביבות עבודה:
-
ליצור ולנהל מאגרי קודים משותפים:
בעלים של קוד (
roles/dataform.codeOwner) -
יצירה ומחיקה של סביבות עבודה במאגרי מידע משותפים:
Code Editor (
roles/dataform.codeEditor) -
יצירה, שינוי וניהול גרסאות של קבצים בסביבות עבודה במאגרים משותפים:
Code Editor (
roles/dataform.codeEditor) -
צפייה בסביבות עבודה ובקבצים שלהן במאגרי מידע משותפים:
צפייה בקוד (
roles/dataform.codeViewer) -
יצירה וניהול של מאגרי קוד פרטיים, כולל כל הפעולות שקשורות לסביבות עבודה ולקבצים במאגר הפרטי:
Code Creator (
roles/dataform.codeCreator)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
חשבונות משתמשים שיש להם את התפקיד Code Editor (עורך קוד) במאגר יכולים לערוך את כל סביבות העבודה במאגר.
מאגרי מידע פרטיים שאתם יוצרים עדיין גלויים לישויות שקיבלו את התפקידים BigQuery Admin או BigQuery Studio Admin ברמת הפרויקט. הגורמים האלה יכולים לשתף את המאגר הפרטי שלכם עם משתמשים אחרים.
שיקולי אבטחה במאגרי מידע
נכסי קוד ב-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:
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.
לוחצים על הוספת מאגר.
בחלונית Create repository, בשדה Repository ID, מקלידים מזהה ייחודי.
המזהים יכולים לכלול רק מספרים, אותיות, מקפים וקווים תחתונים.
בתפריט הנפתח Region, בוחרים אזור BigQuery לאחסון המאגר והתוכן שלו. בוחרים את האזור ב-BigQuery שהכי קרוב למיקום שלכם.
רשימת האזורים הזמינים ב-BigQuery מופיעה במאמר מיקומים ב-BigQuery Studio. האזור של המאגר לא חייב להיות זהה למיקום של מערכי הנתונים ב-BigQuery.
לוחצים על יצירה.
חיבור למאגר של צד שלישי
בקטע הזה מוסבר איך לקשר מאגר 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, פועלים לפי השלבים הבאים:
בספק Git, מבצעים את הפעולות הבאות:
Azure DevOps Services
- ב-Azure DevOps Services, יוצרים מפתח SSH פרטי.
- מעלים את המפתח הציבורי של SSH למאגר שלכם ב-Azure DevOps Services.
Bitbucket
- ב-Bitbucket, יוצרים מפתח SSH פרטי.
- מעלים את המפתח הציבורי SSH למאגר Bitbucket.
GitHub
- ב-GitHub, בודקים אם יש מפתחות SSH קיימים.
- אם אין לכם מפתחות SSH קיימים או שאתם רוצים להשתמש במפתח חדש, צריך ליצור מפתח SSH פרטי.
- מעלים את מפתח ה-SSH הציבורי של GitHub למאגר שלכם ב-GitHub.
GitLab
- ב-GitLab, יוצרים מפתח SSH פרטי.
- מעלים את מפתח ה-SSH הציבורי של GitLab למאגר GitLab.
ב-Secret Manager, יוצרים סוד ומדביקים את מפתח ה-SSH הפרטי כערך הסוד. המפתח הפרטי של SSH צריך להיות מאוחסן בקובץ שדומה ל-
~/.ssh/id_ed25519. נותנים שם לסוד כדי שיהיה קל למצוא אותו בעתיד.נותנים גישה לסוד לסוכן השירות של Dataform.
מזהה סוכן השירות של Dataform הוא בפורמט הבא:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comמקצים לחשבון השירות את התפקיד
roles/secretmanager.secretAccessor.במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.
בוחרים את מאגר BigQuery שאליו רוצים להתחבר למאגר המרוחק.
בעורך, בוחרים בכרטיסייה Configuration (הגדרה).
לוחצים על התחברות ל-Git.
בחלונית Connect to remote repository, בוחרים בלחצן האפשרויות SSH.
בשדה כתובת URL של מאגר Git מרוחק, מקלידים את כתובת ה-URL של מאגר Git מרוחק, שמסתיימת ב-
.git.כתובת ה-URL של מאגר Git מרוחק חייבת להיות באחד מהפורמטים הבאים:
- כתובת URL אבסולוטית:
ssh://git@{host_name}[:{port}]/{repository_path}, החלקportהוא אופציונלי. - כתובת URL בסגנון SCP:
git@{host_name}:{repository_path}.
- כתובת URL אבסולוטית:
בשדה Default remote branch name, מקלידים את השם של הענף הראשי במאגר Git המרוחק.
בתפריט הנפתח Secret, בוחרים את הסוד שיצרתם שמכיל את המפתח הפרטי של SSH.
בשדה ערך מפתח מארח ציבורי SSH, מקלידים את מפתח המארח הציבורי של ספק Git.
Azure DevOps Services
כדי לאחזר את מפתח המארח הציבורי של Azure DevOps Services, מריצים את הפקודה הבאה בטרמינל:
ssh-keyscan -t rsa ssh.dev.azure.comמעתיקים אחד מהמפתחות שמוצגים, ומשמיטים את התווים
ssh.dev.azure.comמתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:ALGORITHM BASE64_KEY_VALUEלדוגמה:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8Hמוודאים שהמפתח הזה עדיין מעודכן בשירותי Azure DevOps.
Bitbucket
כדי לאחזר את מפתח המארח הציבורי של Bitbucket, מריצים את הפקודה הבאה בטרמינל:
curl https://bitbucket.org/site/sshהפקודה מחזירה רשימה של מפתחות מארח ציבוריים. בוחרים אחד מהמפתחות מהרשימה ומעתיקים אותו, בלי
bitbucket.orgשמופיע בתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:ALGORITHM BASE64_KEY_VALUEלדוגמה:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUOמוודאים שהמפתח הזה עדיין מעודכן ב-Bitbucket.
GitHub
- כדי לאחזר את מפתח המארח הציבורי של GitHub, אפשר לעיין בטביעות האצבע של מפתחות ה-SSH של GitHub.
בדף הזה מופיעה רשימה של מפתחות מארח ציבוריים. בוחרים אחת מהן ומעתיקים אותה, בלי
github.comבתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:ALGORITHM BASE64_KEY_VALUEלדוגמה:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJlמוודאים שהמפתח הזה עדיין עדכני ב-GitHub.
GitLab
- כדי לאחזר את מפתח המארח הציבורי של GitLab, אפשר לעיין בערכים של SSH
known_hosts. בדף הזה מופיעה רשימה של מפתחות מארח ציבוריים. בוחרים אחת מהן ומעתיקים אותה, בלי
gitlab.comבתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:ALGORITHM BASE64_KEY_VALUEלדוגמה:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdfמוודאים שהמפתח הזה עדיין מעודכן ב-GitLab.
לוחצים על Connect.
חיבור למאגר מרוחק באמצעות HTTPS
כדי לקשר מאגר מרוחק באמצעות HTTPS, צריך ליצור סוד ב-Secret Manager עם אסימון גישה אישי, ולשתף את הסוד עם סוכן השירות של Dataform.
לאחר מכן, BigQuery משתמש בטוקן הגישה כדי להיכנס לספק Git שלכם ולבצע שינויים בשם המשתמשים. מערכת BigQuery מבצעת את השמירות האלה באמצעות כתובת האימייל של המשתמש Google Cloud , כך שאפשר לדעת מי ביצע כל שמירה.
כדי לקשר מאגר מרוחק למאגר BigQuery באמצעות HTTPS, פועלים לפי השלבים הבאים:
בספק Git, מבצעים את הפעולות הבאות:
GitHub
ב-GitHub, יוצרים אסימון גישה אישי עם הרשאות מפורטות או אסימון גישה אישי קלאסי.
- כדי ליצור אסימון גישה אישי של GitHub עם הרשאות מפורטות:
בוחרים באפשרות 'גישה למאגרים' כדי לאפשר גישה רק למאגרים נבחרים, ואז בוחרים את המאגר שאליו רוצים להתחבר.
הענקת הרשאת קריאה וכתיבה לתוכן המאגר.
מגדירים את זמן התפוגה של האסימון בהתאם לצרכים שלכם.
- כדי להשתמש באסימון גישה אישי קלאסי של GitHub:
מעניקים ל-BigQuery את ההרשאה
repo.מגדירים את זמן התפוגה של האסימון בהתאם לצרכים שלכם.
אם בארגון שלכם משתמשים בכניסה יחידה (SSO) ב-SAML, צריך לתת הרשאה לטוקן.
GitLab
ב-GitLab, יוצרים אסימון גישה אישי ל-GitLab.
חובה לתת שם לטוקן
dataform.מעניקים ל-BigQuery את ההרשאות
api,read_repositoryו-write_repository.מגדירים את זמן התפוגה של האסימון בהתאם לצרכים שלכם.
ב-Secret Manager, יוצרים סוד שמכיל את אסימון הגישה האישי של המאגר המרוחק.
נותנים גישה לסוד לסוכן השירות של Dataform.
מזהה סוכן השירות של Dataform הוא בפורמט הבא:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comמקצים לחשבון השירות את התפקיד
roles/secretmanager.secretAccessor.במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.
בוחרים את מאגר BigQuery שאליו רוצים להתחבר למאגר המרוחק.
בעורך, בוחרים בכרטיסייה Configuration (הגדרה).
לוחצים על התחברות ל-Git.
בחלונית Connect to remote repository, בוחרים בלחצן האפשרויות HTTPS.
בשדה כתובת URL של מאגר Git מרוחק, מקלידים את כתובת ה-URL של מאגר Git מרוחק, שמסתיימת ב-
.git.כתובת ה-URL של מאגר Git מרוחק לא יכולה להכיל שמות משתמשים או סיסמאות.
בשדה Default remote branch name, מקלידים את השם של הענף הראשי במאגר Git המרוחק.
בתפריט הנפתח Secret, בוחרים את הסוד שיצרתם שמכיל את טוקן הגישה האישי.
לוחצים על Connect.
עריכת החיבור למאגר המרוחק
כדי לערוך חיבור בין מאגר BigQuery למאגר Git מרוחק, מבצעים את השלבים הבאים:
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.
בוחרים את מאגר BigQuery שרוצים לערוך את החיבור שלו.
בעורך, בוחרים בכרטיסייה Configuration (הגדרה).
בדף המאגר, לוחצים על עריכת חיבור Git.
עורכים את הגדרות החיבור.
לוחצים על עדכון.
שיתוף מאגר
כדי לשתף מאגר, פועלים לפי השלבים הבאים:
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.
מוצאים את המאגר שרוצים לשתף.
לוחצים על פתיחת פעולות ואז על שיתוף.
בחלונית Share permissions (הרשאות שיתוף), לוחצים על Add User/Group (הוספת משתמש או קבוצה).
בחלונית Add User/Group (הוספת משתמש או קבוצה), בשדה New Principals (גורמים חדשים), מקלידים שם אחד או יותר של משתמשים או קבוצות, מופרדים בפסיקים.
בשדה Role, בוחרים את התפקיד להקצאה לחשבונות המשתמשים החדשים.
לוחצים על Save.
מחיקת מאגר
כדי למחוק מאגר וכל התוכן שלו, פועלים לפי השלבים הבאים:
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Repositories כדי לפתוח את הכרטיסייה Repositories בחלונית הפרטים.
מחפשים את המאגר שרוצים למחוק.
לוחצים על Open actions (פתיחת פעולות) ואז על Delete (מחיקה).
לוחצים על Delete.