Open-Source-Metadaten mit dem BigLake-Metastore (klassisch) verwalten
BigLake Metastore (klassisch) ist ein einheitlicher physischer Metadatendienst für Datenanalyseprodukte auf Trusted Cloud by S3NS. BigLake Metastore (klassisch) bietet eine zentrale Quelle für Metadaten und ermöglicht es Ihnen, Daten aus mehreren Quellen zu verwalten und darauf zuzugreifen. BigLake Metastore (klassisch) ist über BigQuery und verschiedene offene Datenverarbeitungs-Engines in Dataproc zugänglich und daher ein nützliches Tool für Datenanalysten und Entwickler.
Informationen zur Verwaltung von Geschäftsmetadaten finden Sie unter Dataplex Universal Catalog.
Funktionsweise von BigLake Metastore (klassisch)
BigLake-Metastore (klassisch) 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 Dataproc-Clustern verwenden. BigLake Metastore (klassisch) funktioniert über seine Hive-kompatiblen APIs genauso wie Hive Metastore. Sie können Open-Format-Tabellen in BigQuery sofort abfragen, ohne dass weitere Schritte erforderlich sind. BigLake Metastore (klassisch) unterstützt nur Apache Iceberg-Tabellen.
BigLake Metastore (klassisch) bietet APIs, Clientbibliotheken und eine Datenmodul-Integration (z. B. Apache Spark), um Kataloge, Datenbanken und Tabellen zu verwalten.
Beschränkungen
Für BigLake Metastore (klassisch) gelten die folgenden Einschränkungen:
- BigLake Metastore (klassisch) unterstützt keine Apache Hive-Tabellen.
- IAM-Rollen und -Berechtigungen (Identity and Access Management) können nur für Projekte gewährt werden. Das Erteilen von IAM-Berechtigungen für Ressourcen wird nicht unterstützt.
- Cloud Monitoring wird nicht unterstützt.
- Für Kataloge und Datenbanken von BigLake Metastore (klassisch) 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 Kombination aus Projekt und Region eindeutig sein.
- Für BigLake Metastore-Tabellen (klassisch) gelten dieselben Namenskonventionen wie für BigQuery-Tabellen. Weitere Informationen finden Sie unter Tabellennamen.
Hinweise
Sie müssen die Abrechnung und die BigLake API aktivieren, bevor Sie BigLake Metastore (klassisch) 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 Trusted Cloud -Projekt. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
Aktivieren Sie die BigLake API.
Erforderliche Rollen
- Für die vollständige Kontrolle über BigLake Metastore-Ressourcen (klassisch) benötigen Sie die Rolle „BigLake-Administrator“ (
roles/biglake.admin
). Wenn Sie ein Dienstkonto des BigQuery Spark-Connectors, ein Dataproc Serverless-Dienstkonto oder ein Dataproc-VM-Dienstkonto verwenden, weisen Sie dem Konto die BigLake-Administratorrolle zu. - Für den Lesezugriff auf BigLake Metastore-Ressourcen (klassisch) benötigen Sie die Rolle „BigLake-Betrachter“ (
roles/biglake.viewer
). Beim Abfragen einer BigLake Metastore-Tabelle (klassisch) 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 kann die Identität, die den BigLake-Metastore (klassisch) aufruft, ein Nutzer oder ein Dienstkonto sein:
- Nutzer:Wenn Sie die BigLake API direkt aufrufen oder eine BigLake-Tabelle für Apache Iceberg in einer BigQuery-Tabelle ohne Verbindung von BigQuery abfragen. In diesem Fall werden die Anmeldedaten des Nutzers verwendet.
- BigQuery Cloud Resource Connection:Beim Abfragen einer BigLake Iceberg-Tabelle in BigQuery mit einer Verbindung von BigQuery. BigQuery verwendet die Anmeldedaten des Dienstkontos der Verbindung, um auf BigLake Metastore (classic) zuzugreifen.
- BigQuery Spark-Connector: Bei Verwendung von Spark mit BigLake Metastore (klassisch) in einer von BigQuery gespeicherten Prozedur. Spark verwendet die Dienstkontoanmeldedaten des Spark-Connectors, um auf BigLake Metastore (klassisch) zuzugreifen und BigQuery-Tabellen zu erstellen.
- Dataproc Serverless-Dienstkonto: Bei Verwendung von Spark mit BigLake in Dataproc Serverless. Spark verwendet die Dienstkonto-Anmeldedaten.
- Dataproc-VM-Dienstkonto: Bei Verwendung von Dataproc (nicht Dataproc Serverless). 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-Ressourcen (klassisch) erforderlich sind:
Erforderliche Berechtigungen
biglake.tables.get
auf Projektebene für alle schreibgeschützten Zugriffe. Abfragen einer BigLake Iceberg-Tabelle in BigQuery Die 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.delegate
auf der Ebene der BigQuery Cloud Resource-Verbindung oder höher, um eine BigLake Iceberg-Tabelle in einer BigQuery-Tabelle über eine Verbindung zu erstellen.
Verbindung zu BigLake Metastore (klassisch) herstellen
In den folgenden Abschnitten wird beschrieben, wie Sie eine Verbindung zum BigLake-Metastore (klassisch) 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 (klassisch) aus Open-Source-Engines wie Apache Spark her.
Verbindung zu einer Dataproc-VM herstellen
So stellen Sie mit einer Dataproc-VM eine Verbindung zu BigLake Metastore (klassisch) her:
- Verwenden Sie SSH für eine Verbindung zu Dataproc.
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 (klassisch) 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 Verwendung der Spark-Version, die der Spark-Version in Ihrer Dataproc- oder serverlosen Dataproc-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.1
BIGLAKE_ICEBERG_CATALOG_JAR
: Der Cloud Storage-URI des zu installierenden benutzerdefinierten Iceberg-Katalog-Plug-ins. 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-Katalog (klassisch) verknüpft.PROJECT_ID
: Die Trusted Cloud Projekt-ID des BigLake Metastore-Katalogs (klassisch), mit dem der Spark-Katalog verknüpft ist.LOCATION
: Der Google Cloud-Speicherort des BigLake Metastore-Katalogs (klassisch), mit dem der Spark-Katalog verknüpft ist.BLMS_CATALOG
: Die BigLake Metastore-Katalog-ID (klassisch), 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 zu einem Dataproc-Cluster herstellen
Alternativ können Sie einen Dataproc-Job an einen Cluster senden. Im folgenden Beispiel wird der entsprechende benutzerdefinierte Iceberg-Katalog installiert.
Um eine Verbindung zu einem Dataproc-Cluster herzustellen, 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=DATAPROC_CLUSTER \ --project=DATAPROC_PROJECT_ID \ --region=DATAPROC_LOCATION \ --jars=BIGLAKE_ICEBERG_CATALOG_JAR \ --properties="${CONFS}" \ --file=QUERY_FILE_PATH
Ersetzen Sie Folgendes:
DATAPROC_CLUSTER
: Der Dataproc-Cluster, an den der Job gesendet werden soll.DATAPROC_PROJECT_ID
: Die Projekt-ID des Dataproc-Clusters. Diese ID kann sich vonPROJECT_ID
unterscheiden.DATAPROC_LOCATION
: Der Standort des Dataproc-Clusters. Dieser Speicherort kann sich vonLOCATION
unterscheiden.QUERY_FILE_PATH
: Der Pfad zur Datei mit den auszuführenden Abfragen.
Mit Dataproc Serverless verbinden
Sie können auch eine Batcharbeitslast an Dataproc Serverless 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 BigQuery-Prozeduren herstellen
Sie können gespeicherte Prozeduren von BigQuery verwenden, um Dataproc Serverless-Jobs auszuführen. Das Verfahren ähnelt dem Ausführen von Dataproc Serverless-Jobs direkt in Dataproc.
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 Einschränkungen. Wählen Sie eine der folgenden Optionen aus, um einen Katalog zu erstellen:
API
Verwenden Sie die Methode projects.locations.catalogs.create
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 Einschränkungen. Damit Ihre Datenbankressource mit Daten-Engines kompatibel ist, empfehlen wir, Datenbanken mit Daten-Engines zu erstellen, anstatt den Ressourcen-Body manuell zu erstellen. Wählen Sie eine der folgenden Optionen aus, um eine Datenbank zu erstellen:
API
Verwenden Sie die Methode projects.locations.catalogs.databases.create
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-Datenbank-ID (klassisch)
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 Methode projects.locations.catalogs.databases.tables.create
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-Tabellen-ID (klassisch)
Terraform
Dadurch wird eine BigLake Metastore-Tabelle (klassisch) mit dem Namen „my_table“ vom Typ „Hive“ in der Datenbank registriert, die durch die Variable „google_biglake_database.default.id“ angegeben wird. Die Tabelle muss vor der Registrierung im Katalog vorhanden sein. 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-Katalog, eine BigLake Metastore-Datenbank und eine BigLake Metastore-Tabelle erstellt. Weitere Informationen zur Verwendung dieses Beispiels finden Sie unter Grundlegende Terraform-Befehle.
Iceberg-Tabelle aus Hive Metastore in BigLake Metastore (klassisch) kopieren
Verwenden Sie die folgende Spark SQL-Anweisung, um eine Iceberg-Tabelle zu erstellen und eine Hive Metastore-Tabelle in den BigLake Metastore (klassisch) 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-Tabellen (klassisch) 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 automatisch 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 externen Iceberg-Tabelle, die erstellt werden soll. Halten Sie sich an die Syntax für BigQuery-Tabellenpfade. Wenn kein Projekt angegeben ist, wird dasselbe Projekt wie beim BigLake-Metastore-Katalog (klassisch) verwendet.BQ_RESOURCE_CONNECTION
(optional): Das Format istproject.location.connection-id
. Wenn dieses Flag angegeben ist, verwenden BigQuery-Abfragen die Anmeldedaten für die Cloud Resource-Verbindung, um auf BigLake Metastore (klassisch) zuzugreifen. Wenn nicht angegeben, erstellt BigQuery eine reguläre externe Tabelle anstelle einer BigLake-Tabelle.
Tabellen manuell verknüpfen
Wenn Sie manuell Links zu externen Iceberg-Tabellen mit angegebenen BigLake Metastore-Tabellen-URIs (klassisch) (blms://…
) erstellen möchten, verwenden Sie die folgende BigQuery-SQL-Anweisung:
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 im BigLake-Metastore (klassisch) ansehen.
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 Methode projects.locations.catalogs.get
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 Methode projects.locations.catalogs.databases.list
und geben Sie den Namen einer Datenbank an.
Wenn Sie Informationen zu einer Datenbank aufrufen möchten, verwenden Sie die Methode projects.locations.catalogs.databases.get
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;
Mit der folgenden Anweisung können Sie Informationen zu einer definierten Datenbank aufrufen:
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 Methode projects.locations.catalogs.databases.tables.list
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;
Mit der folgenden Anweisung können Sie Informationen zu einer definierten Tabelle aufrufen:
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, wird im BigLake-Metastore (klassisch) die optimistische Sperrung verwendet. Zur Verwendung des optimistischen Sperrverfahrens müssen Sie zuerst die aktuelle Version der Tabelle (ETag genannt) mithilfe der Methode GetTable
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 jeweils nur ein Job die Tabelle aktualisieren, wodurch Konflikte vermieden werden.
Wählen Sie eine der folgenden Optionen, um eine Tabelle zu aktualisieren:
API
Verwenden Sie die Methode projects.locations.catalogs.databases.tables.patch
und geben Sie den Namen einer Tabelle an.
Spark SQL
Informationen zu Optionen zum Aktualisieren von Tabellen 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_TABLE
befinden.
Metastore-Ressourcen löschen
In den folgenden Abschnitten wird beschrieben, wie Sie Ressourcen im BigLake-Metastore (klassisch) löschen.
Kataloge löschen
Wählen Sie eine der folgenden Optionen aus, um einen Katalog zu löschen:
API
Verwenden Sie die Methode projects.locations.catalogs.delete
und geben Sie den Namen eines Katalogs an. Mit dieser Methode werden die zugehörigen Dateien auf Trusted 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 Methode projects.locations.catalogs.databases.delete
und geben Sie den Namen einer Datenbank an. Mit dieser Methode werden die zugehörigen Dateien auf Trusted 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 Methode projects.locations.catalogs.databases.tables.delete
und geben Sie den Namen einer Tabelle an. Mit dieser Methode werden die zugehörigen Dateien auf Trusted Cloudnicht gelöscht.
Spark SQL
Wenn Sie nur die Tabelle löschen möchten, verwenden Sie die folgende Anweisung:
DROP TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE;
Verwenden Sie die folgende Anweisung, um die Tabelle zu löschen und die zugehörigen Dateien auf Trusted Cloudzu löschen:
DROP TABLE SPARK_CATALOG.BLMS_DB.BLMS_TABLE PURGE;