Lakehouse for Apache Iceberg hostet hochwertige öffentliche Datasets, die über den Apache Iceberg REST-Katalog bereitgestellt werden und der Allgemeinheit im Rahmen des Google Cloud Programms für öffentliche Datasets zur Verfügung stehen.
Diese Datasets sind schreibgeschützt verfügbar und können mit Apache Spark, Trino, Flink oder BigQuery aufgerufen und in Ihre Anwendungen eingebunden werden. 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 nur eine Verbindung herstellen. 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
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch nicht mit Google Cloudvertraut sind, erstellen Sie ein Konto, um die Leistung 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Lakehouse API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Lakehouse API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Bevor Sie eine Verbindung zu Apache Spark herstellen, müssen Sie Folgendes haben:
- Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC), die in Ihrer Umgebung eingerichtet sind.
Öffentliche Dataset-Standorte
Jedes öffentliche Dataset wird an einem bestimmten Standort gespeichert, z. B. US oder EU. Die
öffentlichen Datasets von Lakehouse 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 Datasets von Lakehouse ü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
Nachdem Sie eine Verbindung hergestellt haben, haben Sie vollen SQL-Zugriff auf die Datasets. Das NYC Taxi-Dataset ist als Iceberg-Tabelle verfügbar, um die Partitionierungs- und Metadatenfunktionen zu demonstrieren.
Die folgende Abfrage aggregiert Millionen von Datensätzen, um den durchschnittlichen Fahrpreis und die durchschnittliche Entfernung pro Fahrgast zu ermitteln. Sie zeigt, wie Iceberg Daten 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 die Zeitreise. 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 zurückgehen
, um zu sehen, 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 Lakehouse-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
- Weitere Informationen zu Lakehouse Iceberg Tabellen.
- Weitere Informationen zum Lakehouse-Laufzeitkatalog und zum Iceberg REST Katalog