Open-Source-Metadaten mit BigLake Metastore (classic) verwalten
BigLake Metastore (classic) ist ein einheitlicher Dienst für physische Metadaten für Daten analyseprodukte auf Google Cloud. BigLake Metastore (classic) bietet eine zentrale Quelle für Metadaten und ermöglicht Ihnen, Daten aus mehreren Quellen zu verwalten und darauf zuzugreifen. BigLake Metastore (classic) ist über BigQuery und verschiedene offene Datenverarbeitungs-Engines in Managed Service for Apache Spark zugänglich und daher ein nützliches Tool für Datenanalysten und Entwickler.
Informationen zur Verwaltung von Geschäftsmetadaten finden Sie unter Knowledge Catalog.
Funktionsweise von BigLake Metastore (classic)
BigLake Metastore (classic) ist ein serverloser Dienst, für den Sie keine Ressourcen bereitstellen müssen, bevor Sie ihn verwenden. Sie können ihn als serverlose Alternative zu Hive Metastore in Managed Service for Apache Spark-Clustern verwenden. BigLake Metastore (classic) funktioniert über seine Hive-kompatiblen APIs genauso wie Hive Metastore. Sie können Open-Format-Tabellen in BigQuery sofort abfragen, ohne weitere Schritte ausführen zu müssen. BigLake Metastore (classic) unterstützt nur Apache Iceberg-Tabellen.
BigLake Metastore (classic) bietet APIs, Clientbibliotheken und eine Daten modul-Integration (z. B. Apache Spark) , um Kataloge, Datenbanken und Tabellen zu verwalten.
Beschränkungen
Für BigLake Metastore (classic) gelten die folgenden Einschränkungen:
- BigLake Metastore (classic) unterstützt keine Apache Hive-Tabellen.
- IAM-Rollen und -Berechtigungen (Identity and Access Management) können nur Projekten gewährt werden. Das Gewähren von IAM-Berechtigungen für Ressourcen wird nicht unterstützt.
- Cloud Monitoring wird nicht unterstützt.
- Für BigLake Metastore (classic)-Kataloge und -Datenbanken gelten die folgenden Namensbeschränkungen:
- Namen dürfen bis zu 1024 Zeichen lang sein.
- Namen dürfen nur UTF-8-Buchstaben (Groß- und Kleinbuchstaben), Ziffern und Unterstriche enthalten.
- Namen müssen für jede Projekt- und Regionskombination eindeutig sein.
- Für BigLake Metastore (classic)-Tabellen gelten dieselben Namenskonventionen wie für BigQuery-Tabellen. Weitere Informationen finden Sie unter Tabellennamen.
Hinweis
Sie müssen die Abrechnung und die BigLake API aktivieren, bevor Sie BigLake Metastore (classic) verwenden können.
- Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Service Usage-Administrator” (
roles/serviceusage.serviceUsageAdmin) für Ihr Projekt zuzuweisen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten. - Aktivieren Sie die Abrechnung für Ihr Google Cloud Projekt in. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist .
API aktivieren
Erforderliche Rollen
- Für die vollständige Kontrolle über BigLake Metastore (klassisch)-Ressourcen benötigen Sie die Rolle „BigLake-Administrator” (
roles/biglake.admin). Wenn Sie ein Dienstkonto des BigQuery Spark-Connectors , ein Managed Service for Apache Spark-Dienstkonto oder ein Managed Service for Apache Spark-VM-Dienstkonto verwenden, weisen Sie dem Konto die BigLake-Administratorrolle zu. - Für den Lesezugriff auf BigLake Metastore (klassisch)-Ressourcen benötigen Sie die Rolle „BigLake-Betrachter“ (
roles/biglake.viewer). Beim Abfragen einer BigLake Metastore (klassisch)-Tabelle in BigQuery muss der Nutzer oder das BigQuery-Verbindungsdienstkonto beispielsweise die Rolle „BigLake-Betrachter” haben. - Zum Erstellen von BigQuery-Tabellen mit Verbindungen benötigen Sie die
Rolle „BigQuery-Verbindungsnutzer”
(
roles/bigquery.connectionUser). Weitere Informationen zum Freigeben von Verbindungen finden Sie unter Verbindungen für Nutzer freigeben.
Je nach Anwendungsfall können die Identitäten, die BigLake Metastore (classic) aufrufen, Nutzer oder Dienstkonten sein:
- Nutzer:Wenn Sie die BigLake API direkt aufrufen oder eine verwaltete Apache Iceberg-Tabelle ohne Verbindung von BigQuery abfragen. In diesem Fall verwendet BigQuery die Anmeldedaten des Nutzers.
- BigQuery Cloud-Ressourcenverbindung: Beim Abfragen einer verwalteten Iceberg-Tabelle mit einer Verbindung von BigQuery. BigQuery verwendet die Anmeldedaten des Verbindungsdienstkontos, um auf BigLake Metastore (klassisch) zuzugreifen.
- BigQuery Spark-Connector: Bei Verwendung von Spark mit BigLake Metastore (classic) in einer von BigQuery gespeicherten Prozedur. Spark verwendet die Anmeldedaten des Dienstkontos des Spark-Connectors, um auf BigLake Metastore (classic) zuzugreifen und BigQuery-Tabellen zu erstellen.
- Managed Service for Apache Spark-Dienstkonto: Bei Verwendung von Spark mit BigLake in Managed Service for Apache Spark. Spark verwendet die Anmeldedaten des Dienstkontos.
- Managed Service for Apache Spark-VM-Dienstkonto: Bei Verwendung von Managed Service for Apache Spark (nicht Managed Service for Apache Spark). Apache Spark verwendet die Anmeldedaten des VM-Dienstkontos.
Abhängig von Ihren Berechtigungen können Sie diese Rollen selbst zuweisen oder Ihren Administrator bitten, sie Ihnen zu gewähren. Weitere Informationen zum Gewähren von Rollen finden Sie unter Zuweisbare Rollen für Ressourcen aufrufen.
Erweitern Sie den Abschnitt Erforderliche Berechtigungen , um die genauen Berechtigungen anzuzeigen, die für den Zugriff auf BigLake Metastore (classic)-Ressourcen erforderlich sind:
Erforderliche Berechtigungen
biglake.tables.getauf Projektebene für alle schreibgeschützten Zugriffe. Das Abfragen einer verwalteten Iceberg-Tabelle Tabelle ist schreibgeschützt.biglake.{catalogs|databases|tables}.*auf Projektebene, für alle Lese- und Schreibberechtigungen. Normalerweise erfordert Apache Spark die Möglichkeit, Daten zu lesen und zu schreiben, einschließlich der Möglichkeit, Kataloge, Datenbanken und Tabellen zu erstellen, zu verwalten, und aufzurufen.bigquery.connections.delegateauf der Ebene der BigQuery Cloud-Ressourcenverbindung oder höher, um eine verwaltete Iceberg-Tabelle mit einer Verbindung zu erstellen.
Verbindung zu BigLake Metastore (classic) herstellen
In den folgenden Abschnitten wird erläutert, wie Sie eine Verbindung zu BigLake Metastore (classic) herstellen. In diesen Abschnitten wird das BigLake Apache Iceberg-Katalog-Plug-in installiert und verwendet, das durch die JAR-Dateien in den folgenden Methoden angegeben wird. Das Katalog-Plug-in stellt eine Verbindung zu BigLake Metastore (classic) von Open-Source-Engines wie Apache Spark her.
Verbindung mit einer Managed Service for Apache Spark-VM herstellen
So stellen Sie eine Verbindung zu BigLake Metastore (classic) mit einer Managed Service for Apache Spark-VM her:
- Stellen Sie über SSH eine Verbindung zu Managed Service for Apache Spark her.
Verwenden Sie in der Spark SQL-Befehlszeile, die folgende Anweisung, um den benutzerdefinierten Katalog von Apache Iceberg zu installieren und zu konfigurieren, damit er mit BigLake Metastore (classic) funktioniert:
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
Ersetzen Sie Folgendes:
ICEBERG_SPARK_PACKAGE: Die Version von Apache Iceberg mit Spark, die verwendet werden soll. Wir empfehlen, die Spark-Version zu verwenden, die der Spark-Version in Ihrer Managed Service for Apache Spark oder Managed Service for Apache Spark Instanz entspricht. Eine Liste der verfügbaren Apache Iceberg-Versionen finden Sie unter Apache Iceberg-Downloads. Das Flag für Apache Spark 3.3 lautet beispielsweise:
--packages org.apache.iceberg:iceberg-spark-runtime-3.3_2.13:1.2.1BIGLAKE_ICEBERG_CATALOG_JAR: Der Cloud Storage-URI des benutzerdefinierten Iceberg-Katalog-Plug-ins, das installiert werden soll. Wählen Sie je nach Umgebung eine der folgenden Optionen aus:Iceberg 1.9.1: gs://spark-lib/biglake/biglake-catalog-iceberg1.9.1-0.1.3-with-dependencies.jarIceberg 1.5.1: gs://spark-lib/biglake/biglake-catalog-iceberg1.5.1-0.1.2-with-dependencies.jarIceberg 1.5.0: gs://spark-lib/biglake/biglake-catalog-iceberg1.5.0-0.1.1-with-dependencies.jarIceberg 1.2.0: gs://spark-lib/biglake/biglake-catalog-iceberg1.2.0-0.1.1-with-dependencies.jarIceberg 0.14.0: gs://spark-lib/biglake/biglake-catalog-iceberg0.14.0-0.1.1-with-dependencies.jar
SPARK_CATALOG: Die Katalogkennung für Spark. Sie ist mit einem BigLake Metastore (classic)-Katalog verknüpft.PROJECT_ID: die Google Cloud Projekt-ID des BigLake Metastore (classic)-Katalogs, mit dem der Spark-Katalog verknüpft ist.LOCATION: der Google Cloud-Standort des BigLake Metastore (classic)-Katalogs, mit dem der Spark-Katalog verknüpft ist.BLMS_CATALOG: Die BigLake Metastore (classic)-Katalog-ID, mit der der Spark-Katalog verknüpft ist. Der Katalog muss nicht vorhanden sein und kann in Spark erstellt werden.GCS_DATA_WAREHOUSE_FOLDER: Der Cloud Storage-Ordner, in dem Spark alle Dateien erstellt. Er beginnt mitgs://.HMS_DB: (optional) Die HMS-Datenbank mit der Tabelle, aus der kopiert werden soll.HMS_TABLE(optional): Die HMS-Tabelle, aus der kopiert werden soll.HMS_URI: (optional) Der HMS Thrift-Endpunkt.
Verbindung mit einem Managed Service for Apache Spark-Cluster herstellen
Alternativ können Sie einen Managed Service for Apache Spark-Job an einen Cluster senden. Im folgenden Beispiel wird der entsprechende benutzerdefinierte Iceberg-Katalog installiert.
Wenn Sie eine Verbindung mit einem Managed Service for Apache Spark-Cluster herstellen möchten, senden Sie einen Job mit den folgenden Spezifikationen:
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=MANAGED_SERVICE_FOR_APACHE_SPARK_CLUSTER \ --project=MANAGED_SERVICE_FOR_APACHE_SPARK_PROJECT_ID \ --region=MANAGED_SERVICE_FOR_APACHE_SPARK_LOCATION \ --jars=BIGLAKE_ICEBERG_CATALOG_JAR \ --properties="${CONFS}" \ --file=QUERY_FILE_PATH
Ersetzen Sie Folgendes:
MANAGED_SERVICE_FOR_APACHE_SPARK_CLUSTER: Der Managed Service for Apache Spark Cluster, an den der Job gesendet werden soll.MANAGED_SERVICE_FOR_APACHE_SPARK_PROJECT_ID: Die Projekt-ID des Managed Service for Apache Spark-Clusters. Diese ID kann sich vonPROJECT_IDunterscheiden.MANAGED_SERVICE_FOR_APACHE_SPARK_LOCATION: Der Standort des Managed Service for Apache Spark-Clusters. Dieser Standort kann sich vonLOCATIONunterscheiden.QUERY_FILE_PATH: Der Pfad zur Datei mit den auszuführenden Abfragen.
Verbindung mit Managed Service for Apache Spark herstellen
Ebenso können Sie eine Batcharbeitslast an Managed Service for Apache Spark senden. Folgen Sie dazu der Anleitung für Batcharbeitslasten mit den folgenden zusätzlichen Flags:
--properties="${CONFS}"--jars=BIGLAKE_ICEBERG_CATALOG_JAR
Verbindung mit gespeicherten Prozeduren von BigQuery herstellen
Sie können gespeicherte Prozeduren von BigQuery verwenden, um Managed Service for Apache Spark-Jobs auszuführen. Der Vorgang ähnelt dem direkten Ausführen von Managed Service for Apache Spark -Jobs in Managed Service for Apache Spark.
Metastore-Ressourcen erstellen
In den folgenden Abschnitten wird beschrieben, wie Sie Ressourcen im Metastore erstellen.
Kataloge erstellen
Für Katalognamen gelten Einschränkungen. Weitere Informationen finden Sie unter Beschränkungen. Wählen Sie eine der folgenden Optionen aus, um einen Katalog zu erstellen:
API
Verwenden Sie die
projects.locations.catalogs.create
Methode und geben Sie den Namen eines Katalogs an.
Spark SQL
CREATE NAMESPACE SPARK_CATALOG;
Terraform
Dadurch wird eine BigLake-Datenbank mit dem Namen "my_database" vom Typ "HIVE" in dem Katalog erstellt, der durch die Variable "google_biglake_catalog.default.id" angegeben wird. Weitere Informationen finden Sie in der Terraform-Dokumentation zu BigLake.
resource "google_biglake_catalog" "default" { name = "my_catalog" location = "US" }
Datenbanken erstellen
Für Datenbanknamen gelten Einschränkungen. Weitere Informationen finden Sie unter Beschränkungen. Damit Ihre Datenbankressource mit Datenmodulen kompatibel ist, empfehlen wir, Datenbanken mit Datenmodulen zu erstellen, anstatt den Ressourcentext manuell zu erstellen. Wählen Sie eine der folgenden Optionen aus, um eine Datenbank zu erstellen:
API
Verwenden Sie die
projects.locations.catalogs.databases.create
Methode und geben Sie den Namen einer Datenbank an.
Spark SQL
CREATE NAMESPACE SPARK_CATALOG.BLMS_DB;
Ersetzen Sie Folgendes:
BLMS_DB: Die zu erstellende BigLake Metastore (classic)-Datenbank-ID.
Terraform
Dadurch wird eine BigLake-Datenbank mit dem Namen "my_database" vom Typ "HIVE" in dem Katalog erstellt, der durch die Variable "google_biglake_catalog.default.id" angegeben wird. Weitere Informationen finden Sie in der Terraform-Dokumentation zu 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" } } }
Tabellen erstellen
Für Tabellennamen gelten Einschränkungen. Weitere Informationen finden Sie unter Tabellennamen. Wählen Sie eine der folgenden Optionen, um eine Tabelle zu erstellen:
API
Verwenden Sie die
projects.locations.catalogs.databases.tables.create
Methode und geben Sie den Namen einer Tabelle an.
Spark SQL
CREATE TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE (id bigint, data string) USING iceberg;
Ersetzen Sie Folgendes:
BLMS_TABLE: Die zu erstellende BigLake Metastore (classic)-Tabellen-ID.
Terraform
Dadurch wird eine BigLake Metastore (classic)-Tabelle mit dem Namen "my_table" vom Typ "Hive" in der Datenbank registriert, die durch die Variable "google_biglake_database.default.id" angegeben wird. Beachten Sie, dass die Tabelle vor der Registrierung im Katalog vorhanden sein muss. Dies kann durch Initialisieren der Tabelle über eine Engine wie Apache Spark erreicht werden. Weitere Informationen finden Sie in der Dokumentation zu Terraform Provider: BigLake-Tabelle.
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" } } }
E2E Terraform-Beispiel
Dieses GitHub-Beispiel enthält ein ausführbares E2E-Beispiel, das einen BigLake Metastore (classic) Katalog, eine BigLake Metastore (classic)-Datenbank und eine BigLake Metastore (classic)-Tabelle erstellt. Weitere Informationen zur Verwendung dieses Beispiels finden Sie unter Grundlegende Terraform-Befehle.
Iceberg-Tabelle aus Hive Metastore in BigLake Metastore (classic) kopieren
Verwenden Sie die folgende Spark SQL-Anweisung, um eine Iceberg-Tabelle zu erstellen und eine Hive Metastore-Tabelle in BigLake Metastore (classic) zu kopieren:
CREATE TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE (id bigint, data string) USING iceberg TBLPROPERTIES(hms_table='HMS_DB.HMS_TABLE');
BigLake-Tabellen mit BigLake Metastore (classic)-Tabellen verknüpfen
Wenn Sie eine Iceberg-Tabelle in Spark erstellen, können Sie optional gleichzeitig eine verknüpfte externe Iceberg-Tabelle erstellen.
Tabellen automatisch verknüpfen
Verwenden Sie die folgende Spark SQL-Anweisung, um eine Iceberg-Tabelle in Spark zu erstellen und gleichzeitig eine externe Iceberg-Tabelle zu erstellen:
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');
Ersetzen Sie Folgendes:
BQ_TABLE_PATH: Der Pfad der zu erstellenden externen Iceberg-Tabelle. Folgen Sie der BigQuery-Syntax für Tabellenpfade. Wenn kein Projekt angegeben ist, wird dasselbe Projekt wie beim BigLake Metastore (classic)-Katalog verwendet.BQ_RESOURCE_CONNECTION(optional): Das Format istproject.location.connection-id. Wenn angegeben, verwenden BigQuery Abfragen die Cloud-Ressourcenverbindung Anmeldedaten, um auf BigLake Metastore (klassisch) zuzugreifen. Wenn nicht angegeben, erstellt BigQuery eine reguläre externe Tabelle anstelle einer BigLake-Tabelle.
Tabellen manuell verknüpfen
Verwenden Sie die folgende BigQuery SQL-Anweisung, um manuell Links zu externen Iceberg-Tabellen mit angegebenen BigLake Metastore (classic)-Tabellen-URIs (blms://…) zu erstellen:
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-Ressourcen aufrufen
In den folgenden Abschnitten wird beschrieben, wie Sie Ressourcen in BigLake Metastore (classic) aufrufen.
Kataloge aufrufen
Wenn Sie alle Datenbanken in einem Katalog aufrufen möchten, verwenden Sie die Methode projects.locations.catalogs.list und geben Sie den Namen eines Katalogs an.
Wenn Sie Informationen zu einem Katalog aufrufen möchten, verwenden Sie die
projects.locations.catalogs.get
Methode und geben Sie den Namen eines Katalogs an.
Datenbanken aufrufen
So rufen Sie eine Datenbank auf:
API
Wenn Sie alle Tabellen in einer Datenbank aufrufen möchten, verwenden Sie die
projects.locations.catalogs.databases.list
Methode und geben Sie den Namen einer Datenbank an.
Wenn Sie Informationen zu einer Datenbank aufrufen möchten, verwenden Sie die
projects.locations.catalogs.databases.get
Methode und geben Sie den Namen einer Datenbank an.
Spark SQL
Verwenden Sie die folgende Anweisung, um alle Datenbanken in einem Katalog aufzurufen:
SHOW { DATABASES | NAMESPACES } IN SPARK_CATALOG;
Verwenden Sie die folgende Anweisung, um Informationen zu einer definierten Datenbank aufzurufen:
DESCRIBE { DATABASE | NAMESPACE } [EXTENDED] SPARK_CATALOG.BLMS_DB;
Tabellen anzeigen
So rufen Sie alle Tabellen in einer Datenbank oder eine definierte Tabelle auf:
API
Wenn Sie alle Tabellen in einer Datenbank aufrufen möchten, verwenden Sie die
projects.locations.catalogs.databases.tables.list Methode und geben Sie den Namen einer Datenbank an.
Wenn Sie Informationen zu einer Tabelle aufrufen möchten, verwenden Sie die Methode projects.locations.catalogs.databases.tables.get und geben Sie den Namen einer Tabelle an.
Spark SQL
Mit der folgenden Anweisung können Sie alle Tabellen in einer Datenbank aufrufen:
SHOW TABLES IN SPARK_CATALOG.BLMS_DB;
Verwenden Sie die folgende Anweisung, um Informationen zu einer definierten Tabelle aufzurufen:
DESCRIBE TABLE [EXTENDED] SPARK_CATALOG.BLMS_DB.BLMS_TABLE;
Metastore-Ressourcen ändern
In den folgenden Abschnitten wird beschrieben, wie Sie Ressourcen im Metastore ändern.
Tabellen aktualisieren
Um Konflikte zu vermeiden, wenn mehrere Jobs gleichzeitig versuchen, dieselbe Tabelle zu aktualisieren, verwendet BigLake Metastore (classic) das optimistische Sperrverfahren. Zur Verwendung des optimistischen Sperrverfahrens müssen Sie zuerst die aktuelle Version der Tabelle (ETag genannt) mithilfe der GetTable Methode abrufen. Anschließend können Sie Änderungen an der Tabelle vornehmen und die Methode UpdateTable verwenden, wobei Sie das zuvor abgerufene ETag übergeben. Wenn ein anderer Job die Tabelle nach dem Abrufen des Etags aktualisiert, schlägt die Methode UpdateTable fehl. So kann nur ein Job die Tabelle gleichzeitig aktualisieren und Konflikte werden vermieden.
Wählen Sie eine der folgenden Optionen, um eine Tabelle zu aktualisieren:
API
Verwenden Sie die
projects.locations.catalogs.databases.tables.patch
Methode und geben Sie den Namen einer Tabelle an.
Spark SQL
Informationen zu Optionen für die Tabellenaktualisierung in SQL finden Sie unter
ALTER TABLE.
Tabellen umbenennen
Wählen Sie eine der folgenden Optionen aus, um eine Tabelle zu löschen:
API
Verwenden Sie die Methode projects.locations.catalogs.databases.tables.rename und geben Sie den Namen einer Tabelle sowie einen newName-Wert an.
Spark SQL
ALTER TABLE BLMS_TABLE RENAME TO NEW_BLMS_TABLE;
Ersetzen Sie Folgendes:
NEW_BLMS_TABLE: Der neue Name fürBLMS_TABLE. Muss sich im selben Dataset wieBLMS_TABLEbefinden.
Metastore-Ressourcen löschen
In den folgenden Abschnitten wird beschrieben, wie Sie Ressourcen in BigLake Metastore (classic) löschen.
Kataloge löschen
Wählen Sie eine der folgenden Optionen aus, um einen Katalog zu löschen:
API
Verwenden Sie die
projects.locations.catalogs.delete
Methode und geben Sie den Namen eines Katalogs an. Mit dieser Methode werden die
zugehörigen Dateien in Google Cloudnicht gelöscht.
Spark SQL
DROP NAMESPACE SPARK_CATALOG;
Datenbanken löschen
Wählen Sie eine der folgenden Optionen aus, um eine Datenbank zu löschen:
API
Verwenden Sie die
projects.locations.catalogs.databases.delete
Methode und geben Sie den Namen einer Datenbank an. Mit dieser Methode werden die
zugehörigen Dateien in Google Cloudnicht gelöscht.
Spark SQL
DROP NAMESPACE SPARK_CATALOG.BLMS_DB;
Tabellen löschen
Wählen Sie eine der folgenden Optionen aus, um eine Tabelle zu löschen:
API
Verwenden Sie die
projects.locations.catalogs.databases.tables.delete
Methode und geben Sie den Namen einer Tabelle an. Mit dieser Methode werden die
zugehörigen Dateien in Google Cloudnicht gelöscht.
Spark SQL
Verwenden Sie die folgende Anweisung, um nur die Tabelle zu löschen:
DROP TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE;
Verwenden Sie die folgende Anweisung, um die Tabelle zu löschen und die zugehörigen Dateien in Google Cloud, zu löschen:
DROP TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE PURGE;