Apache Iceberg-Tabelle mit Metadaten im BigQuery Metastore erstellen

In diesem Dokument erfahren Sie, wie Sie mit dem Dataproc Jobs-Dienst, der Spark SQL-Befehlszeile oder der Zeppelin eine Apache Iceberg-Tabelle mit Metadaten im BigQuery Metastore erstellen, die auf einem Dataproc-Cluster ausgeführt wird.

Hinweise

Erstellen Sie ein Google Cloud -Projekt, einen Cloud Storage-Bucket und einen Dataproc-Cluster, falls noch nicht geschehen.

  1. Projekt einrichten

    1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    3. Make sure that billing is enabled for your Google Cloud project.

    4. Enable the Dataproc, BigQuery, and Cloud Storage APIs.

      Enable the APIs

    5. Install the Google Cloud CLI.
    6. To initialize the gcloud CLI, run the following command:

      gcloud init
    7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    8. Make sure that billing is enabled for your Google Cloud project.

    9. Enable the Dataproc, BigQuery, and Cloud Storage APIs.

      Enable the APIs

    10. Install the Google Cloud CLI.
    11. To initialize the gcloud CLI, run the following command:

      gcloud init

  2. Erstellen Sie einen Cloud Storage-Bucket in Ihrem Projekt.

    1. In the Google Cloud console, go to the Cloud Storage Buckets page.

      Go to Buckets page

    2. Click Create bucket.
    3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
      • For Name your bucket, enter a name that meets the bucket naming requirements.
      • For Choose where to store your data, do the following:
        • Select a Location type option.
        • Select a Location option.
      • For Choose a default storage class for your data, select a storage class.
      • For Choose how to control access to objects, select an Access control option.
      • For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
    4. Click Create.

  3. Dataproc-Cluster erstellen. Um Ressourcen und Kosten zu sparen, können Sie einen Dataproc-Cluster mit nur einem Knoten erstellen, um die in diesem Dokument vorgestellten Beispiele auszuführen.

  4. Rollen für ein benutzerdefiniertes Dienstkonto gewähren (falls erforderlich): Standardmäßig verwenden Dataproc-Cluster-VMs das Compute Engine-Standarddienstkonto, um mit Dataproc zu interagieren. Wenn Sie beim Erstellen eines Clusters ein benutzerdefiniertes Dienstkonto angeben möchten, muss es die Rolle Dataproc-Worker (roles/dataproc.worker) oder eine benutzerdefinierte Rolle mit den erforderlichen Berechtigungen für die Rolle „Worker“ haben.

Zuordnung von Open Source-Datenbanken zu BigQuery-Datasets

Beachten Sie die folgende Zuordnung zwischen Open-Source-Datenbank- und BigQuery-Dataset-Begriffen:

OSS-Datenbank BigQuery-Dataset
Namespace, Datenbank Dataset
Partitionierte oder nicht partitionierte Tabelle Tabelle
Ansehen Ansehen

Iceberg-Tabelle erstellen

In diesem Abschnitt erfahren Sie, wie Sie eine Iceberg-Tabelle mit Metadaten im BigQuery Metastore erstellen, indem Sie Spark SQL-Code an den Dataproc-Dienst, die Spark SQL-Befehlszeile und die Weboberfläche der Zeppelin-Komponente senden, die auf einem Dataproc-Cluster ausgeführt werden.

Dataproc-Job

Sie können einen Job an den Dataproc-Dienst senden, indem Sie ihn über die Google Cloud Console oder die Google Cloud CLI an einen Dataproc-Cluster senden oder über einen HTTP-REST-Aufruf oder einen programmatischen gRPC-Aufruf der Dataproc Cloud Client Libraries an die Dataproc Jobs API.

In den Beispielen in diesem Abschnitt wird gezeigt, wie Sie mit der gcloud CLI, der Google Cloud Console oder der Dataproc REST API einen Dataproc Spark SQL-Job an den Dataproc-Dienst senden, um eine Iceberg-Tabelle mit Metadaten in BigQuery zu erstellen.

Jobdateien vorbereiten

Führen Sie die folgenden Schritte aus, um eine Spark SQL-Jobdatei zu erstellen. Die Datei enthält Spark SQL-Befehle zum Erstellen und Aktualisieren einer Iceberg-Tabelle.

  1. Kopieren Sie in einem lokalen Terminalfenster oder in Cloud Shell mit einem Texteditor wie vi oder nano die folgenden Befehle in eine iceberg-table.sql-Datei und speichern Sie die Datei im aktuellen Verzeichnis.

    USE CATALOG_NAME;
    CREATE NAMESPACE IF NOT EXISTS example_namespace;
    USE example_namespace;
    DROP TABLE IF EXISTS example_table;
    CREATE TABLE example_table (id int, data string) USING ICEBERG LOCATION 'gs://BUCKET/WAREHOUSE_FOLDER';
    INSERT INTO example_table VALUES (1, 'first row');
    ALTER TABLE example_table ADD COLUMNS (newDoubleCol double);
    DESCRIBE TABLE example_table;
    

    Ersetzen Sie Folgendes:

    • CATALOG_NAME: Name des Iceberg-Katalogs.
    • BUCKET und WAREHOUSE_FOLDER: Cloud Storage-Bucket und -Ordner, die für das Iceberg-Warehouse verwendet werden.
  2. Verwenden Sie das Tool gsutil, um die lokale iceberg-table.sql in Ihren Bucket in Cloud Storage zu kopieren.

    gsutil cp iceberg-table.sql gs://BUCKET/
    

Laden Sie als Nächstes die JAR-Datei iceberg-spark-runtime-3.5_2.12-1.5.2 herunter und kopieren Sie sie in Cloud Storage.

  1. Führen Sie in einem lokalen Terminalfenster oder in Cloud Shell den folgenden curl-Befehl aus, um die iceberg-spark-runtime-3.5_2.12-1.5.2-JAR-Datei in das aktuelle Verzeichnis herunterzuladen.

    curl -o iceberg-spark-runtime-3.5_2.12-1.5.2.jar https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-spark-runtime-3.5_2.12/1.5.2/iceberg-spark-runtime-3.5_2.12-1.5.2.jar
    
  2. Verwenden Sie das gsutil-Tool, um die lokale iceberg-spark-runtime-3.5_2.12-1.5.2-JAR-Datei aus dem aktuellen Verzeichnis in Ihren Bucket in Cloud Storage zu kopieren.

    gsutil cp iceberg-spark-runtime-3.5_2.12-1.5.2.jar gs://BUCKET/
    

Spark SQL-Job senden

Wählen Sie einen Tab aus, um der Anleitung zum Senden des Spark SQL-Jobs an den Dataproc-Dienst mit der gcloud CLI, der Google Cloud Console oder der Dataproc REST API zu folgen.

gcloud

  1. Führen Sie den folgenden Befehl gcloud dataproc jobs submit spark-sql lokal in einem Terminalfenster oder in Cloud Shell aus, um den Spark SQL-Job zum Erstellen der Iceberg-Tabelle einzureichen.

    gcloud dataproc jobs submit spark-sql \
        --project=PROJECT_ID \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --jars="gs://BUCKET/1.5.2/iceberg-spark-runtime-3.5_2.12-1.5.2.jar,gs://spark-lib/bigquery/iceberg-bigquery-catalog-1.5.2-1.0.0-beta.jar" \
        --properties="spark.sql.catalog.CATALOG_NAME=org.apache.iceberg.spark.SparkCatalog,spark.sql.catalog.CATALOG_NAME.catalog-impl=org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog,spark.sql.catalog.CATALOG_NAME.gcp_project=PROJECT_ID,spark.sql.catalog.CATALOG_NAME.gcp_location=LOCATION,spark.sql.catalog.CATALOG_NAME.warehouse=gs://BUCKET/WAREHOUSE_FOLDER" \
        -f="gs://BUCKETiceberg-table.sql"
    

    Hinweise:

    • PROJECT_ID: Die Projekt-ID Ihres Google Cloud -Abos. Projekt-IDs werden im Bereich Projektinformationen im Dashboard der Google Cloud Console aufgeführt.
    • CLUSTER_NAME: Der Name Ihres Dataproc-Clusters.
    • REGION: Die Compute Engine-Region, in der sich der Cluster befindet.
    • CATALOG_NAME: Name des Iceberg-Katalogs.
    • BUCKET und WAREHOUSE_FOLDER: Cloud Storage-Bucket und -Ordner, die für das Iceberg-Warehouse verwendet werden.
    • LOCATION: Ein unterstützter BigQuery-Speicherort. Der Standardstandort ist „USA“.
    • --jars: Die aufgeführten JAR-Dateien sind erforderlich, um Tabellenmetadaten in BigQuery Metastore zu erstellen.
    • --properties: Katalogeigenschaften
    • -f: Die iceberg-table.sql-Jobdatei, die Sie in Ihren Bucket in Cloud Storage kopiert haben.
  2. Sehen Sie sich die Tabellenbeschreibung in der Terminalausgabe an, wenn der Job abgeschlossen ist.

    Time taken: 2.194 seconds
    id                      int
    data                    string
    newDoubleCol            double
    Time taken: 1.479 seconds, Fetched 3 row(s)
    Job JOB_ID finished successfully.
    
  3. Tabellenmetadaten in BigQuery aufrufen

    1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

      Zu BigQuery Studio

    2. Metadaten von Iceberg-Tabellen ansehen

Konsole

Führen Sie die folgenden Schritte aus, um den Spark SQL-Job über die Google Cloud Console an den Dataproc-Dienst zu senden und eine Iceberg-Tabelle mit Metadaten im BigQuery Metastore zu erstellen.

  1. Rufen Sie in der Google Cloud Console unter Dataproc Job einreichen auf.

    Rufen Sie die Seite „Job senden“ auf und füllen Sie die folgenden Felder aus:

    • Job-ID: Akzeptieren Sie die vorgeschlagene ID oder fügen Sie eine eigene ID ein.
    • Region: Wählen Sie die Region aus, in der sich Ihr Cluster befindet.
    • Cluster: Wählen Sie Ihren Cluster aus.
    • Jobtyp: Wählen Sie SparkSql aus.
    • Quelltyp der Abfrage: Wählen Sie Query file aus.
    • Abfragedatei: gs://BUCKET/iceberg-table.sql einfügen
    • Jar-Dateien: Fügen Sie Folgendes ein:
      gs://BUCKET/iceberg-spark-runtime-3.5_2.12-1.5.2.jar,gs://spark-lib/bigquery/iceberg-bigquery-catalog-1.5.2-1.0.0-beta.jar
      
    • Properties (Properties): Klicken Sie fünfmal auf Add Property (Property hinzufügen), um eine Liste mit fünf key value-Eingabefeldern zu erstellen. Kopieren Sie dann die folgenden Schlüssel- und Wert-Paare, um fünf Properties zu definieren.
      # Schlüssel Wert
      1.
      spark.sql.catalog.CATALOG_NAME
      
      org.apache.iceberg.spark.SparkCatalog
      
      2.
      spark.sql.catalog.CATALOG_NAME.catalog-impl
      
      org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog
      
      3.
      spark.sql.catalog.CATALOG_NAME.gcp_project
      
      PROJECT_ID
      
      4.
      spark.sql.catalog.CATALOG_NAME.gcp_location
      
      LOCATION
      
      5.
      spark.sql.catalog.CATALOG_NAME.warehouse
      
      gs://BUCKET/WAREHOUSE_FOLDER
      

    Hinweise:

    • CATALOG_NAME: Name des Iceberg-Katalogs.
    • PROJECT_ID: Die Projekt-ID Ihres Google Cloud -Abos. Projekt-IDs sind im Bereich Projektinformationen im Dashboard der Google Cloud Console aufgeführt.
    • LOCATION: Ein unterstützter BigQuery-Speicherort. Der Standardstandort ist „USA“.
    • BUCKET und WAREHOUSE_FOLDER: Cloud Storage-Bucket und -Ordner, die für das Iceberg-Warehouse verwendet werden.
  2. Klicken Sie auf Senden.

  3. Wenn Sie den Fortschritt des Jobs im Blick behalten und die Jobausgabe ansehen möchten, rufen Sie in der Google Cloud Console die Dataproc-Seite Jobs auf und klicken Sie dann auf Job ID, um die Seite Jobdetails zu öffnen.

  4. Tabellenmetadaten in BigQuery aufrufen

    1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

      Zu BigQuery Studio

    2. Metadaten von Iceberg-Tabellen ansehen

REST

Sie können die Dataproc API jobs.submit verwenden, um den Spark SQL-Job an den Dataproc-Dienst zu senden und eine Iceberg-Tabelle mit Metadaten in BigQuery Metastore zu erstellen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Die Projekt-ID Ihres Google Cloud -Abos. Projekt-IDs werden im Bereich Projektinformationen im Dashboard der Google Cloud Console aufgeführt.
  • CLUSTER_NAME: Der Name Ihres Dataproc-Clusters.
  • REGION: Die Compute Engine-Region, in der sich Ihr Cluster befindet.
  • CATALOG_NAME: Name des Iceberg-Katalogs.
  • BUCKET und WAREHOUSE_FOLDER: Cloud Storage-Bucket und Ordner, die für das Iceberg-Warehouse verwendet werden.
  • LOCATION: Ein unterstützter BigQuery-Speicherort. Der Standardstandort ist „USA“.
  • jarFileUris: Die aufgeführten JAR-Dateien sind erforderlich, um Tabellenmetadaten in BigQuery Metastore zu erstellen.
  • properties: Katalogeigenschaften
  • queryFileUri: Die iceberg-table.sql-Jobdatei, die Sie in Ihren Bucket in Cloud Storage kopiert haben.

HTTP-Methode und URL:

POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/jobs:submit

JSON-Text anfordern:

{
  "projectId": "PROJECT_ID",
  "job": {
    "placement": {
      "clusterName": "CLUSTER_NAME"
    },
    "statusHistory": [],
    "reference": {
      "jobId": "",
      "projectId": "PROJECT_ID"
    },
    "sparkSqlJob": {
      "properties": {
        "spark.sql.catalog."CATALOG_NAME": "org.apache.iceberg.spark.SparkCatalog",
        "spark.sql.catalog."CATALOG_NAME".catalog-impl": "org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog",
        "spark.sql.catalog."CATALOG_NAME".gcp_project": "PROJECT_ID",
        "spark.sql.catalog."CATALOG_NAME".gcp_location": "LOCATION",
        "spark.sql.catalog."CATALOG_NAME".warehouse": "gs://BUCKET/WAREHOUSE_FOLDER"
      },
      "jarFileUris": [
        "gs://BUCKET/iceberg-spark-runtime-3.5_2.12-1.5.2.jar,gs://spark-lib/bigquery/iceberg-bigquery-catalog-1.5.2-1.0.0-beta.jar"
      ],
      "scriptVariables": {},
      "queryFileUri": "gs://BUCKET/iceberg-table.sql"
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "reference": {
    "projectId": "PROJECT_ID",
    "jobId": "..."
  },
  "placement": {
    "clusterName": "CLUSTER_NAME",
    "clusterUuid": "..."
  },
  "status": {
    "state": "PENDING",
    "stateStartTime": "..."
  },
  "submittedBy": "USER",
  "sparkSqlJob": {
    "queryFileUri": "gs://BUCKET/iceberg-table.sql",
    "properties": {
      "spark.sql.catalog.USER_catalog": "org.apache.iceberg.spark.SparkCatalog",
      "spark.sql.catalog.USER_catalog.catalog-impl": "org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog",
      "spark.sql.catalog.USER_catalog.gcp_project": "PROJECT_ID",
      "spark.sql.catalog.USER_catalog.gcp_location": "LOCATION",
      "spark.sql.catalog.USER_catalog.warehouse": "gs://BUCKET/WAREHOUSE_FOLDER"
    },
    "jarFileUris": [
      "gs://BUCKET/iceberg-spark-runtime-3.5_2.12-1.5.2.jar",
      "gs://spark-lib/bigquery/iceberg-bigquery-catalog-1.5.2-1.0.0-beta.jar"
    ]
  },
  "driverControlFilesUri": "gs://dataproc-...",
  "driverOutputResourceUri": "gs://dataproc-.../driveroutput",
  "jobUuid": "...",
  "region": "REGION"
}

Wenn Sie den Jobfortschritt beobachten und die Jobausgabe ansehen möchten, rufen Sie in der Google Cloud Console die Dataproc-Seite Jobs auf und klicken Sie dann auf Job ID, um die Seite Jobdetails zu öffnen.

Tabellenmetadaten in BigQuery aufrufen

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    Zu BigQuery Studio

  2. Metadaten von Iceberg-Tabellen ansehen

Spark SQL-Befehlszeile

In den folgenden Schritten wird gezeigt, wie Sie mit der Spark SQL-Befehlszeile, die auf dem Masterknoten eines Dataproc-Clusters ausgeführt wird, eine Iceberg-Tabelle mit Tabellenmetadaten erstellen, die im BigQuery Metastore gespeichert sind.

  1. Stellen Sie mit SSH eine Verbindung zum Masterknoten Ihres Dataproc-Clusters her.

  2. Kopieren Sie im Terminal der SSH-Sitzung mit dem Texteditor vi oder nano die folgenden Befehle in eine iceberg-table.sql-Datei.

    SET CATALOG_NAME = `CATALOG_NAME`;
    SET BUCKET = `BUCKET`;
    SET WAREHOUSE_FOLDER = `WAREHOUSE_FOLDER`;
    USE `${CATALOG_NAME}`;
    CREATE NAMESPACE IF NOT EXISTS `${CATALOG_NAME}`.example_namespace;
    DROP TABLE IF EXISTS `${CATALOG_NAME}`.example_namespace.example_table;
    CREATE TABLE `${CATALOG_NAME}`.example_namespace.example_table (id int, data string) USING ICEBERG LOCATION 'gs://${BUCKET}/${WAREHOUSE_FOLDER}';
    INSERT INTO `${CATALOG_NAME}`.example_namespace.example_table VALUES (1, 'first row');
    ALTER TABLE `${CATALOG_NAME}`.example_namespace.example_table ADD COLUMNS (newDoubleCol double);
    DESCRIBE TABLE `${CATALOG_NAME}`.example_namespace.example_table;
    

    Ersetzen Sie Folgendes:

    • CATALOG_NAME: Name des Iceberg-Katalogs.
    • BUCKET und WAREHOUSE_FOLDER: Cloud Storage-Bucket und -Ordner, die für das Iceberg-Warehouse verwendet werden.
  3. Führen Sie im Terminal der SSH-Sitzung den folgenden spark-sql-Befehl aus, um die Eisbergtabelle zu erstellen.

    spark-sql \
    --packages org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.5.2 \
    --jars https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-spark-runtime-3.5_2.12/1.5.2/iceberg-spark-runtime-3.5_2.12-1.5.2.jar,gs://spark-lib/bigquery/iceberg-bigquery-catalog-1.5.2-1.0.0-beta.jar \
    --conf spark.sql.catalog.CATALOG_NAME=org.apache.iceberg.spark.SparkCatalog \
    --conf spark.sql.catalog.CATALOG_NAME.catalog-impl=org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog \
    --conf spark.sql.catalog.CATALOG_NAME.gcp_project=PROJECT_ID \
    --conf spark.sql.catalog.CATALOG_NAME.gcp_location=LOCATION \
    --conf spark.sql.catalog.CATALOG_NAME.warehouse=gs://BUCKET/WAREHOUSE_FOLDER \
    -f iceberg-table.sql 
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die Projekt-ID Ihres Google Cloud -Abos. Projekt-IDs werden im Bereich Projektinformationen im Dashboard der Google Cloud Console aufgeführt.
    • LOCATION: Ein unterstützter BigQuery-Speicherort. Der Standardstandort ist „USA“.
  4. Tabellenmetadaten in BigQuery ansehen

    1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

      Zu BigQuery Studio

    2. Metadaten von Iceberg-Tabellen ansehen

Zeppelin-Weboberfläche

In den folgenden Schritten wird gezeigt, wie Sie mit der Zeppelin-Weboberfläche, die auf dem Masterknoten eines Dataproc-Clusters ausgeführt wird, eine Iceberg-Tabelle mit Tabellenmetadaten erstellen, die im BigQuery Metastore gespeichert sind .

  1. Rufen Sie in der Google Cloud Console die Seite Dataproc-Cluster auf.

    Seite „Dataproc-Cluster“ aufrufen

  2. Wählen Sie den Clusternamen aus, um die Seite Clusterdetails zu öffnen.

  3. Klicken Sie auf den Tab Weboberflächen, um eine Liste der Component Gateway-Links zu den Weboberflächen der im Cluster installierten Standard- und optionalen Komponenten aufzurufen.

  4. Klicken Sie auf den Link Zeppelin, um die Zeppelin-Weboberfläche zu öffnen.

  5. Klicken Sie in der Zeppelin-Weboberfläche auf das Menü anonymous (anonym) und dann auf Interpreter, um die Seite Interpreter zu öffnen.

  6. Fügen Sie dem Zeppelin Spark-Interpreter zwei Jar-Dateien hinzu:

    1. Geben Sie „Spark“ in das Feld Search interpreters ein, um zum Abschnitt Spark für den Interpreter zu scrollen.
    2. Klicken Sie auf edit (Bearbeiten).
    3. Fügen Sie Folgendes in das Feld spark.jars ein:

      https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-spark-runtime-3.5_2.12/1.5.2/iceberg-spark-runtime-3.5_2.12-1.5.2.jar,gs://spark-lib/bigquery/iceberg-bigquery-catalog-1.5.2-1.0.0-beta.jar

    4. Klicken Sie unten im Bereich „Spark-Interpreter“ auf Speichern und dann auf OK, um den Interpreter zu aktualisieren und mit den neuen Einstellungen neu zu starten.

  7. Klicken Sie im Zeppelin-Notizbuchmenü auf Neue Notiz erstellen.

  8. Geben Sie im Dialogfeld Neue Notiz erstellen einen Namen für das Notebook ein und akzeptieren Sie den Standardinterpreter spark. Klicken Sie auf Erstellen, um das Notebook zu öffnen.

  9. Kopieren Sie den folgenden PySpark-Code in Ihr Zeppelin-Notebook, nachdem Sie die Variablen ausgefüllt haben.

    %pyspark
    from pyspark.sql import SparkSession
    project_id = "PROJECT_ID" catalog = "CATALOG_NAME" namespace = "NAMESPACE" location = "LOCATION" warehouse_dir = "gs://BUCKET/WAREHOUSE_DIRECTORY"
    spark = SparkSession.builder \ .appName("BigQuery Metastore Iceberg") \ .config(f"spark.sql.catalog.{catalog}", "org.apache.iceberg.spark.SparkCatalog") \ .config(f"spark.sql.catalog.{catalog}.catalog-impl", "org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog") \ .config(f"spark.sql.catalog.{catalog}.gcp_project", f"{project_id}") \ .config(f"spark.sql.catalog.{catalog}.gcp_location", f"{location}") \ .config(f"spark.sql.catalog.{catalog}.warehouse", f"{warehouse_dir}") \ .getOrCreate()
    spark.sql(f"USE `{catalog}`;") spark.sql(f"CREATE NAMESPACE IF NOT EXISTS `{namespace}`;") spark.sql(f"USE `{namespace}`;")
    \# Create table and display schema (without LOCATION) spark.sql("DROP TABLE IF EXISTS example_iceberg_table") spark.sql("CREATE TABLE example_iceberg_table (id int, data string) USING ICEBERG") spark.sql("DESCRIBE example_iceberg_table;")
    \# Insert table data. spark.sql("INSERT INTO example_iceberg_table VALUES (1, 'first row');")
    \# Alter table, then display schema. spark.sql("ALTER TABLE example_iceberg_table ADD COLUMNS (newDoubleCol double);")
    \# Select and display the contents of the table. spark.sql("SELECT * FROM example_iceberg_table").show()

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die Projekt-ID Ihres Google Cloud -Abos. Projekt-IDs werden im Bereich Projektinformationen im Dashboard der Google Cloud Console aufgeführt.
    • CATALOG_NAME und NAMESPACE: Der Name und der Namespace des Iceberg-Katalogs werden kombiniert, um die Iceberg-Tabelle (catalog.namespace.table_name) zu identifizieren.
    • LOCATION: Ein unterstützter BigQuery-Speicherort. Der Standardstandort ist „USA“.
    • BUCKET und WAREHOUSE_DIRECTORY: Cloud Storage-Bucket und -Ordner, die als Iceberg-Lagerverzeichnis verwendet werden.
  10. Klicken Sie auf das Symbol „Ausführen“ oder drücken Sie die Taste Shift-Enter, um den Code auszuführen. Wenn der Job abgeschlossen ist, wird in der Statusmeldung „Spark-Job abgeschlossen“ angezeigt und in der Ausgabe der Tabelleninhalt:

  11. Tabellenmetadaten in BigQuery ansehen

    1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

      Zu BigQuery Studio

    2. Metadaten von Iceberg-Tabellen ansehen