מחיקת ה-lakehouse של Analytics

Last reviewed 2025-01-13 UTC

במדריך הזה מוסבר איך למחוק את פתרון ההתנעה של Analytics lakehouse. אפשר להשתמש במדריך הזה כדי למחוק פריסה קיימת של הפתרון.

עלות

כדי לקבל הערכה של עלות המשאבים שבהם נעשה שימוש בפתרון של אגם נתונים לניתוח, אפשר לעיין בהערכה שחושבה מראש בGoogle Cloud מחשבון התמחור. Google Cloud

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

האומדן המחושב מראש מבוסס על הנחות לגבי גורמים מסוימים, כולל:

  • המיקומים שבהם המשאבים נפרסים. Google Cloud
  • משך הזמן שבו נעשה שימוש במשאבים.

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

קבלת הרשאות ה-IAM הנדרשות

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

נדרשת הרשאת IAM תפקיד מוגדר מראש שכולל את ההרשאות הנדרשות

serviceusage.services.enable

אדמין של שימוש בשירות
(roles/serviceusage.serviceUsageAdmin)

iam.serviceAccounts.create

אדמין בחשבון שירות
(roles/iam.serviceAccountAdmin)

resourcemanager.projects.setIamPolicy

אדמין IAM בפרויקט
(roles/resourcemanager.projectIamAdmin)
config.deployments.create
config.deployments.list
אדמין של Cloud Infrastructure Manager
(roles/config.admin)

נוצר חשבון שירות לפתרון

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

צפייה בתפקידים שהוקצו לחשבון השירות

התפקידים האלה מפורטים כאן למקרה שאדמין של הפרויקט או הארגון ב-Google Cloud יזדקק למידע הזה.

  • roles/biglake.admin
  • roles/bigquery.admin
  • roles/compute.admin
  • roles/datalineage.viewer
  • roles/dataplex.admin
  • roles/dataproc.admin
  • roles/iam.serviceAccountAdmin
  • roles/iam.serviceAccountUser
  • roles/resourcemanager.projectIamAdmin
  • roles/servicenetworking.serviceAgent
  • roles/serviceusage.serviceUsageViewer
  • roles/vpcaccess.admin
  • roles/storage.admin
  • roles/workflows.admin

מחיקת פריסת הפתרון

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

מחיקה דרך המסוף

משתמשים בהליך הזה אם פרסתם את הפתרון דרך המסוף.

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

    מעבר אל 'פריסות פתרונות'

  2. בוחרים את הפרויקט שמכיל את הפריסה שרוצים למחוק.

  3. מאתרים את הפריסה שרוצים למחוק.

  4. בשורה של הפריסה, לוחצים על פעולות ואז על מחיקה.

    יכול להיות שתצטרכו לגלול כדי לראות את הפעולות בשורה.

  5. מזינים את שם הפריסה ולוחצים על אישור.

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

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

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

מחיקת הפריסה באמצעות Terraform CLI

משתמשים בהליך הזה אם פרסתם את הפתרון באמצעות Terraform CLI.

  1. ב-Cloud Shell, מוודאים שספריית העבודה הנוכחית היא $HOME/cloudshell_open/terraform-google-analytics-lakehouse/. אם לא, עוברים לספרייה הזו.

  2. מסירים את המשאבים שהוקצו על ידי Terraform:

    terraform destroy
    

    ב-Terraform מוצגת רשימה של המשאבים שיוסרו.

  3. כשמופיעה בקשה לבצע את הפעולות, מזינים yes.

    ב-Terraform מוצגות הודעות שמראות את ההתקדמות. אחרי שכל המשאבים נמחקים, Terraform מציגה את ההודעה הבאה:

    Destroy complete!
    

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

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

אופציונלי: מחיקת הפרויקט

אם פרסתם את הפתרון בפרויקט חדש Google Cloud ואתם כבר לא צריכים את הפרויקט, אתם יכולים למחוק אותו באמצעות השלבים הבאים:

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. בתיבת ההנחיה, מקלידים את מזהה הפרויקט ולוחצים על Shut down.

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

אופציונלי: מחיקה של חשבון השירות

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

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

  • אם פרסתם את הפתרון דרך Google Cloud המסוף, עוברים לדף Solution deployments (אם כבר נמצאים בדף הזה, מרעננים את הדפדפן). תהליך יופעל ברקע כדי למחוק את חשבון השירות. לא נדרשת פעולה נוספת.

  • אם פרסתם את הפתרון באמצעות Terraform CLI, מבצעים את השלבים הבאים:

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

      כניסה לדף Service accounts

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

    3. בוחרים את חשבון השירות שרוצים למחוק.

      מזהה האימייל של חשבון השירות שנוצר עבור הפתרון הוא בפורמט הבא:

      goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
      

      מזהה האימייל מכיל את הערכים הבאים:

      • DEPLOYMENT_NAME: שם הפריסה.
      • NNN: מספר אקראי בן 3 ספרות.
      • PROJECT_ID: המזהה של הפרויקט שבו פרסתם את הפתרון.
    4. לוחצים על Delete.

פתרון בעיות במקרה של שגיאות

הפעולות שאפשר לבצע כדי לאבחן ולפתור שגיאות תלויות בשיטת הפריסה ובמורכבות השגיאה.

שגיאה במחיקת פריסה

במקרים מסוימים, ניסיונות למחוק פריסה עלולים להיכשל:

  • אחרי שמפעילים פתרון דרך המסוף, אם משנים משאב כלשהו שהוקצה על ידי הפתרון, ואז מנסים למחוק את הפריסה, יכול להיות שהמחיקה תיכשל. בשדה סטטוס בדף פריסות של פתרונות מופיע הערך נכשל, ויומן Cloud Build מציג את הסיבה לשגיאה.
  • אחרי פריסת פתרון באמצעות Terraform CLI, אם משנים משאב כלשהו באמצעות ממשק שאינו Terraform (לדוגמה, המסוף), ואז מנסים למחוק את הפריסה, יכול להיות שהמחיקה תיכשל. ההודעות בפלט של הפקודה terraform destroy מציגות את סיבת השגיאה.

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

אם פריסה מבוססת-מסוף לא נמחקת ואם אתם לא מצליחים לאבחן את השגיאה באמצעות יומן Cloud Build, אתם יכולים למחוק את הפריסה באמצעות Terraform CLI, כמו שמתואר בקטע הבא.

מחיקת פריסה שמבוססת על המסוף באמצעות Terraform CLI

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

  1. מזהים את האזור שבו מאוחסנים קוד ה-Terraform, היומנים ונתונים אחרים של הפריסה. יכול להיות שהאזור הזה יהיה שונה מהאזור שבחרתם כשפרסתם את הפתרון.

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

      מעבר אל 'פריסות פתרונות'

    2. בוחרים את הפרויקט שמכיל את הפריסה שרוצים למחוק.

    3. ברשימת הפריסות, מזהים את השורה של הפריסה שרוצים למחוק.

    4. לוחצים על הצגת כל התוכן בשורה.

    5. בעמודה מיקום, שימו לב למיקום השני, כפי שמודגש בדוגמה הבאה:

      המיקום של קוד הפריסה, היומנים ופריטים אחרים.

  2. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  3. יוצרים משתני סביבה למזהה הפרויקט, לאזור ולשם של הפריסה שרוצים למחוק:

    export REGION="REGION"
    export PROJECT_ID="PROJECT_ID"
    export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
    

    בפקודות האלה, מחליפים את מה שכתוב בשדות הבאים:

    • REGION: המיקום שציינתם קודם בהליך הזה.
    • PROJECT_ID: מזהה הפרויקט שבו פרסתם את הפתרון.
    • DEPLOYMENT_NAME: השם של הפריסה שרוצים למחוק.
  4. מאתרים את המזהה של הגרסה האחרונה של הפריסה שרוצים למחוק:

    export REVISION_ID=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .latestRevision -r)
        echo $REVISION_ID
    

    הפלט אמור להיראות כך:

    projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
    
  5. מוצאים את המיקום ב-Cloud Storage של ההגדרות של Terraform לפריסה:

    export CONTENT_PATH=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \
        | jq .applyResults.content -r)
        echo $CONTENT_PATH
    

    הדוגמה הבאה היא של הפלט שמתקבל מהפקודה הזו:

    gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
    
  6. מורידים את ההגדרות של Terraform מ-Cloud Storage אל Cloud Shell:

    gcloud storage cp $CONTENT_PATH $HOME --recursive
    cd $HOME/content/
    

    ממתינים עד להצגת ההודעה Operation completed, כמו שמוצג בדוגמה הבאה:

    Operation completed over 45 objects/268.5 KiB
    
  7. מאתחלים את Terraform:

    terraform init
    

    מחכים עד שמופיעה ההודעה הבאה:

    Terraform has been successfully initialized!
    
  8. מסירים את המשאבים שנפרסו:

    terraform destroy
    

    ב-Terraform מוצגת רשימה של המשאבים שיוסרו.

    אם מוצגות אזהרות לגבי משתנים שלא הוגדרו, אפשר להתעלם מהן.

  9. כשמופיעה בקשה לבצע את הפעולות, מזינים yes.

    ב-Terraform מוצגות הודעות שמראות את ההתקדמות. אחרי שכל המשאבים נמחקים, מוצגת ב-Terraform ההודעה הבאה:

    Destroy complete!
    
  10. מוחקים את פריט המידע שנוצר בתהליך פיתוח (Artifact) של הפריסה:

    curl -X DELETE \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
    
  11. ממתינים כמה שניות ואז מוודאים שפריט הפריסה נמחק:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .error.message
    

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

    אחרי שמחיקת ארטיפקט הפריסה מסתיימת, מוצגת הודעה כמו בדוגמה הבאה:

    Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
    

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