Öffentliche Datasets für das grenzenlose Lakehouse

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

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

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

  4. Enable the Lakehouse API, if it is not already enabled.

    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

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

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

  7. Enable the Lakehouse API, if it is not already enabled.

    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, benötigen Sie Folgendes:

Ö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:

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:

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.

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