Mit Borderless Lakehouse können Sie schreibgeschützte öffentliche Datasets abfragen, die über den Apache Iceberg REST-Katalogendpunkt im Rahmen des Google Cloud Public Dataset Program bereitgestellt werden. Sie können BigQuery, Managed Service for Apache Spark, Trino oder Apache Flink verbinden, um diese Tabellen mit Ihren privaten Daten zu kombinieren oder Open-Source-Engine-Konfigurationen mit einem Live-Apache Iceberg REST-Katalogendpunkt zu testen, ohne die Speicherinfrastruktur verwalten zu müssen.
Google bezahlt die Speicherung dieser Datasets und bietet öffentlichen Zugriff auf die Daten über Lakehouse. Sie bezahlen nur für die Abfrage der Daten.
Hinweis
- 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.
-
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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.
Bevor Sie eine Verbindung zu Apache Spark herstellen, benötigen Sie Folgendes:
- 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 wie US oder EU gespeichert. Die öffentlichen Lakehouse-Datasets sind am multiregionalen Standort US gespeichert. Wenn Sie ein öffentliches Dataset abfragen, muss der Verarbeitungsstandort mit dem Dataset-Standort kompatibel sein.
Mit Apache Spark auf öffentliche Datasets zugreifen
Da öffentliche Lakehouse-Datasets über den Iceberg REST-Katalog bereitgestellt werden, können Sie über Apache Spark und andere kompatible Engines darauf zugreifen. Sie können mit jeder Standard-Spark-Umgebung eine Verbindung zum öffentlichen Dataset herstellen, z. B. lokal, mit Managed Service for Apache Spark oder mit anderen Cloud-Anbietern.
Verbindung zu Apache Spark herstellen
Verwenden Sie beim Starten der Spark SQL-Sitzung die folgenden Konfigurations-Flags.
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://CATALOG_NAME \
--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 Folgendes:
CATALOG_NAME: der Name des Katalogs mit öffentlichen Datasets, z. B.lakehouse-public-dataoderbiglake-public-nyc-taxi-iceberg.PROJECT_ID: Projekt-ID in Google Cloud .
Verbindung mit PySpark und Managed Service for Apache Spark herstellen
Sie können auch ein verwaltetes, serverloses Spark-Notebook in Managed Service for Apache Spark verwenden, um die Tabellen abzufragen, ohne einen Cluster erstellen oder verwalten zu müssen:
from google.cloud.dataproc_v1 import Session
from google.cloud.dataproc_spark_connect import DataprocSparkSession
PROJECT_ID = "PROJECT_ID"
spark_catalog = "CATALOG_NAME"
session = Session()
session.runtime_config.properties = {
"spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",
f"spark.sql.catalog.{spark_catalog}": "org.apache.iceberg.spark.SparkCatalog",
f"spark.sql.catalog.{spark_catalog}.type": "rest",
f"spark.sql.catalog.{spark_catalog}.uri": "https://biglake.googleapis.com/iceberg/v1/restcatalog",
f"spark.sql.catalog.{spark_catalog}.rest.auth.type": "org.apache.iceberg.gcp.auth.GoogleAuthManager",
f"spark.sql.catalog.{spark_catalog}.io-impl": "org.apache.iceberg.gcp.gcs.GCSFileIO",
f"spark.sql.catalog.{spark_catalog}.header.X-Iceberg-Access-Delegation": "vended-credentials",
f"spark.sql.catalog.{spark_catalog}.warehouse": f"gs://{spark_catalog}",
f"spark.sql.catalog.{spark_catalog}.header.x-goog-user-project": PROJECT_ID,
}
spark = (
DataprocSparkSession.builder
.appName("Lakehouse Public Data Demo")
.dataprocSessionConfig(session)
.getOrCreate()
)
spark.conf.set("spark.sql.defaultCatalog", spark_catalog)
Ersetzen Sie Folgendes:
PROJECT_ID: Projekt-ID in Google Cloud .CATALOG_NAME: der Name des Katalogs mit öffentlichen Datasets, z. B.lakehouse-public-dataoderbiglake-public-nyc-taxi-iceberg.
Beispielabfragen
Sobald die Verbindung hergestellt ist, haben Sie vollständigen SQL-Zugriff auf die Datasets.
Wikipedia-Seitenaufrufe und GitHub-Commits abfragen
Wenn Sie in einer PySpark-Sitzung mit dem lakehouse-public-data-Katalog verbunden sind, können Sie die monatlichen Wikipedia-Aufrufzahlen für BigQuery-bezogene Artikel abfragen:
df1 = spark.sql("""
SELECT
title,
wiki,
SUM(views) AS total_views
FROM wikipedia.pageviews_2026
WHERE datehour >= TIMESTAMP '2026-01-01 00:00:00'
AND datehour < TIMESTAMP '2026-02-01 00:00:00'
AND LOWER(title) LIKE '%bigquery%'
GROUP BY title, wiki
ORDER BY total_views DESC
LIMIT 20
""")
df1.show(10)
Sie können auch die letzten GitHub-Commits abrufen, die auf Iceberg verweisen:
df2 = spark.sql("""
SELECT
commits.commit,
commits.subject,
commits.message,
commits.author.name AS author_name,
timestamp_seconds(commits.committer.date.seconds) AS commit_time,
repo_name
FROM github_repos.commits AS commits
WHERE LOWER(commits.subject) LIKE '%iceberg%'
OR LOWER(commits.message) LIKE '%iceberg%'
ORDER BY commit_time DESC
LIMIT 50
""")
df2.show(10)
Dataset „NYC Taxi“ abfragen
Das NYC Taxi-Dataset ist im biglake-public-nyc-taxi-iceberg-Katalog verfügbar und als Iceberg-Tabelle modelliert, um Partitionierungs- und Metadatenfunktionen zu demonstrieren.
In der folgenden Abfrage werden Millionen von Datensätzen aggregiert, um den durchschnittlichen Fahrpreis und die durchschnittliche Fahrtdistanz nach Fahrgastzahl zu ermitteln. Es wird gezeigt, wie Iceberg Datendateien effizient scannt, ohne Verzeichnisse auflisten zu müssen, indem Partitionen gekürzt 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 vorhanden war. Mit der folgenden Abfrage können Sie Änderungen prüfen, indem Sie die Zeilenanzahl 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 Apache Iceberg-Tabellen mit Lakehouse abfragen.
Verfügbare Datasets
Lakehouse bietet öffentliche Datasets und Beispieltabellen, die Sie als Apache Iceberg-Tabellen in zwei öffentlichen Katalogen abfragen können: lakehouse-public-data und biglake-public-nyc-taxi-iceberg.
lakehouse-public-data-Katalog
Der lakehouse-public-data-Katalog (gs://lakehouse-public-data) enthält die folgenden Namespaces und Tabellen im Apache Iceberg-Format.
austin_bikeshare
Der Namespace austin_bikeshare enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
bikeshare_trips |
Fahrtdatensätze von Austin Bikeshare, einschließlich Fahrtdauer, Zeitstempel für Start und Ende sowie Stationsdetails. |
bls
Der Namespace bls enthält Wirtschaftsstatistiken des US Bureau of Labor Statistics:
| Name | Beschreibung |
|---|---|
cpi_u |
Daten zum Verbraucherpreisindex für alle städtischen Verbraucher (CPI-U). |
unemployment_cps |
Arbeitslosenstatistiken der Current Population Survey (CPS). |
census_bureau_acs
Der Namespace census_bureau_acs enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
state_2020_5yr |
5-Jahres-Schätzungen des US Census Bureau American Community Survey (ACS) für 2020 auf Bundesstaatsebene. |
chicago_taxi_trips
Der Namespace chicago_taxi_trips enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
taxi_trips |
Aufzeichnungen von Taxifahrten in Chicago, einschließlich Zeitstempeln, Entfernungen, Fahrpreisen sowie Abhol- und Ablieferungsorten. |
crypto_ethereum
Der Namespace crypto_ethereum enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
transactions |
Transaktionsdatensätze der Ethereum-Blockchain, einschließlich Absender- und Empfängeradressen, Wert und Gas-Messwerten. |
ga4_obfuscated_sample_ecommerce
Der Namespace ga4_obfuscated_sample_ecommerce enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
events_20210131 |
Verschleierte Google Analytics 4-Ereignisdaten, die eine E-Commerce-Implementierung im Web für den 31. Januar 2021 emulieren. |
geo_openstreetmap
Der Namespace geo_openstreetmap enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
planet_features |
Globale geografische Elemente von OpenStreetMap, einschließlich Elementtypen, Tags und Geometrien. |
geo_us_boundaries
Der Namespace geo_us_boundaries enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
zip_codes |
US-Postleitzahlengrenzen, einschließlich FIPS-Codes für Städte, Bezirke und Bundesstaaten sowie geografische Geometrien. |
github_repos
Der Namespace github_repos enthält Daten aus öffentlichen, Open-Source-lizenzierten Repositories auf GitHub:
| Name | Beschreibung |
|---|---|
commits |
Eindeutige Git-Commits aus Open-Source-Repositories auf GitHub, gruppiert nach Repository. |
contents |
Eindeutige Dateiinhalte von Textdateien unter 1 MiB im Zweig HEAD. |
languages |
Programmiersprachen nach Repository, wie von der GitHub API gemeldet. |
licenses |
SPDX-Code der Open-Source-Lizenz für jedes Repository. |
sample_commits |
Beispiel für Commits aus der Tabelle commits. |
sample_contents |
Zufällig ausgewählte 10% der Inhalte von Textdateien aus der Tabelle contents. |
sample_files |
Beispielhafte Dateimetadaten für Dateien unter HEAD aus den 400.000 besten Repositories,die in sample_repos aufgeführt sind. |
sample_repos |
Die 400.000 besten GitHub-Repositories nach Anzahl der Sterne. |
google_trends
Der Namespace google_trends enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
top_terms |
Die 25 wichtigsten Suchbegriffe des Tages in den USA mit Punktzahl, Ranking, Zeit und Designated Market Area (DMA). |
imdb
Der Namespace imdb enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
title_basics |
IMDb-Titelmetadaten, einschließlich Titeltyp, Primär- und Originaltitel, Erscheinungsjahr, Laufzeit und Genres. |
title_ratings |
Durchschnittliche IMDb-Nutzerbewertungen und Anzahl der Stimmen für Titel. |
iowa_liquor_sales
Der Namespace iowa_liquor_sales enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
sales |
Aufzeichnungen über den Großhandelskauf von Alkohol im Bundesstaat Iowa durch Einzelhändler zum Verkauf an Privatpersonen seit 2012. |
ml_datasets
Der Namespace ml_datasets enthält Benchmark-Tabellen für maschinelles Lernen:
| Name | Beschreibung |
|---|---|
census_adult_income |
Dataset zum Einkommen von Erwachsenen aus der Volkszählung, das für Klassifizierungsaufgaben verwendet wird, um vorherzusagen, ob das Einkommen 50.000 $ pro Jahr übersteigt. |
penguins |
Messungen von Pinguinen auf dem Palmer-Archipel, einschließlich Art, Insel, Schnabelabmessungen, Flossenlänge und Körpergewicht. |
ulb_fraud_detection |
Anonymisierte Kreditkartentransaktionen europäischer Karteninhaber aus dem September 2013 für das Benchmarking der Betrugserkennung. |
new_york_citibike
Der Namespace new_york_citibike enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
citibike_trips |
Aufzeichnungen zu Citi Bike-Fahrten in New York City, einschließlich Fahrtdauer, Zeitstempeln, Stationsstandorten und demografischen Daten der Fahrer. |
new_york_taxi_trips
Der Namespace new_york_taxi_trips enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
taxi_zone_geom |
IDs, Namen, Stadtbezirke und Begrenzungsgeometrien der Taxizonen der NYC Taxi and Limousine Commission (TLC). |
tlc_green_trips_2022 |
Fahrtenaufzeichnungen der NYC TLC für grüne Taxis für 2022. |
tlc_yellow_trips_2022 |
NYC TLC-Fahrtenaufzeichnungen für NYC Taxi Cabs für 2022. |
noaa_gsod
Der Namespace noaa_gsod enthält Wetterdaten von Global Surface Summary of the Day (GSOD) der National Oceanic and Atmospheric Administration (NOAA):
| Name | Beschreibung |
|---|---|
gsod2023 |
Tägliche globale Zusammenfassung der Wetterbeobachtungen an der Oberfläche für 2023. |
stations |
Metadaten der NOAA-Wetterstationen, einschließlich Stationskennungen, Namen, Ländern, Bundesstaaten und Koordinaten. |
sec_quarterly_financials
Der Namespace sec_quarterly_financials enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
numbers |
Numerische Finanzberichtsdaten, die aus den vierteljährlichen Einreichungen bei der US-amerikanischen Securities and Exchange Commission (SEC) extrahiert wurden. |
stackoverflow
Der Namespace stackoverflow enthält die folgenden Tabellen:
| Name | Beschreibung |
|---|---|
posts_answers |
Stack Overflow-Antwortbeiträge, einschließlich Text, Punktzahl, Erstellungsdatum und Autorendetails. |
posts_questions |
Stack Overflow-Fragen, einschließlich Titel, Text, Tags, Anzahl der Aufrufe und ID der akzeptierten Antwort. |
users |
Stack Overflow-Nutzerprofile, einschließlich Anzeigename, Bewertung, Erstellungsdatum und Anzahl der Badges. |
tpc_ds_1g
Der Namespace tpc_ds_1g enthält TPC-DS-Benchmarktabellen mit 1 GB:
| Name | Beschreibung |
|---|---|
date_dim |
TPC-DS-Datumsdimensionstabelle, in der Kalenderdaten Steuerperioden, Quartalen und Feiertagen zugeordnet werden. |
store_sales |
TPC-DS-Faktentabelle für Ladenverkäufe, in der Transaktionen in Einzelhandelsgeschäften erfasst werden. |
wikipedia
Der Namespace wikipedia enthält Wikimedia-Seitenaufrufstatistiken und Wikidata-Entitäten:
| Name | Beschreibung |
|---|---|
pageviews_2015 |
Stündliche Wikipedia-Seitenaufrufe für 2015, partitioniert nach Datum. |
pageviews_2016 |
Stündliche Wikipedia-Seitenaufrufe für 2016, partitioniert nach Datum. |
pageviews_2017 |
Stündliche Wikipedia-Seitenaufrufe für 2017, partitioniert nach Datum. |
pageviews_2018 |
Stündliche Wikipedia-Seitenaufrufe für 2018, partitioniert nach Datum. |
pageviews_2019 |
Stündliche Wikipedia-Seitenaufrufe für 2019, partitioniert nach Datum. |
pageviews_2020 |
Stündliche Wikipedia-Seitenaufrufe für 2020, partitioniert nach Datum. |
pageviews_2021 |
Stündliche Wikipedia-Seitenaufrufe für 2021, partitioniert nach Datum. |
pageviews_2022 |
Stündliche Wikipedia-Seitenaufrufe für 2022, partitioniert nach Datum. |
pageviews_2023 |
Stündliche Wikipedia-Seitenaufrufe für 2023, partitioniert nach Datum. |
pageviews_2024 |
Stündliche Wikipedia-Seitenaufrufe für 2024, partitioniert nach Datum. |
pageviews_2025 |
Stündliche Wikipedia-Seitenaufrufe für 2025, partitioniert nach Datum. |
pageviews_2026 |
Stündliche Wikipedia-Seitenaufrufe für 2026, partitioniert nach Datum. |
table_activists |
Wikipedia-Seitenaufrufe für Artikel über Aktivisten. |
table_actors |
Wikipedia-Seitenaufrufe für Artikel über Schauspieler. |
table_alumni |
Wikipedia-Seitenaufrufe für Artikel über Alumni. |
table_artists |
Wikipedia-Seitenaufrufe für Artikel über Künstler. |
table_athlete |
Wikipedia-Seitenaufrufe für Artikel über Sportler. |
table_bands |
Wikipedia-Seitenaufrufe für Artikel über Musikbands. |
table_born |
Wikipedia-Seitenaufrufzahlen für Artikel, die nach Geburtsjahr kategorisiert sind. |
table_businesspeople |
Wikipedia-Seitenaufrufe für Artikel über Geschäftsleute. |
table_comedians |
Wikipedia-Seitenaufrufe für Artikel über Comedians. |
table_composers |
Wikipedia-Seitenaufrufe für Artikel über Komponisten. |
table_inventors |
Wikipedia-Seitenaufrufe für Artikel über Erfinder. |
table_politicians |
Anzahl der Wikipedia-Seitenaufrufe für Artikel über Politiker. |
table_scientists |
Wikipedia-Seitenaufrufe für Artikel über Wissenschaftler. |
table_singers |
Wikipedia-Seitenaufrufe für Artikel über Sänger. |
table_writers |
Wikipedia-Seitenaufrufe für Artikel über Autoren. |
wikidata |
Strukturierte Wikidata-Wissensdatenbank-Entitäten, einschließlich mehrsprachiger Labels, Beschreibungen, Sitelinks und Claims. |
world_bank_health_population
Der Namespace world_bank_health_population enthält Statistiken der Weltbank zu Gesundheit, Ernährung und Bevölkerung:
| Name | Beschreibung |
|---|---|
country_series_definitions |
Definitionen und Metadaten, die Ländercodes und Indikatorreihencodes verknüpfen. |
country_summary |
Ländermetadaten, einschließlich Kurz- und Langnamen, ISO-Codes, Währungseinheiten und Regionen. |
health_nutrition_population |
Jährliche Indikatorwerte für Gesundheit, Ernährung und Bevölkerung nach Land. |
series_summary |
Metadaten für Gesundheits- und Bevölkerungsindikatoren, einschließlich Definitionen, Maßeinheiten und Periodizität. |
series_times |
Zeitreihenmetadaten und -beschreibungen nach Indikatorreihencode und Jahr. |
world_bank_wdi
Der Namespace world_bank_wdi enthält Daten zu den Weltentwicklungsindikatoren (WDI) der Weltbank:
| Name | Beschreibung |
|---|---|
country_summary |
Ländermetadaten, einschließlich Kurz- und Langnamen, ISO-Codes, Währungseinheiten und Einkommensgruppen. |
indicators_data |
Jährliche Werte der Weltentwicklungsindikatoren nach Land und Indikatorcode. |
series_summary |
Definitionen, Themen und Maßeinheiten für die Reihe der Weltentwicklungsindikatoren. |
biglake-public-nyc-taxi-iceberg-Katalog
Der biglake-public-nyc-taxi-iceberg-Katalog (gs://biglake-public-nyc-taxi-iceberg) enthält die folgenden Tabellen im Namespace public_data im Apache Iceberg-Format:
| Name | Beschreibung |
|---|---|
nyc_taxicab |
Fahrtdatensätze der NYC Taxi and Limousine Commission (TLC). |
nyc_taxicab_2021 |
Fahrtdatensätze der NYC Taxi and Limousine Commission (TLC) für 2021. |
Nächste Schritte
- Weitere Informationen zu von Lakehouse verwalteten Apache Iceberg-Tabellen
- Weitere Informationen zum Iceberg-REST-Katalog des Lakehouse-Laufzeitkatalogs