ניהול מטא-נתונים בקוד פתוח באמצעות BigLake metastore (קלאסי)

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

לניהול מטא-נתונים עסקיים, אפשר לעיין במאמר בנושא Dataplex Universal Catalog.

איך פועל מאגר המטא-נתונים (הקלאסי) של BigLake

מאגר המטא-נתונים של BigLake (קלאסי) הוא שירות ללא שרת שלא מצריך הקצאת משאבים לפני השימוש בו. אפשר להשתמש בו כחלופה ללא שרתים ל-Hive Metastore באשכולות Dataproc. פונקציות של BigLake metastore (קלאסי) פועלות כמו Hive Metastore דרך ממשקי ה-API התואמים ל-Hive, ואפשר לשלוח שאילתות לטבלאות בפורמט פתוח ב-BigQuery באופן מיידי, בלי לבצע פעולות נוספות. מאגר המטא-נתונים של BigLake (קלאסי) תומך רק בטבלאות Apache Iceberg.

מאגר המטא-נתונים של BigLake (קלאסי) מספק ממשקי API, ספריות לקוח ושילוב של מנוע נתונים (כמו Apache Spark) לניהול קטלוגים, מסדי נתונים וטבלאות.

מגבלות

מאגר המטא-נתונים של BigLake (בגרסה הקלאסית) כפוף למגבלות הבאות:

  • מאגר המטא-נתונים של BigLake (קלאסי) לא תומך בטבלאות של Apache Hive.
  • אפשר להקצות תפקידים והרשאות בניהול הזהויות והרשאות הגישה (IAM) רק לפרויקטים. אין תמיכה בהקצאת הרשאות IAM למשאבים.
  • אין תמיכה ב-Cloud Monitoring.
  • יש מגבלות על השמות של קטלוגים ומסדי נתונים ב-BigLake metastore (קלאסי):
    • השם יכול להכיל עד 1,024 תווים.
    • השמות יכולים להכיל רק אותיות בתקן UTF-8 (אותיות רישיות, אותיות קטנות), מספרים וקווים תחתונים.
    • השמות צריכים להיות ייחודיים לכל שילוב של פרויקט ואזור.
  • הטבלאות במאגר המטא-נתונים של BigLake (גרסה קלאסית) פועלות לפי אותן מוסכמות שמות כמו הטבלאות ב-BigQuery. מידע נוסף זמין במאמר בנושא מתן שמות לטבלאות.

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

כדי להשתמש ב-BigLake metastore (קלאסי), צריך להפעיל את החיוב ואת BigLake API.

  1. צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM של אדמין השימוש בשירות (roles/serviceusage.serviceUsageAdmin) בפרויקט. להסבר על מתן תפקידים, ראו איך מנהלים את הרשאות הגישה.
  2. מפעילים את החיוב בפרויקט Google Cloud . כך בודקים אם החיוב מופעל בפרויקט
  3. מפעילים את BigLake API.

    הפעלה של ה-API

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

  • כדי לקבל שליטה מלאה במשאבי מאגר המטא-נתונים של BigLake (קלאסי), אתם צריכים את התפקיד 'אדמין של BigLake' (roles/biglake.admin). אם אתם משתמשים בחשבון שירות של BigQuery Spark Connector, בחשבון שירות של Serverless for Apache Spark או בחשבון שירות של Dataproc VM, אתם צריכים להעניק לחשבון את התפקיד 'אדמין של BigLake'.
  • כדי לקבל גישת קריאה בלבד למשאבי מאגר המטא-נתונים של BigLake (קלאסי), צריך את התפקיד BigLake Viewer (roles/biglake.viewer). לדוגמה, כשמריצים שאילתה על טבלה במאגר מטא-נתונים של BigLake (קלאסי) ב-BigQuery, למשתמש או לחשבון השירות של חיבור BigQuery צריכה להיות הרשאת צפייה ב-BigLake.
  • כדי ליצור טבלאות BigQuery עם חיבורים, צריך את התפקיד 'משתמש בחיבור BigQuery' (roles/bigquery.connectionUser). מידע נוסף על שיתוף חיבורים זמין במאמר שיתוף חיבורים עם משתמשים.

בהתאם לתרחיש השימוש, הזהות שמבצעת קריאה למאגר המטא-נתונים של BigLake (קלאסי) יכולה להיות משתמשים או חשבונות שירות:

  • משתמש: כשמתקשרים ישירות אל BigLake API, או כשמבצעים שאילתה בטבלת BigLake של Apache Iceberg בטבלת BigQuery ללא חיבור מ-BigQuery. במקרה כזה, BigQuery משתמש בפרטי הכניסה של המשתמש.
  • חיבור משאבי BigQuery Cloud: כשמבצעים שאילתה בטבלת BigLake Iceberg ב-BigQuery עם חיבור מ-BigQuery. ‫BigQuery משתמש בהרשאה של חשבון השירות של החיבור כדי לגשת למאגר המטא-נתונים של BigLake (קלאסי).
  • BigQuery Spark Connector: כשמשתמשים ב-Spark עם מאגר מטא-נתונים של BigLake (קלאסי) ב-BigQuery Spark stored procedure. ‫Spark משתמש בפרטי הכניסה של חשבון השירות של Spark Connector כדי לגשת למאגר המטא-נתונים של BigLake (קלאסי) וליצור טבלאות BigQuery.
  • חשבון שירות של Serverless for Apache Spark: כשמשתמשים ב-Spark עם BigLake ב-Serverless for Apache Spark. ‫Spark משתמש בפרטי הכניסה של חשבון השירות.
  • חשבון שירות של מכונה וירטואלית ב-Dataproc: כשמשתמשים ב-Dataproc (לא ב-Serverless for Apache Spark). ‫Apache Spark משתמש בפרטי הכניסה של חשבון השירות של המכונה הווירטואלית.

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

כדי לראות בדיוק אילו הרשאות נדרשות לגישה למשאבי BigLake metastore (גרסה קלאסית), אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

  • biglake.tables.get ברמת הפרויקט, לכל הגישות עם הרשאת קריאה בלבד. שליחת שאילתה לטבלת BigLake Iceberg ב-BigQuery הטבלה היא לקריאה בלבד.
  • biglake.{catalogs|databases|tables}.* ברמת הפרויקט, לכל הרשאות הקריאה והכתיבה. בדרך כלל, ל-Apache Spark צריכה להיות אפשרות לקרוא ולכתוב נתונים, כולל אפשרות ליצור, לנהל ולהציג קטלוגים, מסדי נתונים וטבלאות.
  • bigquery.connections.delegate ברמה של חיבור משאבי הענן ב-BigQuery או ברמה גבוהה יותר, כדי ליצור טבלת BigLake Iceberg ב-BigQuery באמצעות חיבור.

חיבור למאגר מטא-נתונים של BigLake (גרסה קלאסית)

בקטעים הבאים מוסבר איך להתחבר למאגר מטא-נתונים של BigLake (קלאסי). בקטעים האלה מוסבר איך להתקין ולהשתמש בפלאגין של קטלוג BigLake Apache Iceberg, שמצוין על ידי קובצי ה-JAR בשיטות הבאות. פלאגין הקטלוג מתחבר למאגר המטא-נתונים של BigLake (קלאסי) ממנועי קוד פתוח כמו Apache Spark.

התחברות באמצעות מכונת Dataproc וירטואלית

כדי להתחבר למאגר מטא-נתונים של BigLake (קלאסי) באמצעות מכונה וירטואלית של Dataproc:

  1. שימוש ב-SSH כדי להתחבר ל-Dataproc
  2. ב-Spark SQL CLI, משתמשים בהצהרה הבאה כדי להתקין ולהגדיר את הקטלוג המותאם אישית של Apache Iceberg לעבודה עם מאגר המטא-נתונים של BigLake (קלאסי):

    spark-sql \
      --packages ICEBERG_SPARK_PACKAGE \
      --jars BIGLAKE_ICEBERG_CATALOG_JAR \
      --conf spark.sql.catalog.SPARK_CATALOG=org.apache.iceberg.spark.SparkCatalog \
      --conf spark.sql.catalog.SPARK_CATALOG.catalog-impl=org.apache.iceberg.gcp.biglake.BigLakeCatalog \
      --conf spark.sql.catalog.SPARK_CATALOG.gcp_project=PROJECT_ID \
      --conf spark.sql.catalog.SPARK_CATALOG.gcp_location=LOCATION \
      --conf spark.sql.catalog.SPARK_CATALOG.blms_catalog=BLMS_CATALOG \
      --conf spark.sql.catalog.SPARK_CATALOG.warehouse=GCS_DATA_WAREHOUSE_FOLDER \
      --conf spark.sql.catalog.SPARK_HMS_CATALOG=org.apache.iceberg.spark.SparkCatalog \
      --conf spark.sql.catalog.SPARK_HMS_CATALOG.type=hive \
      --conf spark.sql.catalog.SPARK_HMS_CATALOG.uri=thrift://HMS_URI:9083
      

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

  • ICEBERG_SPARK_PACKAGE: הגרסה של Apache Iceberg עם Spark שבה ייעשה שימוש. מומלץ להשתמש בגרסת Spark שתואמת לגרסת Spark במופע Dataproc או Serverless for Apache Spark. רשימת הגרסאות הזמינות של Apache Iceberg מופיעה בהורדות של Apache Iceberg. לדוגמה, הדגל ל-Apache Spark 3.3 הוא:
    --packages org.apache.iceberg:iceberg-spark-runtime-3.3_2.13:1.2.1
  • BIGLAKE_ICEBERG_CATALOG_JAR: ה-URI של Cloud Storage של תוסף קטלוג מותאם אישית של Iceberg להתקנה. בהתאם לסביבה שלכם, בוחרים אחת מהאפשרויות הבאות:
    • Iceberg 1.9.1: gs://spark-lib/biglake/biglake-catalog-iceberg1.9.1-0.1.3-with-dependencies.jar
    • Iceberg 1.5.1: gs://spark-lib/biglake/biglake-catalog-iceberg1.5.1-0.1.2-with-dependencies.jar
    • Iceberg 1.5.0: gs://spark-lib/biglake/biglake-catalog-iceberg1.5.0-0.1.1-with-dependencies.jar
    • Iceberg 1.2.0: gs://spark-lib/biglake/biglake-catalog-iceberg1.2.0-0.1.1-with-dependencies.jar
    • Iceberg 0.14.0: gs://spark-lib/biglake/biglake-catalog-iceberg0.14.0-0.1.1-with-dependencies.jar
  • SPARK_CATALOG: מזהה הקטלוג של Spark. הוא מקושר לקטלוג של BigLake metastore (קלאסי).
  • PROJECT_ID: Google Cloud מזהה הפרויקט של קטלוג BigLake metastore (קלאסי) שאליו מקושר קטלוג Spark.
  • LOCATION: המיקום ב-Google Cloud של קטלוג מאגר המטא-נתונים (קלאסי) של BigLake שאליו מקושר קטלוג Spark.
  • BLMS_CATALOG: מזהה הקטלוג של מאגר המטא-נתונים של BigLake (קלאסי) שאליו מקושר קטלוג Spark. לא צריך שקטלוג יהיה קיים, ואפשר ליצור אותו ב-Spark.
  • GCS_DATA_WAREHOUSE_FOLDER: תיקיית Cloud Storage שבה Spark יוצר את כל הקבצים. היא מתחילה ב-gs://.
  • HMS_DB: (אופציונלי) מסד הנתונים של HMS שמכיל את הטבלה שממנה רוצים להעתיק.
  • HMS_TABLE: (אופציונלי) טבלת ה-HMS שממנה רוצים להעתיק.
  • HMS_URI: (אופציונלי) נקודת הקצה של HMS Thrift.

התחברות לאשכול Dataproc

אפשרות אחרת היא לשלוח משימת Dataproc לאשכול. בדוגמה הבאה מותקן קטלוג Iceberg בהתאמה אישית.

כדי להתחבר לאשכול Dataproc, שולחים משימה עם המפרט הבא:

CONFS="spark.sql.catalog.SPARK_CATALOG=org.apache.iceberg.spark.SparkCatalog,"
CONFS+="spark.sql.catalog.SPARK_CATALOG.catalog-impl=org.apache.iceberg.gcp.biglake.BigLakeCatalog,"
CONFS+="spark.sql.catalog.SPARK_CATALOG.gcp_project=PROJECT_ID,"
CONFS+="spark.sql.catalog.SPARK_CATALOG.gcp_location=LOCATION,"
CONFS+="spark.sql.catalog.SPARK_CATALOG.blms_catalog=BLMS_CATALOG,"
CONFS+="spark.sql.catalog.SPARK_CATALOG.warehouse=GCS_DATA_WAREHOUSE_FOLDER,"
CONFS+="spark.jars.packages=ICEBERG_SPARK_PACKAGE"

gcloud dataproc jobs submit spark-sql --cluster=DATAPROC_CLUSTER \
  --project=DATAPROC_PROJECT_ID \
  --region=DATAPROC_LOCATION \
  --jars=BIGLAKE_ICEBERG_CATALOG_JAR \
  --properties="${CONFS}" \
  --file=QUERY_FILE_PATH

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

  • DATAPROC_CLUSTER: אשכול Dataproc שאליו שולחים את המשימה.
  • DATAPROC_PROJECT_ID: מזהה הפרויקט של אשכול Dataproc. יכול להיות שהמזהה הזה יהיה שונה מ-PROJECT_ID.
  • DATAPROC_LOCATION: המיקום של אשכול Dataproc. המיקום הזה יכול להיות שונה מLOCATION.
  • QUERY_FILE_PATH: הנתיב לקובץ שמכיל את השאילתות להרצה.

התחברות באמצעות ‎ Google Cloud Serverless for Apache Spark

באופן דומה, אפשר לשלוח עומס עבודה של אצווה ל-Serverless ל-Apache Spark. כדי לעשות זאת, פועלים לפי ההוראות להעלאת עומסי עבודה באצווה עם הדגלים הנוספים הבאים:

  • --properties="${CONFS}"
  • --jars=BIGLAKE_ICEBERG_CATALOG_JAR

התחברות לתהליכים מאוחסנים ב-BigQuery

אפשר להשתמש בפרוצדורות מאוחסנות של BigQuery כדי להריץ משימות של Serverless for Apache Spark. התהליך דומה להרצת משימות של Serverless for Apache Spark ישירות ב-Serverless for Apache Spark.

יצירת משאבים של metastore

בקטעים הבאים מוסבר איך ליצור משאבים במאגר המידע המרכזי.

יצירת קטלוגים

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

API

משתמשים בשיטה projects.locations.catalogs.create ומציינים את השם של קטלוג.

Spark SQL

CREATE NAMESPACE SPARK_CATALOG;

Terraform

הפעולה הזו יוצרת מסד נתונים ב-BigLake בשם my_database מסוג HIVE בקטלוג שצוין על ידי המשתנה google_biglake_catalog.default.id. מידע נוסף זמין במאמרי העזרה בנושא Terraform BigLake.

resource "google_biglake_catalog" "default" {
name     = "my_catalog"
location = "US"
}

יצירת מסדי נתונים

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

API

משתמשים בשיטה projects.locations.catalogs.databases.create ומציינים את השם של מסד נתונים.

Spark SQL

CREATE NAMESPACE SPARK_CATALOG.BLMS_DB;

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

  • BLMS_DB: מזהה מסד הנתונים של BigLake metastore (קלאסי) שרוצים ליצור

Terraform

הפעולה הזו יוצרת מסד נתונים ב-BigLake בשם my_database מסוג HIVE בקטלוג שצוין על ידי המשתנה google_biglake_catalog.default.id. מידע נוסף זמין במאמרי העזרה בנושא Terraform BigLake.

resource "google_biglake_database" "default" {
name    = "my_database"
catalog = google_biglake_catalog.default.id
type    = "HIVE"
hive_options {
  location_uri = "gs://${google_storage_bucket.default.name}/${google_storage_bucket_object.metadata_directory.name}"
  parameters = {
    "owner" = "Alex"
  }
}
}

יצירת טבלאות

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

API

משתמשים ב-method‏ projects.locations.catalogs.databases.tables.create ומציינים את שם הטבלה.

Spark SQL

CREATE TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE
  (id bigint, data string) USING iceberg;

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

  • BLMS_TABLE: המזהה של טבלת BigLake metastore (קלאסי) שרוצים ליצור

Terraform

הפקודה הזו רושמת טבלת metastore (קלאסית) של BigLake בשם my_table ובסוג Hive במסד הנתונים שצוין על ידי המשתנה google_biglake_database.default.id. שימו לב: הטבלה צריכה להתקיים לפני הרישום בקטלוג. אפשר ליצור אותה על ידי הפעלה של מנוע כמו Apache Spark. מידע נוסף זמין במסמכי התיעוד של ספק Terraform בנושא BigLake Table.

resource "google_biglake_table" "default" {
name     = "my-table"
database = google_biglake_database.default.id
type     = "HIVE"
hive_options {
  table_type = "MANAGED_TABLE"
  storage_descriptor {
    location_uri  = "gs://${google_storage_bucket.default.name}/${google_storage_bucket_object.data_directory.name}"
    input_format  = "org.apache.hadoop.mapred.SequenceFileInputFormat"
    output_format = "org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat"
  }
  parameters = {
    "spark.sql.create.version"          = "3.1.3"
    "spark.sql.sources.schema.numParts" = "1"
    "transient_lastDdlTime"             = "1680894197"
    "spark.sql.partitionProvider"       = "catalog"
    "owner"                             = "Alex"
    "spark.sql.sources.schema.part.0" = jsonencode({
      "type" : "struct",
      "fields" : [
        { "name" : "id", "type" : "integer",
          "nullable" : true,
          "metadata" : {}
        },
        {
          "name" : "name",
          "type" : "string",
          "nullable" : true,
          "metadata" : {}
        },
        {
          "name" : "age",
          "type" : "integer",
          "nullable" : true,
          "metadata" : {}
        }
      ]
    })
    "spark.sql.sources.provider" = "iceberg"
    "provider"                   = "iceberg"
  }
}
}

דוגמה של Terraform מקצה לקצה

בדוגמה הזו ב-GitHub יש דוגמה להפעלה מקצה לקצה שיוצרת קטלוג, מסד נתונים וטבלה של BigLake metastore (קלאסי). למידע נוסף על השימוש בדוגמה הזו, אפשר לעיין במאמר פקודות בסיסיות ב-Terraform.

העתקה של טבלת Iceberg מ-Hive Metastore אל BigLake metastore (קלאסי)

כדי ליצור טבלת Iceberg ולהעתיק טבלת Hive Metastore אל BigLake metastore (קלאסי), משתמשים בהצהרת Spark SQL הבאה:

CREATE TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE
  (id bigint, data string) USING iceberg
  TBLPROPERTIES(hms_table='HMS_DB.HMS_TABLE');

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

כדי ליצור טבלת Iceberg ב-Spark וליצור אוטומטית טבלת Iceberg חיצונית בו-זמנית, משתמשים בהצהרת Spark SQL הבאה:

  CREATE TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE
    (id bigint, data string) USING iceberg
    TBLPROPERTIES(bq_table='BQ_TABLE_PATH',
    bq_connection='BQ_RESOURCE_CONNECTION');

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

  • BQ_TABLE_PATH: הנתיב של טבלת Iceberg החיצונית שרוצים ליצור. פועלים לפי תחביר הנתיב של טבלה ב-BigQuery. אם לא מציינים פרויקט, המערכת משתמשת באותו פרויקט כמו קטלוג (קלאסי) של מאגר המטא-נתונים של BigLake.
  • BQ_RESOURCE_CONNECTION (אופציונלי): הפורמט הוא project.location.connection-id. אם מציינים, שאילתות BigQuery משתמשות בפרטי הכניסה של חיבור משאבי Cloud כדי לגשת למאגר המטא-נתונים של BigLake (קלאסי). אם לא מציינים את האפשרות הזו, BigQuery יוצר טבלה חיצונית רגילה במקום טבלת BigLake.

כדי ליצור באופן ידני קישורים לטבלאות חיצוניות של Iceberg עם כתובות URI של טבלאות מטא-חנות (קלאסית) של BigLake שצוינו (blms://…), משתמשים בהצהרת ה-SQL הבאה של BigQuery:

CREATE EXTERNAL TABLE 'BQ_TABLE_PATH'
  WITH CONNECTION `BQ_RESOURCE_CONNECTION`
  OPTIONS (
          format = 'ICEBERG',
          uris = ['blms://projects/PROJECT_ID/locations/LOCATION/catalogs/BLMS_CATALOG/databases/BLMS_DB/tables/BLMS_TABLE']
          )

צפייה במשאבים של metastore

בקטעים הבאים מוסבר איך לראות משאבים במאגר המטא-נתונים של BigLake (קלאסי).

הצגת קטלוגים

כדי לראות את כל מסדי הנתונים בקטלוג, משתמשים בשיטה projects.locations.catalogs.list ומציינים את שם הקטלוג.

כדי לראות מידע על קטלוג, משתמשים בשיטה projects.locations.catalogs.get ומציינים את השם של הקטלוג.

הצגת מסדי נתונים

כדי לראות מסד נתונים:

API

כדי לראות את כל הטבלאות במסד נתונים, משתמשים בשיטה projects.locations.catalogs.databases.list ומציינים את השם של מסד הנתונים.

כדי לראות מידע על מסד נתונים, משתמשים בשיטה projects.locations.catalogs.databases.get ומציינים את השם של מסד הנתונים.

Spark SQL

כדי לראות את כל מסדי הנתונים בקטלוג, משתמשים בהצהרה הבאה:

SHOW { DATABASES | NAMESPACES } IN SPARK_CATALOG;

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

DESCRIBE { DATABASE | NAMESPACE } [EXTENDED] SPARK_CATALOG.BLMS_DB;

הצגת טבלאות

כדי לראות את כל הטבלאות במסד נתונים או לראות טבלה מוגדרת:

API

כדי לראות את כל הטבלאות במסד נתונים, משתמשים בשיטה projects.locations.catalogs.databases.tables.list ומציינים את השם של מסד הנתונים.

כדי לראות מידע על טבלה, משתמשים בשיטה projects.locations.catalogs.databases.tables.get ומציינים את שם הטבלה.

Spark SQL

כדי לראות את כל הטבלאות במסד נתונים, משתמשים בהצהרה הבאה:

SHOW TABLES IN SPARK_CATALOG.BLMS_DB;

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

DESCRIBE TABLE [EXTENDED] SPARK_CATALOG.BLMS_DB.BLMS_TABLE;

שינוי משאבי metastore

בקטעים הבאים מוסבר איך לשנות משאבים במאגר המטא-נתונים.

עדכון טבלאות

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

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

API

משתמשים ב-method‏ projects.locations.catalogs.databases.tables.patch ומציינים את שם הטבלה.

Spark SQL

אפשרויות לעדכון טבלאות ב-SQL מפורטות במאמר בנושא ALTER TABLE.

שינוי שם הטבלה

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

API

משתמשים בשיטה projects.locations.catalogs.databases.tables.rename ומציינים את שם הטבלה ואת הערך newName.

Spark SQL

ALTER TABLE BLMS_TABLE RENAME TO NEW_BLMS_TABLE;

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

  • NEW_BLMS_TABLE: השם החדש של BLMS_TABLE. צריך להיות באותו מערך נתונים כמו BLMS_TABLE.

מחיקת משאבים של metastore

בקטעים הבאים מוסבר איך למחוק משאבים במאגר המטא-נתונים של BigLake (גרסה קלאסית).

מחיקת קטלוגים

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

API

משתמשים בשיטה projects.locations.catalogs.delete ומציינים את השם של קטלוג. בשיטה הזו לא מוחקים את הקבצים המשויכים ב- Google Cloud.

Spark SQL

DROP NAMESPACE SPARK_CATALOG;

מחיקה של מסדי נתונים

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

API

משתמשים בשיטה projects.locations.catalogs.databases.delete ומציינים את השם של מסד נתונים. בשיטה הזו לא מוחקים את הקבצים המשויכים ב- Google Cloud.

Spark SQL

DROP NAMESPACE SPARK_CATALOG.BLMS_DB;

מחיקת טבלאות

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

API

משתמשים ב-method‏ projects.locations.catalogs.databases.tables.delete ומציינים את שם הטבלה. בשיטה הזו לא מוחקים את הקבצים המשויכים ב- Google Cloud.

Spark SQL

כדי להסיר רק את הטבלה, משתמשים בהצהרה הבאה:

DROP TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE;

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

DROP TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE PURGE;