Tabelle abfragen

Beim Abfragen einer Tabelle werden Daten aus den zugrunde liegenden Cloud Storage-Dateien mithilfe der Metadaten gelesen, die vom Lakehouse-Laufzeitkatalog verwaltet werden.

Sie können Abfragen von Open-Source-Engines wie Spark und Trino oder direkt von BigQuery aus mit einer vierteiligen Tabellennamenssyntax (P.C.N.T-Syntax) ausführen.

Hinweis

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

  2. Aktivieren Sie die BigLake API, falls sie noch nicht aktiviert ist.

    Erforderliche Rollen zum Aktivieren von APIs

    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 Inhaberrolle (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

  3. Richten Sie den Lakehouse-Laufzeitkatalog mit dem Apache Iceberg REST-Katalogendpunkt ein.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt und Ihren Storage-Bucket zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Abfragen einer Tabelle benötigen:

  • Tabellendaten im Modus für die Bereitstellung von Anmeldedaten lesen: BigLake-Betrachter (roles/biglake.viewer) – das Projekt
  • Tabellendaten im Modus ohne Bereitstellung von Anmeldedaten lesen:
    • BigLake-Betrachter (roles/biglake.viewer) – das Projekt
    • Storage-Objekt-Betrachter (roles/storage.objectViewer) – der 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.

Tabellenfunktionen und -unterstützung

Wenn Sie Tabellen im Lakehouse-Laufzeitkatalog verwenden, ist es hilfreich, die verschiedenen Tabellentypen und ihre Opt-in-Funktionen zu kennen. Weitere Informationen zur Verwendung von Apache Iceberg-Tabellen finden Sie unter Übersicht über Apache Iceberg-Tabellen.

Unterstützte Iceberg-Tabellen

Es werden nur Apache Iceberg V2- (GA) und V3-Tabellen (Vorabversion) unterstützt. Iceberg V1-Tabellen werden nicht unterstützt. Informationen zum Upgrade vorhandener V1-Tabellen finden Sie unter Iceberg-V1-Tabellen auf V2 aktualisieren.

Tabellenoptionen verwenden (Vorabversion)

Sie können die verwalteten BigQuery-Funktionen wie die BigQuery-Datenbearbeitungssprache (DML) und die automatische Tabellenverwaltung aktivieren, indem Sie bestimmte Tabellenattribute konfigurieren. Diese Funktionen werden je nach Erstellungsort der Tabelle auf unterschiedliche Weise aktiviert:

  • Aus BigQuery: BigQuery-DML und die automatische Tabellenverwaltung sind standardmäßig aktiviert.
  • Aus Open-Source-Engines: Wenn Sie die Funktion aktivieren möchten, müssen Sie die Tabellenattribute explizit konfigurieren. Weitere Informationen finden Sie unter Tabellenoptionen konfigurieren.

Wenn Sie Tabellen aus BigQuery abfragen, können Sie sowohl auf Standard-Iceberg-Tabellen als auch auf Tabellen zugreifen, die für verwaltete BigQuery-Funktionen aktiviert sind. Eine ausführliche Anleitung finden Sie unter Tabellenoptionen konfigurieren.

Tabelle abfragen

Wählen Sie alle Daten aus der Tabelle aus:

Spark

spark.sql("SELECT * FROM TABLE_NAME;").show()

Trino

SELECT * FROM TABLE_NAME;

BigQuery

Wenn Sie Apache Iceberg-Tabellen im Lakehouse-Laufzeitkatalog über BigQuery abfragen möchten, verwenden Sie in Ihrer Abfrage den vierteiligen Tabellennamen im folgenden Format: PROJECT_NAME.CATALOG_ID.NAMESPACE_OR_SCHEMA_NAME.TABLE_NAME.

SELECT * FROM `PROJECT_NAME.CATALOG_ID.NAMESPACE_OR_SCHEMA_NAME.TABLE_NAME`;

Ersetzen Sie die folgenden Werte:

  • PROJECT_NAME: dasGoogle Cloud -Projekt, zu dem der Katalog im Lakehouse-Laufzeitkatalog gehört. Die Abfrage wird dem ausgewähltenGoogle Cloud -Projekt in der Google Cloud Console in Rechnung gestellt.

  • CATALOG_ID: die ID des Lakehouse-Laufzeitkatalogs, die beim Erstellen des Katalogs angegeben wurde. Diese Kennung wird in BigQuery-Abfragen als Katalogname verwendet.

    Diese Kennung ist auch der Name Ihres Cloud Storage-Bucket.

    Wenn Sie beispielsweise einen Bucket zum Speichern Ihres Katalogs erstellt und ihn iceberg-bucket genannt haben, lauten sowohl der Katalogname als auch der Bucket-Name iceberg-bucket. Diese wird später verwendet, wenn Sie Ihren Katalog in BigQuery mit der P.C.N.T-Syntax abfragen. Beispiel: my-project.catalog_id.quickstart_namespace.quickstart_table.

  • NAMESPACE_OR_SCHEMA_NAME: der Tabellen-Namespace, wenn Sie Spark verwenden, oder der Tabellenschemaname, wenn Sie Trino verwenden.

  • TABLE_NAME: der Name der Tabelle.

Abfrage mit Zeitreise

Sie können Verlaufsdaten aus Ihren verwalteten Apache Iceberg-Tabellen mithilfe von Zeitreisen abfragen. Sie können in BigQuery mit der FOR SYSTEM_TIME AS OF-Klausel oder in Open-Source-Engines wie Spark mit Snapshot-IDs, Zeitstempeln, Tags oder Branches Zeitreisen durchführen.

Abfrage nach Zeitstempel

So fragen Sie Daten zu einem bestimmten Zeitstempel ab:

Spark

SELECT * FROM NAMESPACE.TABLE_NAME TIMESTAMP AS OF '2026-02-26 01:21:00';

BigQuery

SELECT * FROM `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` FOR SYSTEM_TIME AS OF '2026-02-26 01:21:00';

Abfrage nach Snapshot-ID

So fragen Sie Daten ab einem bestimmten Snapshot ab:

Spark

SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 10963874102873;

Abfrage nach Tag

So erstellen Sie ein Tag und fragen Daten ab diesem Tag ab:

Spark

-- Create tag 'historical-snapshot'
ALTER TABLE NAMESPACE.TABLE_NAME CREATE TAG 'historical-snapshot' AS OF VERSION 123456789012345;

-- Query by tag
SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 'historical-snapshot';

Abfrage nach Zweig

So erstellen Sie einen Zweig und fragen Daten ab diesem Zweig ab:

Spark

-- Create branch 'audit-branch'
ALTER TABLE NAMESPACE.TABLE_NAME CREATE BRANCH 'audit-branch' AS OF VERSION 123456789012345;

-- Query by branch
SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 'audit-branch';

Nächste Schritte