ארגון נכסי קוד באמצעות תיקיות

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

תיקיות BigQuery מבוססות על Dataform.

מידע נוסף על עבודה עם תיקיות ב-BigQuery זמין במאמר בנושא יצירה וניהול של תיקיות.

ארגון נכסי קוד באמצעות תיקיות

אתם יכולים לגשת לנכסי הקוד ולארגן אותם באמצעות תיקיות בחלונית Files ב-BigQuery Studio:

המיקום של החלונית **Files** ב-BigQuery Studio.

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

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

סוגי תיקיות

‫BigQuery תומך בסוגי התיקיות הבאים:

  • תיקיות משתמש: לכל משתמש יש תיקיית בסיס אישית, שמוצגת כ-User (כתובת האימייל של המשתמש). תיקיית המשתמש מכילה את כל נכסי הקוד שאתם יוצרים בפרויקט ובמיקום שצוינו. אתם יכולים ליצור תיקיות משנה בתיקיית המשתמש כדי לארגן את נכסי הקוד האלה. רק לכם יש גישה לקבצים ולתיקיות בתיקיית המשתמש, אלא אם תבחרו לשתף אותם עם משתמשים אחרים.

  • תיקיות צוות: תיקיית צוות מיועדת לשיתוף פעולה בין חברי הצוות, בדומה לתיקיית אחסון שיתופי ב-Google Drive. אפשר להשתמש בתיקיות צוות כדי לארגן נכסי קוד ששייכים לצוות מסוים. רק משתמשים עם הרשאות בעלים בתיקיית הצוות הראשית יכולים להעניק הרשאות למשתמשים אחרים כדי לאפשר להם להשתמש בתיקיית הצוות.

אזורים גיאוגרפיים לאחסון נתונים בתיקיות

אתם יכולים להשתמש בתיקיות ובנכסי קוד באזורי קוד שונים. לדוגמה, יכול להיות ש-folderA ונכסי הקוד שהוא מכיל נמצאים באזור us-west1, ו-folderB ונכסי הקוד שהוא מכיל נמצאים באזור us-central1. האזור שאתם צופים בו מוצג בחלונית קבצים:

אזור הקוד הנוכחי מוצג לצד שם הפרויקט בחלונית **Files** (קבצים).

ירושה של מדיניות IAM

הגישה לתיקיות ולקבצים באמצעות IAM מבוססת על מבנה היררכי. ההיררכיה הזו מבטיחה שמדיניות הגישה תועבר בירושה מתיקיות הורה לתוכן שלהן.

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

  • ההרשאות עוברות בירושה דרך היררכיית התיקיות. כשמקצים למשתמש תפקיד ספציפי בתיקייה ברמה גבוהה, הוא מקבל את ההרשאות שכלולות בתפקיד הזה לכל המשאבים שמוכלים בתיקייה הזו ובתיקיות המשנה שלה.
  • ההרשאות שיש למשתמש במשאב מסוים מורכבות מהמדיניות שהוגדרה ישירות למשאב הזה ומכללי המדיניות שעברו בירושה מכל תיקייה בנתיב שלו עד לרמה הבסיסית (root).

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

ריכזנו כאן כמה שיטות מומלצות להחלת כללי מדיניות של IAM על קבצים ותיקיות:

  • החלת מדיניות IAM על התיקייה הכי גבוהה בהיררכיה שבה ההרשאות נדרשות באופן אחיד. לדוגמה, אם צוות צריך גישה לכל הנתונים בספרייה של הצוות, כדאי להעניק את התפקידים הנדרשים ברמת תיקיית הצוות ולא ברמת תיקיות המשנה של הפרויקטים.
  • תמיד צריך להעניק את קבוצת ההרשאות המינימלית שנדרשת למשתמשים או לשירותים כדי לבצע את המשימות שלהם. מומלץ להימנע מהקצאת תפקידים רחבים, ולהשתמש בתפקידים ובהרשאות ספציפיים יותר ברמת התיקייה.

תפקידי IAM שניתנים בזמן יצירת משאב

כשיוצרים תיקייה, התפקידים הבאים מוקצים באופן אוטומטי:

  • משתמשים שיוצרים תיקיות בצומת הבסיס של המשתמש מקבלים באופן אוטומטי את תפקיד האדמין ב-Dataform (roles/dataform.admin) בתיקיות האלה.
  • היוצר של תיקיית צוות ברמת הבסיס מקבל באופן אוטומטי את תפקיד האדמין ב-Dataform (roles/dataform.admin) בתיקיית הצוות הזו.

אתם יכולים להשתמש ב-Config API כדי להעניק תפקיד ספציפי כשיוצרים משאב.

כשיוצרים קבצים או תיקיות חדשים בעץ המשנה של תיקייה קבוצתית, לא מקבלים באופן אוטומטי תפקידים.

משאבים עמוסים

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

  • האובייקט הוא היעד של פעולת העברה אחרת.
  • התיקייה היא יעד של פעולת העברה אחרת.
  • היותו אובייקט אב של אובייקט להעברה.
  • האובייקט הוא מושא של פעולת מחיקה.

מגבלות

אלו המגבלות שחלות על תיקיות BigQuery:

  • אפשר להציב תיקיות בתוך תיקיות עד 5 רמות עומק.
  • מספר גדול מאוד של תיקיות (מאות אלפים) מאט את הביצועים בעבודה עם תיקיות. לדוגמה, כשמטעינים את סייר הקבצים או מרחיבים תיקייה.
  • אי אפשר להעביר תיקייה שמכילה יותר מ-100 קבצים או תיקיות.

מיקומים

יש תמיכה בתיקיות BigQuery בכל המיקומים של Dataform.

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