Iceberg-Tabelle in Lakehouse mit der Google Cloud Console erstellen und abfragen

In dieser Kurzanleitung verwenden Sie die Google Cloud Konsole, um zu erfahren, wie Sie mit dem grenzenlosen Lakehouse Apache Iceberg-Tabellen Google Cloud und Open-Source-Engines verwalten und freigeben können. Dazu werden Tabellenmetadaten wie Schemas, Snapshots und Speicherorte im Lakehouse-Laufzeitkatalog gespeichert.

In dieser Kurzanleitung führen Sie die folgenden Schritte in derGoogle Cloud -Console aus:

  1. Cloud Storage-Bucket erstellen: Erstellen Sie einen Bucket in Cloud Storage, um die Daten und Metadatendateien Ihrer Iceberg-Tabelle zu speichern.
  2. Katalog erstellen: Erstellen Sie einen Katalog mit mehreren Buckets im Lakehouse-Laufzeitkatalog, der von Ihrem Bucket mit aktivierter Anmeldedatenbereitstellung unterstützt wird.
  3. Namespace und Iceberg-Tabelle erstellen: Verwenden Sie die Seite Lakehouse in der Google Cloud Console, um einen Namespace und eine Iceberg-Tabelle mit aktivierter BigQuery-Datenbearbeitungssprache (Data Manipulation Language, DML) zu erstellen.
  4. Daten ändern und Tabelle in BigQuery abfragen: Verwenden Sie BigQuery-DML-Anweisungen (INSERT, UPDATE und DELETE), um Zeilen in der Iceberg-Tabelle zu ändern und die Ergebnisse mit der vierteiligen Syntax P.C.N.T (Projekt.Katalog.Namespace.Tabelle) abzufragen. ETL oder eine manuelle Tabellenregistrierung sind nicht erforderlich.

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  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 role (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 BigLake, Cloud Storage, and BigQuery APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Make sure that you have the following role or roles on the project: BigLake Admin (roles/biglake.admin), Storage Admin (roles/storage.admin), and BigQuery Job User (roles/bigquery.jobUser)

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.
  6. 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  8. Enable the BigLake, Cloud Storage, and BigQuery APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  9. Make sure that you have the following role or roles on the project: BigLake Admin (roles/biglake.admin), Storage Admin (roles/storage.admin), and BigQuery Job User (roles/bigquery.jobUser)

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.

Cloud Storage-Bucket erstellen

Erstellen Sie in der Google Cloud -Konsole einen Cloud Storage-Bucket zum Speichern der Daten und Metadatendateien Ihrer Iceberg-Tabelle:

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie auf Erstellen.

  3. Geben Sie im Bereich Erste Schritte einen global eindeutigen Bucket-Namen ein, z. B. lakehouse-quickstart-UNIQUE_ID oder PROJECT_ID-lakehouse, und klicken Sie dann auf Weiter.

  4. Lassen Sie im Abschnitt Speicherort für Daten auswählen die Option Standorttyp auf Mehrere Regionen (USA (mehrere Regionen in den USA)) eingestellt und klicken Sie dann auf Erstellen.

  5. Wenn das Dialogfeld Der öffentliche Zugriff wird verhindert angezeigt wird, klicken Sie auf Bestätigen.

Katalog im Lakehouse-Laufzeitkatalog erstellen

Erstellen Sie einen Katalog mit mehreren Buckets im Lakehouse-Laufzeitkatalog für Ihre Apache Iceberg-Tabellen. Bei einem Katalog mit mehreren Buckets können Sie den Katalog unabhängig von einem Bucket-Namen benennen und mehrere Cloud Storage-Buckets einem einzelnen Katalog zuordnen. Um den Zugriff auf diese Buckets zu schützen, aktivieren Sie den Modus für die Bereitstellung von Anmeldedaten, damit der Katalog automatisch temporäre Speicheranmeldedaten direkt an Ihre Client-Engines ausgeben kann.

  1. Rufen Sie in der Google Cloud Console die Seite Lakehouse auf.

    Lakehouse aufrufen

  2. Klicken Sie auf Katalog erstellen und wählen Sie Lakehouse-Laufzeitkatalog aus.

  3. Konfigurieren Sie im Bereich Katalogdetails die folgenden Einstellungen:

    • Katalogtyp: Wählen Sie Iceberg-REST-Katalog aus.
    • Optionen für den Lakehouse-Katalog-Bucket: Wählen Sie Katalog mit mehreren Buckets aus.
    • Standardmäßiger Cloud Storage-Pfad für Katalog: Klicken Sie auf Durchsuchen, wählen Sie den von Ihnen erstellten Bucket aus und klicken Sie auf Auswählen.
    • Katalog-ID: Geben Sie quickstart_catalog ein.
    • Primärer Standort: Wählen Sie Mehrere Regionen und dann USA (mehrere Regionen in den USA) aus.
  4. Klicken Sie auf Weiter und dann im Abschnitt Datenpfade auf Weiter.

  5. Wählen Sie im Abschnitt Authentifizierungsmethode die Option Credential Vending Mode (Modus für die Bereitstellung von Anmeldedaten) aus.

    Beim Credential Vending werden vom Katalog temporäre Speichertokens mit Tabellenbereich für Client-Engines und BigQuery sicher ausgestellt. Externe Engines benötigen daher keine direkten IAM-Berechtigungen für Ihren Bucket.

  6. Klicken Sie auf Erstellen.

    Ihr Katalog wird erstellt und die Seite Katalogdetails wird geöffnet.

  7. Klicken Sie unter Authentifizierungsmethode auf Bucket-Berechtigungen festlegen und dann im Dialogfeld auf Bestätigen.

    In diesem Schritt werden dem Dienstkonto des Katalogs die erforderlichen Berechtigungen für Ihren Cloud Storage-Bucket erteilt, um temporäre Anmeldedaten bereitzustellen.

Namespace und Iceberg-Tabelle erstellen

Nachdem Sie einen Katalog erstellt haben, können Sie auf der Seite Lakehouse in derGoogle Cloud -Konsole einen Namespace und eine Iceberg-Tabelle erstellen.

Namespace erstellen

  1. Klicken Sie auf der Seite Katalogdetails für quickstart_catalog auf  Namespace erstellen.

  2. Geben Sie im Feld Namespace-Name quickstart_namespace ein.

  3. Lassen Sie Speicherort auf dem standardmäßigen Cloud Storage-Pfad, der automatisch im Feld eingetragen wird.

  4. Klicken Sie auf Erstellen.

Iceberg-Tabelle erstellen

  1. Klicken Sie auf der Seite Katalogdetails auf quickstart_namespace.

    Die Seite Namespace Details (Namespace-Details) wird geöffnet.

  2. Klicken Sie auf  Tabelle erstellen.

  3. Konfigurieren Sie im Bereich Tabelle erstellen die folgenden Einstellungen:

    • Tabellenformat: Prüfen Sie, ob Iceberg ausgewählt ist.
    • Tabellenname: Geben Sie quickstart_table ein.
    • Speicherort: Lassen Sie den standardmäßigen Cloud Storage-Pfad unverändert.
  4. Klicken Sie unter Schema zweimal auf Feld hinzufügen, um der Tabelle zwei Spalten hinzuzufügen:

    • Geben Sie für das erste Feld id in das Feld Feldname ein und wählen Sie im Menü Typ die Option INTEGER aus.
    • Geben Sie für das zweite Feld name in das Feld Feldname ein und wählen Sie im Menü Typ die Option STRING aus.
  5. Suchen Sie unter Properties nach der vordefinierten Property gcp.biglake.bigquery-dml.enabled und ändern Sie ihren Value von false zu true. Lassen Sie gcp.biglake.table-management.enabled auf false eingestellt.

    Wenn Sie gcp.biglake.bigquery-dml.enabled auf true festlegen, können Sie Daten in der Iceberg-Tabelle mit BigQuery-DML-Anweisungen wie INSERT, UPDATE, DELETE und MERGE ändern. Weitere Informationen finden Sie unter Tabellenoptionen konfigurieren.

  6. Klicken Sie auf Erstellen.

    Ihre neue Iceberg-Tabelle (quickstart_table) wird auf der Seite Namespace-Details angezeigt und der Lakehouse-Laufzeitkatalog schreibt die erste Iceberg-Metadatendatei in Ihren Cloud Storage-Bucket.

Daten ändern und Tabelle in BigQuery abfragen

Nachdem Sie quickstart_table erstellt und BigQuery DML aktiviert haben, können Sie Zeilen direkt in BigQuery einfügen, aktualisieren, löschen und abfragen. Verwenden Sie dazu die vierteilige P.C.N.T-Syntax (Projekt.Katalog.Namespace.Tabelle). Ersetzen Sie in jeder Anweisung PROJECT_ID durch IhreGoogle Cloud Projekt-ID:

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Klicken Sie im Abfrageeditor auf SQL-Abfrage.

  3. Fügen Sie drei Zeilen mit Beispieldaten ein:

    INSERT INTO `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table` (id, name)
    VALUES (1, 'one'), (2, 'two'), (3, 'three');

    Klicken Sie auf Ausführen. Wenn die INSERT-Anweisung abgeschlossen ist, schreibt BigQuery die Parquet-Datendateien in Ihren Cloud Storage-Bucket und übergibt einen neuen Iceberg-Snapshot an den Lakehouse-Laufzeitkatalog.

  4. Zeile in der Tabelle ändern:

    UPDATE `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table`
    SET name = 'updated'
    WHERE id = 1;

    Klicken Sie auf Ausführen.

  5. So löschen Sie eine Zeile aus der Tabelle:

    DELETE FROM `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table`
    WHERE id = 3;

    Klicken Sie auf Ausführen.

  6. Fragen Sie die Tabelle ab, um die Änderungen zu prüfen:

    SELECT * FROM `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table`
    ORDER BY id;

    Klicken Sie auf Ausführen. Im Bereich Abfrageergebnisse werden die verbleibenden zwei Zeilen angezeigt, einschließlich des aktualisierten Werts für id = 1:

    +----+---------+
    | id | name    |
    +----+---------+
    |  1 | updated |
    |  2 | two     |
    +----+---------+
    

Da der Lakehouse-Laufzeitkatalog die Iceberg-Metadaten verwaltet und die Bereitstellung von Anmeldedaten aktiviert ist, können Sie auch mit einer beliebigen Iceberg-kompatiblen Open-Source-Engine wie Apache Spark, Trino oder Apache Flink Daten aus quickstart_table lesen oder in quickstart_table schreiben, ohne der Engine direkten IAM-Zugriff auf Ihren Bucket zu gewähren.

Bereinigen

Löschen Sie die in dieser Kurzanleitung erstellten Ressourcen, um unnötige Gebühren für Ihr Google Cloud -Konto zu vermeiden. Wenn Sie die Tabelle, den Namespace und den Katalog löschen, wird die Metadatenregistrierung aus dem Lakehouse-Laufzeitkatalog entfernt. Wenn Sie den Bucket löschen, werden die zugrunde liegenden Parquet-Daten und Iceberg-Metadatendateien, die in Cloud Storage gespeichert sind, entfernt:

  1. Rufen Sie in der Google Cloud Console die Seite Lakehouse auf.

    Lakehouse aufrufen

  2. Löschen Sie die Tabelle aus Ihrem Katalog:

    1. Klicken Sie auf quickstart_catalog und dann auf quickstart_namespace.
    2. Klicken Sie in der Tabelle Namespace details (Namespace-Details) in der Zeile für quickstart_table auf das Dreipunkt-Menü > Löschen.
    3. Geben Sie DELETE ein, um den Vorgang zu bestätigen, und klicken Sie auf Löschen.
  3. Löschen Sie den Namespace aus Ihrem Katalog:

    1. Kehren Sie zur Seite Katalogdetails für quickstart_catalog zurück.
    2. Klicken Sie in der Zeile für quickstart_namespace auf das Dreipunkt-Menü  Weitere Namespace-Aktionen > „Löschen“.
    3. Geben Sie DELETE ein, um den Vorgang zu bestätigen, und klicken Sie auf Löschen.
  4. Katalog löschen:

    1. Kehren Sie zur Seite Lakehouse zurück.
    2. Klicken Sie in der Zeile für quickstart_catalog auf Weitere Katalogaktionen > Löschen.
    3. Geben Sie DELETE ein, um den Vorgang zu bestätigen, und klicken Sie auf Löschen.
  5. Löschen Sie den Cloud Storage-Bucket und alle seine Inhalte:

    1. Rufen Sie die Seite Cloud Storage-Buckets auf:

      Buckets aufrufen

    2. Klicken Sie auf das Kästchen neben dem Bucket, den Sie für diesen Schnellstart erstellt haben, und dann auf Löschen.

    3. Geben Sie DELETE ein, um den Vorgang zu bestätigen, und klicken Sie auf Löschen.

Nächste Schritte