Binäre Löschvektoren in Iceberg V3-Tabellen verwenden

Der Lakehouse-Laufzeitkatalog unterstützt Apache Iceberg V3-Tabellen. Eine Hauptfunktion der Apache Iceberg V3-Spezifikation sind binäre Löschvektoren. Bei dieser Optimierung werden Löschvorgänge auf Zeilenebene in .puffin-Dateien gespeichert. Anstatt zur Abfragezeit kostspielige Joins auszuführen, verwenden BigQuery und Open-Source-Engines (z. B. Apache Spark, Apache Flink und Trino) diese Vektoren, um gelöschte Zeilen schnell zu identifizieren und zu überspringen.

Die Verwendung binärer Löschvektoren kann die Leistung auf folgende Weise verbessern:

  • Schreibvorgänge mit hohem Volumen:Verbessert die Schreibleistung für Tabellen mit Schreibvorgängen mit hohem Volumen.
  • Effiziente Lesevorgänge:Verbessert die Abfragegeschwindigkeit, da BigQuery und Open-Source-Engines gelöschte Zeilen identifizieren und überspringen können.

Dies ist besonders nützlich für die Verarbeitung von Updates und Löschvorgängen mit hohem Volumen in Change Data Capture-Pipelines (CDC) oder für die Einhaltung gesetzlicher Anforderungen wie der DSGVO (Recht auf Vergessenwerden), indem bestimmte Zeilen gelöscht werden, ohne dass gesamte Datendateien neu geschrieben werden müssen.

Hinweis

  1. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  2. Aktivieren Sie die BigLake API.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen.

    API aktivieren

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt und Ihren Speicher-Bucket zuzuweisen, um die Berechtigungen zu erhalten, die you need to create and manage Iceberg V3 tables, Sie zum Erstellen und Verwalten von Iceberg V3-Tabellen benötigen:

  • Iceberg V3-Tabellen erstellen und verwalten:
    • BigLake-Administrator (roles/biglake.admin) – Ihr Projekt
    • Storage-Administrator (roles/storage.admin) – der Ziel-Cloud Storage-Bucket

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Iceberg-REST-Katalog einrichten

Bevor Sie eine Iceberg V3-Tabelle erstellen, müssen Sie den Iceberg-REST Katalog einrichten. Dazu müssen Sie einen Namespace und einen Katalog erstellen.

Die Einrichtung des Iceberg-REST-Katalogs kann einige Zeit dauern. Achten Sie darauf, dass Sie sowohl den Namespace als auch den Katalog erfolgreich erstellt haben, bevor Sie fortfahren.

Beschränkungen

Für Iceberg V3-Tabellen im Lakehouse-Laufzeitkatalog gelten die folgenden Einschränkungen:

  • Neue V3-Datentypen:Neue Iceberg V3-Datentypen wie „Variant“, „Geography“, „Nanosecond timestamp“, Standardwerte und unbekannte Datentypen werden nicht unterstützt.
  • Zeilenabstammungs-Tracking:Das Tracking der Zeilenabstammung wird nicht unterstützt.
  • BigQuery-Schreibvorgänge:BigQuery-Schreibvorgänge werden für V3-Tabellen nicht unterstützt. Sie können V3-Tabellen nur aus BigQuery lesen. Zum Erstellen und Schreiben in V3-Tabellen müssen Sie Open-Source-Engines wie Apache Spark, Apache Flink oder Trino verwenden.

Engine-Anforderungen

Verwenden Sie eine Engine-Version, die Iceberg V3 und binäre Löschvektoren unterstützt. Apache Spark 3.5 oder höher wird empfohlen. In den Beispielen in dieser Anleitung wird iceberg-spark-runtime-3.5_2.12:1.10.1 verwendet.

Achten Sie beim Konfigurieren der Tabelle und der Engine-Sitzung auf Folgendes:

  • Tabellenformatversion: Muss auf format-version='3' festgelegt sein.
  • Löschmodus:Muss auf