Öffentliche Datasets für das grenzenlose Lakehouse

Borderless Lakehouse hostet hochwertige öffentliche Datasets, die über den Apache Iceberg REST-Katalog bereitgestellt werden. Sie sind im Rahmen des Google Cloud Programms für öffentliche Datasets für die Allgemeinheit verfügbar.

Diese Datasets sind schreibgeschützt. Sie können mit Apache Spark, Trino, Flink oder BigQuery darauf zugreifen und sie in Ihre Anwendungen einbinden. Google bezahlt die Speicherung dieser Datasets und bietet über Lakehouse öffentlichen Zugriff auf die Daten. Sie bezahlen nur für die Abfrage der Daten.

Ziel dieser öffentlichen Datasets ist es, die Einstiegshürde für Iceberg zu senken. Sie müssen keine Infrastruktur verwalten, um Iceberg zu lernen, sondern sich nur verbinden. Sie können diese Datasets für Folgendes verwenden:

  • Mit BigQuery (über Lakehouse) können Sie diese Tabellen direkt mit SQL abfragen und mit Ihren privaten Daten kombinieren.
  • Sie können Ihre OSS-Engine-Konfigurationen (z. B. Spark, Trino oder Flink) mit einem Live-REST-Katalog testen.

Hinweis

  1. 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

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

  3. Enable the Lakehouse API.

    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 API

Bevor Sie eine Verbindung zu Apache Spark herstellen, müssen Sie Folgendes haben:

Öffentliche Dataset-Standorte

Jedes öffentliche Dataset wird an einem bestimmten Standort gespeichert, z. B. US oder EU. Die öffentlichen Lakehouse-Datasets werden am US multiregionalen Standort gespeichert. Wenn Sie ein öffentliches Dataset abfragen, muss der Verarbeitungsstandort mit dem Dataset-Standort kompatibel sein.

Auf öffentliche Datasets mit Apache Spark zugreifen

Da öffentliche Lakehouse-Datasets über den Iceberg REST Katalog bereitgestellt werden, können Sie mit Apache Spark und anderen kompatiblen Engines darauf zugreifen. Sie können mit jeder Standard-Spark-Umgebung eine Verbindung zum öffentlichen Dataset herstellen, z. B. lokal, Managed Service for Apache Spark oder andere Cloud-Anbieter.

Verbindung zu Apache Spark herstellen

Verwenden Sie die folgenden Konfigurationsflags, wenn Sie Ihre Spark SQL-Sitzung starten. Mit diesen Flags wird ein Katalog namens lakehouse-sample konfiguriert, der auf den öffentlichen REST-Endpunkt verweist.

spark-sql \
  --packages org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.10.0,org.apache.iceberg:iceberg-gcp-bundle:1.10.0 \
  --conf spark.hadoop.hive.cli.print.header=true \
  --conf spark.sql.catalog.bqms=org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.bqms.type=rest \
  --conf spark.sql.catalog.bqms.uri=https://biglake.googleapis.com/iceberg/v1/restcatalog \
  --conf spark.sql.catalog.bqms.warehouse=gs://biglake-public-nyc-taxi-iceberg \
  --conf spark.sql.catalog.bqms.header.x-goog-user-project=PROJECT_ID \
  --conf spark.sql.catalog.bqms.rest.auth.type=google \
  --conf spark.sql.catalog.bqms.io-impl=org.apache.iceberg.gcp.gcs.GCSFileIO \
  --conf spark.sql.catalog.bqms.header.X-Iceberg-Access-Delegation=vended-credentials \
  --conf spark.sql.defaultCatalog=lakehouse-sample

Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud Projekts.

Beispielabfragen

Nach der Verbindung haben Sie vollen SQL-Zugriff auf die Datasets. Das NYC Taxi-Dataset ist als Iceberg-Tabelle verfügbar, um Partitionierungs- und Metadatenfunktionen zu demonstrieren.

Die folgende Abfrage aggregiert Millionen von Datensätzen, um den durchschnittlichen Fahrpreis und die durchschnittliche Entfernung pro Passagier zu ermitteln. Sie zeigt, wie Iceberg Datendateien effizient scannt, ohne Verzeichnisse auflisten zu müssen, indem die Partitionen reduziert werden:

SELECT
    passenger_count,
    COUNT(1) AS num_trips,
    ROUND(AVG(total_amount), 2) AS avg_fare,
    ROUND(AVG(trip_distance), 2) AS avg_distance
FROM
    lakehouse-sample.public_data.nyc_taxicab
WHERE
    data_file_year = 2021
    AND passenger_count > 0
GROUP BY
    passenger_count
ORDER BY
    num_trips DESC;

Eine der leistungsstärksten Funktionen von Iceberg ist Time Travel. Sie können die Tabelle so abfragen, wie sie zu einem bestimmten Zeitpunkt in der Vergangenheit existiert hat. Mit der folgenden Abfrage können Sie Änderungen prüfen, indem Sie die Anzahl der Zeilen der aktuellen Version mit einem bestimmten Snapshot vergleichen:

-- Compare the row count of the current version vs. a specific snapshot
SELECT
    'Current State' AS version,
    COUNT(*) AS count
FROM lakehouse-sample.public_data.nyc_taxicab
UNION ALL
SELECT
    'Past State' AS version,
    COUNT(*) AS count
FROM lakehouse-sample.public_data.nyc_taxicab VERSION AS OF 2943559336503196801Q;

Wenn Sie die Metadatentabelle des Verlaufs abfragen (z. B. SELECT * FROM lakehouse-sample.public_data.nyc_taxicab.history), können Sie Snapshot-IDs finden und nachvollziehen , wie das Dataset im Laufe der Zeit gewachsen ist.

Weitere Informationen finden Sie unter Lakehouse-Laufzeitkatalog mit Spark, Iceberg REST Katalog & Cloud Storage.

Verfügbare Datasets

Lakehouse bietet Beispieltabellen, die Sie als Apache Iceberg-Tabellen abfragen können.

Das Dataset biglake-public-nyc-taxi-iceberg enthält die folgenden Tabellen im Apache Iceberg-Format:

Name Beschreibung
nyc_taxicab Daten zu Fahrten der NYC Taxi and Limousine Commission (TLC)

Nächste Schritte