ניתוח נתונים ב-GKE באמצעות BigQuery,‏ Cloud Run ו-Gemma

במדריך הזה נסביר איך להפיק תובנות ממערכי נתונים גדולים באמצעות BigQuery,‏ Cloud Run ו-Gemma LLM. במדריך הזה, תפרסו אפליקציה לדוגמה ב-Google Kubernetes Engine‏ (GKE). אפליקציית הדוגמה משתמשת ב-BigQuery לאחסון ולעיבוד נתונים, ב-Cloud Run לטיפול בבקשות וב-Gemma LLM לניתוח נתונים וליצירת תחזיות על סמך הנחיות נכנסות.

המדריך הזה מיועד לאדמינים ומומחי Cloud Architect, מומחי נתונים ו-AI, מהנדסי למידת מכונה ומומחי MLOps (DevOps). לפני שקוראים את הדף הזה, חשוב להכיר את Kubernetes ואת סביבת ה-notebook כמו Jupyter.

כדי להשלים את המדריך הזה, צריך להשלים קודם את המדריך פרסום מודלים פתוחים של Gemma באמצעות GPUs ב-GKE עם Hugging Face TGI. ה-framework של TGI מקל על תהליך פרסום המודל.

למה כדאי להשתמש ב-GKE וב-BigQuery

‫BigQuery היא פלטפורמה כשירות (PaaS), מחסן נתונים (data warehouse) מנוהל וללא שרתים, שמאפשרת ניתוח נתונים בהיקף של פטה-בייט. ‫BigQuery מאפשר לכם להתמקד בניתוח נתונים כדי להפיק תובנות משמעותיות, תוך שימוש ב-SQL מוכר ובלמידת מכונה מובנית.

באמצעות יחידות GPU ב-GKE עם TGI, אפשר לפרוס מודל שפה של Gemma כדי לנתח ולסכם אינטראקציות של משתמשים בשפה טבעית. לאחר מכן, באמצעות שילוב של BigQuery עם GKE, תוכלו להשתמש ב-BigQuery כדי לטפל ביעילות במערכי נתונים גדולים (כמו Google Analytics) וביכולות ההבנה של השפה הטבעית של המודל כדי ליצור תובנות משמעותיות.

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

בתרחיש הזה, תוכלו לקחת נתונים גולמיים מ-Google Analytics ב-BigQuery, להזין אותם למודל Gemma ולקבל סיכומים ותובנות לגבי ביקורים בדפים בשפה טבעית. מודל Gemma, שפועל על תשתית ניתנת להרחבה עם האצת GPU מ-GKE, מעבד במהירות נתונים של מסלולי משתמשים ומזהה דפוסים ומגמות. תוכלו לקבל תובנות שיעזרו לכם לזהות שילובים פופולריים של מוצרים, לגלות נקודות נפוצות שבהן משתמשים נוטשים את תהליך התשלום ולהדגיש קמפיינים שיווקיים מוצלחים שמניבים תנועה לדפי נחיתה ספציפיים.

יתרונות

הפתרון הזה מציע תהליך עבודה יעיל עם היתרונות הבאים:

  • שילוב עם BigQuery: אפשר להשתמש ב-BigQuery כדי לאחסן ולעבד מערכי נתונים גדולים (כמו נתוני Google Analytics במדריך הזה). כך אפשר להריץ שאילתות על הנתונים שדרושים לניתוח של המודל ולצבור אותם.
  • האצת GPU: הפעלת מודל Gemma באשכול GKE עם תמיכה ב-GPU כדי להאיץ את תהליך ההסקה, וליצור תחזיות הרבה יותר מהר מאשר עם מעבדים מבוססי-CPU.
  • חיסכון בעלויות ובזמן: חוסכים זמן ומשאבים באמצעות מודל השפה Gemma בקוד פתוח שעבר אימון מראש, בלי הצורך לבנות מודל בהתאמה אישית מאפס.

מטרות

במדריך הזה תלמדו איך:

  1. פריסת המודל וחשיפתו: יוצרים קובץ YAML של שירות כדי להגדיר מאזן עומסים פנימי לגישה למודל Gemma.
  2. יצירת פונקציה מרוחקת ב-BigQuery: מריצים קוד Python כדי להגדיר פונקציה מרוחקת שמקבלת נתונים מ-Google Analytics, יוצרת הנחיות למודל, שולחת בקשות לנקודת הקצה של המודל באמצעות מאזן העומסים ומחזירה את התגובה של המודל.
  3. מגדירים את רשת הענן הווירטואלי הפרטי (VPC): מגדירים רשת VPC ומחבר VPC כדי לאפשר תקשורת מאובטחת בין BigQuery לבין אשכול GKE. השלב הזה חיוני כדי שהפונקציה המרוחקת תוכל לגשת לנקודת הקצה של המודל.
  4. ניתוח נתונים: ניתוח הנתונים באמצעות BigQuery DataFrames או ישירות ב-SQL באמצעות כלי שורת הפקודה bq. להריץ קטעי קוד שסופקו ב-Notebook של Colab Enterprise כדי:
    • ביצוע שאילתות על נתונים של Google Analytics מ-BigQuery באמצעות SQL.
    • מחילים את הפונקציה המרוחקת על הנתונים כדי להפיק תובנות ממודל Gemma.
    • הצגת התוצאות.

ארכיטקטורה

בתרשים הארכיטקטורה הבא מוצגים הרכיבים המעורבים ואופן האינטראקציה ביניהם:

ארכיטקטורה של ניתוח נתונים

  • משתמשים ב-notebook של Colab Enterprise כדי להריץ את קוד Python. באמצעות Python, אפשר להשתמש בספריית bigframes כדי לפשט את האינטראקציות עם SQL.
  • ‫BigQuery משמש כמנוע לעיבוד נתונים גדולים, ומאפשר שימוש ב-SQL כדי ליצור אינטראקציה עם הנתונים.
  • הפונקציה המרוחקת מפעילה פונקציית Cloud Run. הנתונים מנותבים אוטומטית לפונקציה המרוחקת, שם הם מוכנים ונשלחים ל-GKE לצורך הסקה.
  • התוצאות נשלחות חזרה ל-BigQuery ומוצגות בטבלה.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

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

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

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

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

חשוב לוודא שאתם עומדים בדרישות המוקדמות הבאות:

יצירת פרויקט חדש או בחירה בפרויקט קיים

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

  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. 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

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

הפעלת ממשקי ה-API

מפעילים את ממשקי ה-API של Artifact Registry,‏ Compute Engine,‏ GKE,‏ IAM Service Account Credentials,‏ Cloud Functions,‏ Cloud Build,‏ Cloud Run Admin,‏ Cloud Logging,‏ Serverless VPC Access,‏ BigQuery,‏ Dataform ו-Vertex AI.

תפקידים שנדרשים להפעלת ממשקי API

כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

הפעלת ממשקי ה-API

הגדרת Cloud Shell

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

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

הפעלת Cloud Shell

בחלק התחתון של המסוף ייפתח סשן של Cloud Shell בתוך מסגרת.

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

gcloud config set project PROJECT_ID

מחליפים את PROJECT_ID במזהה הפרויקט.

מתן תפקידים ב-IAM

מוודאים שלחשבון המשתמש ולחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine בפרויקט שלכם יש את תפקידי ניהול הזהויות והרשאות הגישה (IAM) שנדרשים למדריך הזה.

מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM: roles/aiplatform.colabEnterpriseAdmin, roles/run.invoker, roles/container.admin, roles/iam.serviceAccountAdmin, roles/logging.logWriter

gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

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

  • PROJECT_ID: מזהה הפרויקט.
  • USER_IDENTIFIER: המזהה של חשבון המשתמש . לדוגמה, myemail@example.com.
  • ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.

מקצים תפקידים לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM: roles/logging.logWriter, roles/artifactregistry.writer, roles/storage.objectViewer

gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" --role=ROLE
  • מחליפים את PROJECT_ID במזהה הפרויקט.
  • מחליפים את PROJECT_NUMBER במספר הפרויקט כדי ליצור את הדומיין של חשבון השירות שמוגדר כברירת מחדל של Compute Engine עבור הפרויקט. לדוגמה, 123456789012-compute@developer.gserviceaccount.com.
  • מחליפים את ROLE בכל אחד מהתפקידים.

פרסום מודל Gemma

עוברים אל המדריך Serve Gemma open models using GPUs on GKE with Hugging Face TGI (הצגת מודלים פתוחים של Gemma באמצעות מעבדי GPU ב-GKE עם Hugging Face TGI) ופועלים לפי ההוראות החל מהקטע Before you begin (לפני שמתחילים) ועד הקטע Interact with the model using curl (אינטראקציה עם המודל באמצעות curl) כדי לוודא שהפריסה של מודל Gemma בוצעה בהצלחה ושאפשר ליצור איתו אינטראקציה.

לצורך המדריך הזה, פורסים את המודל Gemma 2B-it.

הגדרת רשת VPC

יוצרים או משתמשים ברשת VPC באזור us-central1 כדי שהפונקציה המרוחקת תוכל להתחבר לאשכול GKE. במדריך הזה משתמשים ב-VPC‏ Default.

כדי לוודא שמערך הנתונים ב-BigQuery, הפונקציה המרוחקת והפונקציות הבסיסיות של Cloud Run נפרסות במיקומים תואמים, רשת ה-VPC צריכה להיות באותו אזור כמו הפונקציה המרוחקת ב-BigQuery. במדריך הזה, כשמגדירים אפשרויות של BigQuery DataFrames בזמן יצירת פונקציה מרוחקת, מציינים את US כמיקום של מערך הנתונים, שמוגדר כברירת מחדל לאזור us-central1 של פונקציות Cloud Run. לכן, צריך ליצור או להשתמש ב-VPC באזור us-central1.

יצירת מאזן עומסים

כדי ליצור מאזן עומסים פנימי באשכול GKE, פועלים לפי ההוראות הבאות:

  1. יוצרים את קובץ המניפסט tgi-2b-lb-service.yaml הבא:

    apiVersion: v1
    kind: Service
    metadata:
    name: llm-lb-service
    annotations:
        networking.gke.io/load-balancer-type: "Internal"
    spec:
    selector:
      app: gemma-server
    type: LoadBalancer
    ports:
    - protocol: TCP
      port: 8000
      targetPort: 8000
    
  2. פותחים טרמינל חדש ב-Cloud Shell ומריצים את הפקודה הבאה כדי להחיל את המניפסט:

    kubectl apply -f tgi-2b-lb-service.yaml
    
  3. מקבלים את כתובת ה-IP של מאזן העומסים. יכול להיות שתצטרכו להמתין דקה או שתיים לפני שאפשר יהיה לאחזר את כתובת ה-IP הזו:

    kubectl get service llm-lb-service --output yaml | grep ip:
    

תשתמשו בכתובת ה-IP הזו כדי לתקשר עם אפליקציית gemma-server שפועלת מאחורי מאזן העומסים.

יצירת מחבר

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

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

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

מידע נוסף זמין במאמר בנושא דרישות של רשתות משנה (subnet) של מחברים.

יצירת Notebook

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

כדי ליצור מחברת Colab Enterprise באמצעות Google Cloud console:

  1. במסוף Google Cloud , נכנסים לדף Colab Enterprise Notebooks:

    כניסה ל-Notebooks

  2. בתפריט אזור, בוחרים באפשרות us-central1. זהו אותו אזור שבו יוצרים את כל השירותים במדריך הזה.

  3. לצד קבצים, לוחצים על יצירת מחברת.

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

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

יצירת פונקציה מרוחקת ב-BigQuery

אחת הדרכים להגדיר פונקציה מרוחקת ב-BigQuery היא באמצעות הספרייה bigframes. בקטע הזה, משתמשים ב-bigframes כדי ליצור פונקציה מרוחקת בשם process_incoming. הפונקציה המרוחקת הזו מקבלת נתונים מ-Google Analytics כקלט, יוצרת הנחיה ושולחת אותה למודל Gemma לצורך ניתוח.

ב-notebook של Colab Enterprise שיצרתם:

  1. לוחצים על + Code (קוד) כדי להוסיף תא קוד חדש.
  2. מעתיקים את הקוד הבא לתא הקוד החדש:

    # Install the necessary packages on the notebook runtime
    %pip install --upgrade bigframes --quiet
    
    import bigframes.pandas as bpd
    import os
    import ast
    import requests
    
    # Replace the following  variables
    # Use the format ip:port
    # For example, "10.128.05:8000"
    lb_url = "LOADBALANCER_IP_ADDRESS:8000"
    
    # Set BigQuery DataFrames options
    bpd.options.bigquery.project = "PROJECT_ID"
    bpd.options.bigquery.location = "US"
    # Update the VPC connector name with the one you created
    vpc_connector_name = "VPC_CONNECTOR_NAME"
    
    # Create a remote function using bigframes
    # https://cloud.google.com/bigquery/docs/remote-functions#bigquery-dataframes
    
    @bpd.remote_function(
      dataset="ga_demo",
      name="ga_explain_example",
      bigquery_connection="bigframes-rf-conn",
      reuse=True,
      packages=["requests"],
      cloud_function_vpc_connector=VPC_CONNECTOR_NAME,
      cloud_function_service_account="default",
    )
    def process_incoming(data: str) -> str:
      ga_data = ast.literal_eval(data)
      USER_PROMPT = """
          'The following are the results from Google Analytics.
          They are reverse ranked.
          reverse_event_number 1 is the last page visited.
          reverse_event_number 2 is the second last page visited.
          You are given the following data.
          {}
          Can you summarize what was the most popular page people landed on and what page they came from?
      """.format(ga_data)
    
      url = 'http://{}/generate'.format(lb_url)
    
      myobj = {
          "inputs": USER_PROMPT,
          "temperature": 0.90,
          "top_p": 0.95,
          "max_tokens": 2048
      }
      x = requests.post(url, json=myobj)
      result = x.text
      return (result)
    
    function_name = process_incoming.bigframes_remote_function
    print (f"The function name is: {function_name}")
    
    

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

    במדריך הזה, המיקום של מערך הנתונים ב-BigQuery מוגדר ל-US, שהוא ברירת המחדל לאזור us-central1.

  3. לוחצים על הרצת התא.

הפלט מציג את שם הפונקציה באופן הבא:

The function name is: PROJECT_ID.ga_demo.ga_explain_example

ניתוח התנהגות המשתמשים

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

  • שימוש ב-BigQuery DataFrames
  • שימוש בכלי שורת הפקודה bq כדי להריץ שאילתה ישירות ב-SQL.

שימוש ב-BigQuery DataFrames

כדי להריץ את הפונקציה המרוחקת באמצעות BigQuery DataFrames במחברת Colab Enterprise שיצרתם:

  1. לוחצים על + Code (קוד) כדי להוסיף תא קוד חדש.
  2. מעתיקים את הקוד הבא לתא הקוד החדש ולוחצים על Run cell (הרצת התא).
# Generate a list of all matchups and their histories as a JSON

grouping_sql = """
with
data_table as (
 SELECT
 distinct
   user_pseudo_id,
   events.value.string_value,
   event_timestamp,
   rank() over (partition by user_pseudo_id order by event_timestamp desc) as reverse_event_number
 FROM
   `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210131` as events20210131,
   unnest (events20210131.event_params) as events
 where events.key = 'page_location'
 qualify reverse_event_number < 3
)
select
*,TO_JSON_STRING (data_table) as ga_history
from data_table
limit 10;

"""

ga_df = bpd.read_gbq(grouping_sql)
post_processed = ga_df.assign(results=ga_df['ga_history'].apply(process_incoming),axis=1)
post_processed.head(10)

בדוגמה הבאה מוצגות תוצאות לדוגמה של השאילתה:

user_pseudo_id string_value event_timestamp reverse_event_number ga_history תוצאות ציר
0 2342103247.0307162928 https://shop.googlemerchandisestore.com/Google... 1612096237169825 2 {"user_pseudo_id":"2342103247.0307162928","str... ‪{"generated_text":"\n 'The following are...
1 48976087.6959390698 https://www.googlemerchandisestore.com/ 1612056537823270 2 {"user_pseudo_id":"48976087.6959390698","strin... ‪{"generated_text":"\n \n ```python\n imp...

שימוש בכלי שורת הפקודה bq

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

כדי להריץ את הפונקציה המרוחקת באמצעות כלי שורת הפקודה bq ב-notebook של Colab Enterprise שיצרתם:

  1. לוחצים על + Code (קוד) כדי להוסיף תא קוד חדש.
  2. מעתיקים את הקוד הבא לתא הקוד החדש ומחליפים את PROJECT_ID במזהה הפרויקט.

    # Update with your PROJECT_ID
    
    function_name = 'PROJECT_ID.ga_demo.ga_explain_example'
    
    new_sql = """'with \
    data_table as ( \
    SELECT \
    distinct \
      user_pseudo_id, \
      events.value.string_value, \
      event_timestamp, \
      rank() over (partition by user_pseudo_id order by event_timestamp desc) as reverse_event_number \
    FROM \
      `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210131` as events20210131, \
      unnest (events20210131.event_params) as events \
    where events.key = "page_location" \
    qualify reverse_event_number < 3 \
    ) \
    select \
    *, `{}`(TO_JSON_STRING (data_table)) as result \
    from data_table \
    limit 10;' \
    """.format(function_name)
    
    # Run query using bq cli directly in a notebook cell
    
    !bq query --use_legacy_sql=false \
    {new_sql}
    
  3. לוחצים על הרצת התא.

בדוגמה הבאה מוצגות תוצאות לדוגמה של השאילתה:

user_pseudo_id string_value event_timestamp reverse_event_number result
86037838.0267811614 https://shop.googlemerchandisestore.com/Google+Redesign/Apparel/Google+Dino+Game+Tee 1612128627715585 1 ‪{"generated_text":"Answer:\n The most popular page was https://shop.googlemerchandisestore.com/Google+Redesign/Apparel/Google+Dino+Game+Tee\n The next most popular page was the page they came from.\n\n Explanation:\n\nThe provided data shows that the current user visited Google's merchandise store specifically for the product "Google Dino Game Tee." \n \nשיקולים חשובים:\n\n* פרשנות הנתונים: אי אפשר לומר בוודאות ש-
4024190.3037653934 https://shop.googlemerchandisestore.com/Google+Redesign/Apparel/Google+Black+Cloud+Zip+Hoodie 1612085948486438 1 ‪{"generated_text":"\n ```python\n import pandas as pd\n\n data = {'user_pseudo_id': ['4024190.3037653934', '4024190.3037653934', '4024190.3037653934'],\n 'string_value': ['https://shop.googlemerchandisestore.com"}

הסרת המשאבים

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

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

  1. מחיקת ה-Notebook שלכם ב-Colab Enterprise.
  2. מחיקת סביבת זמן הריצה שלכם ב-Colab Enterprise.
  3. מחיקת פונקציית BigQuery מוודאים שלחשבון השירות יש הרשאה bigquery.routines.delete. מידע נוסף זמין במאמר הרשאות ב-BigQuery.
  4. מחיקת החיבור החיצוני ל-BigQuery.
  5. מחיקת פונקציות Cloud Run.
  6. מחיקת אשכול GKE.
  7. מחיקת מחבר ה-VPC

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