Apache Iceberg-Tabelle mit Metadaten im BigLake Metastore erstellen

In diesem Dokument wird beschrieben, wie Sie mit dem Dataproc Jobs-Dienst, der Spark SQL-Befehlszeile oder der Zeppelin-Weboberfläche, die in einem Dataproc-Cluster ausgeführt wird, eine Apache Iceberg-Tabelle mit Metadaten in BigLake Metastore erstellen.

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.

      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 (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. Enable the Dataproc, BigQuery, and Cloud Storage APIs.

      Roles required to enable APIs

      To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the APIs

    5. Install the Google Cloud CLI.

    6. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    7. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

      gcloud init
    8. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

      Go to project selector

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

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

      Roles required to enable APIs

      To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the APIs

    11. Install the Google Cloud CLI.

    12. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    13. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

      gcloud init
    14. 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

      2. Click Create.
      3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
        1. In the Get started section, do the following:
          • Enter a globally unique name that meets the bucket naming requirements.
          • To add a bucket label, expand the Labels section (), click Add label, and specify a key and a value for your label.
        2. In the Choose where to store your data section, do the following:
          1. Select a Location type.
          2. Choose a location where your bucket's data is permanently stored from the Location type drop-down menu.
          3. To set up cross-bucket replication, select Add cross-bucket replication via Storage Transfer Service and follow these steps:

            Set up cross-bucket replication

            1. In the Bucket menu, select a bucket.
            2. In the Replication settings section, click Configure to configure settings for the replication job.

              The Configure cross-bucket replication pane appears.

              • To filter objects to replicate by object name prefix, enter a prefix that you want to include or exclude objects from, then click Add a prefix.
              • To set a storage class for the replicated objects, select a storage class from the Storage class menu. If you skip this step, the replicated objects will use the destination bucket's storage class by default.
              • Click Done.
        3. In the Choose how to store your data section, do the following:
          1. Select a default storage class for the bucket or Autoclass for automatic storage class management of your bucket's data.
          2. To enable hierarchical namespace, in the Optimize storage for data-intensive workloads section, select Enable hierarchical namespace on this bucket.
        4. In the Choose how to control access to objects section, select whether or not your bucket enforces public access prevention, and select an access control method for your bucket's objects.
        5. In the Choose how to protect object data section, do the following:
          • Select any of the options under Data protection that you want to set for your bucket.
            • To enable soft delete, click the Soft delete policy (For data recovery) checkbox, and specify the number of days you want to retain objects after deletion.
            • To set Object Versioning, click the Object versioning (For version control) checkbox, and specify the maximum number of versions per object and the number of days after which the noncurrent versions expire.
            • To enable the retention policy on objects and buckets, click the Retention (For compliance) checkbox, and then do the following:
              • To enable Object Retention Lock, click the Enable object retention checkbox.
              • To enable Bucket Lock, click the Set bucket retention policy checkbox, and choose a unit of time and a length of time for your retention period.
          • To choose how your object data will be encrypted, expand the Data encryption section (), and select a Data encryption method.
      4. Click Create.

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

      • Für das Subnetz in der Region, in der der Cluster erstellt wird, muss der private Google-Zugriff (Private Google Access, PGA) aktiviert sein.

        .

      • Wenn Sie das Beispiel für die Zeppelin-Weboberfläche in diesem Leitfaden ausführen möchten, müssen Sie einen Dataproc-Cluster mit der optionalen Zeppelin-Komponente verwenden oder erstellen.

    16. Rollen für ein benutzerdefiniertes Dienstkonto zuweisen (falls erforderlich): Standardmäßig verwenden Dataproc-Cluster-VMs das Compute Engine-Standarddienstkonto für die Interaktion mit Dataproc. Wenn Sie beim Erstellen des Clusters ein benutzerdefiniertes Dienstkonto angeben möchten, muss es die Dataproc-Worker-Rolle (roles/dataproc.worker) oder eine benutzerdefinierte Rolle mit den erforderlichen Worker-Rollenberechtigungen haben.

    17. Zuordnung von OSS-Datenbanken zu BigQuery-Datasets

      Beachten Sie die folgende Zuordnung zwischen Begriffen für Open-Source-Datenbanken und BigQuery-Datasets:

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

      Iceberg-Tabelle erstellen

      In diesem Abschnitt wird beschrieben, wie Sie eine Iceberg-Tabelle mit Metadaten in BigLake 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 den Job über die Google Cloud -Konsole 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 einen Dataproc Spark SQL-Job an den Dataproc-Dienst senden, um mit der gcloud CLI, der Google Cloud Console oder der Dataproc REST API eine Iceberg-Tabelle mit Metadaten in BigQuery zu erstellen.

      Jobdateien vorbereiten

      So erstellen Sie eine Spark SQL-Jobdatei: Die Datei enthält Spark SQL-Befehle zum Erstellen und Aktualisieren einer Iceberg-Tabelle.

      1. Kopieren Sie die folgenden Befehle in einem lokalen Terminalfenster oder in Cloud Shell mit einem Texteditor wie vi oder nano in eine iceberg-table.sql-Datei und speichern Sie die Datei dann 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 für das Iceberg-Warehouse.
      2. Verwenden Sie die gcloud CLI, um die lokale iceberg-table.sql in Ihren Bucket in Cloud Storage zu kopieren.

        gcloud storage cp iceberg-table.sql gs://BUCKET/
        

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

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

        curl -o iceberg-spark-runtime-3.5_2.12-1.6.1.jar https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-spark-runtime-3.5_2.12/1.6.1/iceberg-spark-runtime-3.5_2.12-1.6.1.jar
        
      2. Mit der gcloud CLI wird die lokale JAR-Datei iceberg-spark-runtime-3.5_2.12-1.6.1 aus dem aktuellen Verzeichnis in Ihren Bucket in Cloud Storage kopiert.

        gcloud storage cp iceberg-spark-runtime-3.5_2.12-1.6.1.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, derGoogle Cloud -Konsole oder der Dataproc REST API zu folgen.

      gcloud

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

        gcloud dataproc jobs submit spark-sql \
            --project=PROJECT_ID \
            --cluster=CLUSTER_NAME \
            --region=REGION \
            --jars="gs://BUCKET/1.6.1/iceberg-spark-runtime-3.5_2.12-1.6.1.jar,gs://spark-lib/bigquery/iceberg-bigquery-catalog-1.6.1-1.0.1-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 von Google Cloud Projekt-IDs werden im Abschnitt 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 für das Iceberg-Warehouse.
        • LOCATION: Ein unterstützter BigQuery-Standort. Der Standardspeicherort ist „US“.
        • --jars: Die aufgeführten JARs sind erforderlich, um Tabellenmetadaten im BigLake-Metastore zu erstellen.
        • --properties: Katalogattribute.
        • -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 ansehen

        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 BigLake Metastore zu erstellen.

      1. Rufen Sie in der Google Cloud -Konsole die Dataproc-Seite Job senden auf.

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

        • Job-ID: Übernehmen Sie die vorgeschlagene ID oder geben 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.
        • Job type (Jobtyp): Wählen Sie SparkSql aus.
        • Quelltyp der Abfrage: Wählen Sie Query file aus.
        • Abfragedatei: Fügen Sie gs://BUCKET/iceberg-table.sql ein.
        • Jar-Dateien: Fügen Sie Folgendes ein:
          gs://BUCKET/iceberg-spark-runtime-3.5_2.12-1.6.1.jar,gs://spark-lib/bigquery/iceberg-bigquery-catalog-1.6.1-1.0.1-beta.jar
          
        • Properties (Eigenschaften): Klicken Sie fünfmal auf Add Property (Eigenschaft hinzufügen), um eine Liste mit fünf key-value-Eingabefeldern zu erstellen. Kopieren Sie dann die folgenden Key- und Value-Paare, um fünf Eigenschaften 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 von Google Cloud Projekt-IDs werden im Abschnitt Projektinformationen im Dashboard der Google Cloud Console aufgeführt. Region, in der sich Ihr Cluster befindet.
        • LOCATION: Ein unterstützter BigQuery-Standort. Der Standardspeicherort ist „US“.
        • BUCKET und WAREHOUSE_FOLDER: Cloud Storage-Bucket und -Ordner für das Iceberg-Warehouse.
      2. Klicken Sie auf Senden.

      3. Rufen Sie zum Überwachen des Jobfortschritts und zum Anzeigen der Jobausgabe in der Google Cloud -Konsole die Dataproc-Seite Jobs auf und klicken Sie dann auf Job ID, um die Seite Jobdetails zu öffnen.

      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.

      REST

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

      Ersetzen Sie diese Werte in den folgenden Anfragedaten:

      • PROJECT_ID: Die Projekt-ID von Google Cloud 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-Standort. Der Standardspeicherort ist „US“.
      • jarFileUris: Die aufgeführten JARs sind erforderlich, um Tabellenmetadaten in BigQuery Metastore zu erstellen.
      • properties: Katalogattribute.
      • 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.1-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.1-beta.jar"
          ]
        },
        "driverControlFilesUri": "gs://dataproc-...",
        "driverOutputResourceUri": "gs://dataproc-.../driveroutput",
        "jobUuid": "...",
        "region": "REGION"
      }
      

      Rufen Sie zum Überwachen des Jobfortschritts und zum Anzeigen der Jobausgabe in der Google Cloud -Konsole die Dataproc-Seite Jobs auf und klicken Sie dann auf Job ID, um die Seite Jobdetails zu öffnen.

      Tabellenmetadaten in BigQuery ansehen

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

        Zu BigQuery Studio

      2. Metadaten von Iceberg-Tabellen ansehen.

      Spark SQL-Befehlszeilenschnittstelle

      In den folgenden Schritten wird gezeigt, wie Sie eine Iceberg-Tabelle erstellen, deren Tabellenmetadaten im BigLake Metastore gespeichert werden. Dazu verwenden Sie die Spark SQL-Befehlszeile, die auf dem Masternode eines Dataproc-Clusters ausgeführt wird.

      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 für das Iceberg-Warehouse.
      3. Führen Sie im Terminal der SSH-Sitzung den folgenden spark-sql-Befehl aus, um die Iceberg-Tabelle zu erstellen.

        spark-sql \
        --packages org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.6.1 \
        --jars https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-spark-runtime-3.5_2.12/1.6.1/iceberg-spark-runtime-3.5_2.12-1.6.1.jar,gs://spark-lib/bigquery/iceberg-bigquery-catalog-1.6.1-1.0.1-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 von Google Cloud Projekt-IDs werden im Abschnitt Projektinformationen im Dashboard der Google Cloud Console aufgeführt.
        • LOCATION: Ein unterstützter BigQuery-Standort. Der Standardspeicherort ist „US“.
      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 beschrieben, wie Sie eine Iceberg-Tabelle mit Tabellenmetadaten erstellen, die im BigLake Metastore gespeichert sind. Dazu verwenden Sie die Zeppelin-Weboberfläche, die auf dem Masterknoten eines Dataproc-Clusters ausgeführt wird.

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

        Zur Seite „Dataproc-Cluster“

      2. Wählen Sie den Namen des Clusters 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 Standardkomponenten und optionalen Komponenten zu öffnen.

      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 und dann auf Interpreter, um die Seite Interpreters 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-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.6.1/iceberg-spark-runtime-3.5_2.12-1.6.1.jar,gs://spark-lib/bigquery/iceberg-bigquery-catalog-1.6.1-1.0.1-beta.jar

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

      7. Klicken Sie im Menü des Zeppelin-Notebooks auf Neue Anmerkung erstellen.

      8. Geben Sie im Dialogfeld Neue Notiz erstellen einen Namen für das Notebook ein und übernehmen 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 von Google Cloud Projekt-IDs werden im Abschnitt 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-Standort. Der Standardspeicherort ist „US“.
        • BUCKET und WAREHOUSE_DIRECTORY: Cloud Storage-Bucket und -Ordner, die als Iceberg-Warehouse-Verzeichnis verwendet werden.
      10. Klicken Sie auf das Symbol zum Ausführen oder drücken Sie Shift-Enter, um den Code auszuführen. Wenn der Job abgeschlossen ist, wird die Statusmeldung „Spark Job Finished“ angezeigt und in der Ausgabe wird der Tabelleninhalt angezeigt:

      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.