Le lakehouse sans frontières héberge des ensembles de données publics de haute qualité fournis par le biais du catalogue REST Apache Iceberg. Ils sont ainsi mis à la disposition du grand public dans le cadre du Google Cloud Programme d'ensembles de données publics.
Ces ensembles de données sont disponibles en accès en lecture seule. Vous pouvez y accéder et les intégrer à vos applications à l'aide d'Apache Spark, Trino, Flink ou BigQuery. Google prend en charge le stockage de ces ensembles de données et fournit un accès public aux données via Lakehouse. Vous ne payez que pour les requêtes que vous effectuez sur les données.
L'objectif de ces ensembles de données publics est de faciliter l'accès à Iceberg. Vous n'avez pas besoin de gérer l'infrastructure pour apprendre Iceberg, vous devez vous connecter. Vous pouvez utiliser ces ensembles de données pour :
- Utilisez BigQuery (via Lakehouse) pour interroger directement ces tables à l'aide de SQL, en les combinant avec vos données privées.
- Testez les configurations de votre moteur OSS (par exemple, Spark, Trino ou Flink) par rapport à un catalogue REST en direct.
Avant de commencer
-
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.
Avant de vous connecter à Apache Spark, vous devez disposer des éléments suivants :
- Les identifiants par défaut de l'application (ADC) configurés dans votre environnement.
Emplacements des ensembles de données publics
Chaque ensemble de données public est stocké dans un emplacement spécifique tel que US ou EU. Les ensembles de données publics Lakehouse sont stockés dans l'emplacement multirégional US. Lorsque vous interrogez un ensemble de données public, assurez-vous que votre emplacement de traitement est compatible avec l'emplacement de l'ensemble de données.
Accéder aux ensembles de données publics à l'aide d'Apache Spark
Étant donné que les ensembles de données publics Lakehouse sont diffusés via le catalogue REST Iceberg, vous pouvez y accéder depuis Apache Spark et d'autres moteurs compatibles. Vous pouvez vous connecter à l'ensemble de données public à l'aide de n'importe quel environnement Spark standard, tel que sur site, Managed Service pour Apache Spark ou d'autres fournisseurs de cloud.
Se connecter à Apache Spark
Utilisez les indicateurs de configuration suivants lorsque vous démarrez votre session Spark SQL.
Ces indicateurs configurent un catalogue nommé lakehouse-sample pointant vers le point de terminaison REST public :
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
Remplacez les éléments suivants :
CATALOG_NAME: nom du catalogue d'ensembles de données publics, tel quelakehouse-public-dataoubiglake-public-nyc-taxi-iceberg.PROJECT_ID: ID de votre projet Google Cloud .
Se connecter avec PySpark et Managed Service pour Apache Spark
Vous pouvez également utiliser un notebook Spark sans serveur géré dans Managed Service pour Apache Spark afin d'interroger les tables sans créer ni gérer de cluster :
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)
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .CATALOG_NAME: nom du catalogue d'ensembles de données publics, tel quelakehouse-public-dataoubiglake-public-nyc-taxi-iceberg.
Exemples de requêtes
Une fois connecté, vous disposez d'un accès SQL complet aux ensembles de données.
Interroger les vues de page Wikipédia et les commits GitHub
Lorsque vous êtes connecté au catalogue lakehouse-public-data dans une session PySpark, vous pouvez interroger le nombre de vues mensuelles des articles liés à BigQuery sur Wikipédia :
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)
Vous pouvez également récupérer les commits GitHub récents faisant référence à Iceberg :
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)
Interroger l'ensemble de données NYC Taxi
L'ensemble de données sur les taxis de New York est disponible dans le catalogue biglake-public-nyc-taxi-iceberg. Il est modélisé sous forme de table Iceberg pour illustrer les capacités de partitionnement et de métadonnées.
La requête suivante agrège des millions d'enregistrements pour trouver le prix moyen et la distance de trajet par nombre de passagers. Il montre comment Iceberg analyse efficacement les fichiers de données sans avoir besoin de lister les répertoires en utilisant l'élagage de partition :
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;
L'une des fonctionnalités les plus puissantes d'Iceberg est le voyage dans le temps. Vous pouvez interroger la table telle qu'elle existait à un moment précis dans le passé. La requête suivante vous permet d'auditer les modifications en comparant le nombre de lignes de la version actuelle à celui d'un instantané spécifique :
-- 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;
En interrogeant la table des métadonnées de l'historique (par exemple, SELECT * FROM
lakehouse-sample.public_data.nyc_taxicab.history), vous pouvez trouver des ID d'instantané et revenir en arrière pour voir comment l'ensemble de données a évolué au fil du temps.
Pour en savoir plus, consultez Utiliser le catalogue REST Iceberg avec Cloud Storage.
Ensembles de données disponibles
Lakehouse fournit des ensembles de données publics et des exemples de tables que vous pouvez interroger en tant que tables Apache Iceberg dans deux catalogues publics : lakehouse-public-data et biglake-public-nyc-taxi-iceberg.
Catalogue lakehouse-public-data
Le catalogue lakehouse-public-data (gs://lakehouse-public-data) inclut les espaces de noms et les tables suivants au format Apache Iceberg.
austin_bikeshare
L'espace de noms austin_bikeshare inclut les tables suivantes :
| Nom | Description |
|---|---|
bikeshare_trips |
Enregistrements des trajets Austin Bikeshare, y compris la durée du trajet, les codes temporels de début et de fin, et les informations sur les stations. |
bls
L'espace de noms bls inclut des statistiques économiques fournies par le Bureau of Labor Statistics des États-Unis :
| Nom | Description |
|---|---|
cpi_u |
Données de la série de l'indice des prix à la consommation pour tous les consommateurs urbains (CPI-U). |
unemployment_cps |
Statistiques sur le chômage issues de l'enquête Current Population Survey (CPS). |
census_bureau_acs
L'espace de noms census_bureau_acs inclut les tables suivantes :
| Nom | Description |
|---|---|
state_2020_5yr |
Estimations quinquennales au niveau des États pour 2020 de l'American Community Survey (ACS) du Bureau du recensement des États-Unis. |
chicago_taxi_trips
L'espace de noms chicago_taxi_trips inclut les tables suivantes :
| Nom | Description |
|---|---|
taxi_trips |
Enregistrements des courses de taxi à Chicago, y compris les codes temporels des trajets, la distance, les tarifs, et les lieux de prise en charge et de dépose. |
crypto_ethereum
L'espace de noms crypto_ethereum inclut les tables suivantes :
| Nom | Description |
|---|---|
transactions |
Enregistrements des transactions de la blockchain Ethereum, y compris les adresses de l'expéditeur et du destinataire, la valeur et les métriques de gaz. |
ga4_obfuscated_sample_ecommerce
L'espace de noms ga4_obfuscated_sample_ecommerce inclut les tables suivantes :
| Nom | Description |
|---|---|
events_20210131 |
Données d'événements Google Analytics 4 obscurcies simulant une implémentation d'e-commerce Web pour le 31 janvier 2021. |
geo_openstreetmap
L'espace de noms geo_openstreetmap inclut les tables suivantes :
| Nom | Description |
|---|---|
planet_features |
Fonctionnalités géographiques mondiales d'OpenStreetMap, y compris les types de fonctionnalités, les tags et les géométries. |
geo_us_boundaries
L'espace de noms geo_us_boundaries inclut les tables suivantes :
| Nom | Description |
|---|---|
zip_codes |
Limites des codes postaux américains, y compris les codes FIPS des villes, des comtés et des États, ainsi que les géométries géographiques. |
github_repos
L'espace de noms github_repos inclut des données provenant de dépôts publics sous licence Open Source sur GitHub :
| Nom | Description |
|---|---|
commits |
Commits Git uniques provenant de dépôts Open Source sur GitHub, regroupés par dépôt. |
contents |
Contenu unique des fichiers texte de moins de 1 Mio sur la branche HEAD. |
languages |
Langages de programmation par dépôt, tels qu'indiqués par l'API GitHub. |
licenses |
Code SPDX de licence Open Source pour chaque dépôt. |
sample_commits |
Exemple d'engagements provenant de la table commits. |
sample_contents |
Sous-ensemble de 10% du contenu du fichier texte échantillonné de manière aléatoire à partir de la table contents. |
sample_files |
Exemple de métadonnées de fichiers pour les fichiers situés dans HEAD à partir des 400 000 premiers dépôts listés dans sample_repos. |
sample_repos |
Les 400 000 premiers dépôts GitHub par nombre d'étoiles. |
google_trends
L'espace de noms google_trends inclut les tables suivantes :
| Nom | Description |
|---|---|
top_terms |
Les 25 termes les plus recherchés chaque jour aux États-Unis, avec leur score, leur classement, l'heure et la zone de marché désignée (DMA). |
imdb
L'espace de noms imdb inclut les tables suivantes :
| Nom | Description |
|---|---|
title_basics |
Métadonnées des titres IMDb, y compris le type de titre, les titres principaux et originaux, l'année de sortie, la durée et les genres. |
title_ratings |
Moyennes des notes et nombre de votes des utilisateurs IMDb pour les titres. |
iowa_liquor_sales
L'espace de noms iowa_liquor_sales inclut les tables suivantes :
| Nom | Description |
|---|---|
sales |
Enregistrements des achats de boissons alcoolisées en gros dans l'État de l'Iowa par les marchands pour la vente aux particuliers depuis 2012. |
ml_datasets
L'espace de noms ml_datasets inclut des tableaux de référence pour le machine learning :
| Nom | Description |
|---|---|
census_adult_income |
Ensemble de données sur les revenus des adultes recensés utilisé pour les tâches de classification permettant de prédire si les revenus dépassent 50 000 $ par an. |
penguins |
Mesures des manchots de l'archipel Palmer, y compris l'espèce, l'île, les dimensions du bec, la longueur de la nageoire et la masse corporelle. |
ulb_fraud_detection |
Transactions anonymisées par carte de crédit de titulaires européens depuis septembre 2013 pour le benchmarking de la détection des fraudes. |
new_york_citibike
L'espace de noms new_york_citibike inclut les tables suivantes :
| Nom | Description |
|---|---|
citibike_trips |
Enregistrements des trajets Citi Bike à New York, y compris la durée des trajets, les codes temporels, les emplacements des stations et les données démographiques des utilisateurs. |
new_york_taxi_trips
L'espace de noms new_york_taxi_trips inclut les tables suivantes :
| Nom | Description |
|---|---|
taxi_zone_geom |
ID, noms, arrondissements et géométries des limites des zones de taxi de la NYC Taxi and Limousine Commission (TLC). |
tlc_green_trips_2022 |
Enregistrements des courses de taxi vert TLC à New York pour l'année 2022. |
tlc_yellow_trips_2022 |
Enregistrements des courses de taxis jaunes TLC à New York pour l'année 2022. |
noaa_gsod
L'espace de noms noaa_gsod inclut les données météorologiques GSOD (Global Surface Summary of the Day) de la National Oceanic and Atmospheric Administration (NOAA) :
| Nom | Description |
|---|---|
gsod2023 |
Observations quotidiennes des conditions météorologiques en surface à l'échelle mondiale pour 2023. |
stations |
Métadonnées des stations météorologiques de la NOAA, y compris les identifiants, les noms, les pays, les États et les coordonnées des stations. |
sec_quarterly_financials
L'espace de noms sec_quarterly_financials inclut les tables suivantes :
| Nom | Description |
|---|---|
numbers |
Données numériques des états financiers extraites des déclarations trimestrielles de la Securities and Exchange Commission (SEC) des États-Unis. |
stackoverflow
L'espace de noms stackoverflow inclut les tables suivantes :
| Nom | Description |
|---|---|
posts_answers |
Posts de réponses Stack Overflow, y compris le corps du texte, le score, la date de création et les informations sur l'auteur. |
posts_questions |
Posts de questions Stack Overflow, y compris le titre, le corps du texte, les tags, le nombre de vues et l'ID de la réponse acceptée. |
users |
Profils utilisateur Stack Overflow, y compris le nom à afficher, la réputation, la date de création et le nombre de badges. |
tpc_ds_1g
L'espace de noms tpc_ds_1g inclut les tables de référence TPC-DS de 1 Go :
| Nom | Description |
|---|---|
date_dim |
Table de dimension de date TPC-DS mappant les dates du calendrier aux périodes fiscales, aux trimestres et aux jours fériés. |
store_sales |
Table de faits sur les ventes en magasin TPC-DS enregistrant les transactions des magasins. |
wikipedia
L'espace de noms wikipedia inclut les statistiques sur les pages vues de Wikimedia et les entités Wikidata :
| Nom | Description |
|---|---|
pageviews_2015 |
Nombre de pages vues Wikipédia par heure pour l'année 2015, partitionné par date. |
pageviews_2016 |
Nombre de pages vues Wikipédia par heure pour l'année 2016, partitionné par date. |
pageviews_2017 |
Nombre de pages vues Wikipédia par heure pour 2017, partitionné par date. |
pageviews_2018 |
Nombre de pages vues Wikipédia par heure pour l'année 2018, partitionné par date. |
pageviews_2019 |
Nombre de pages vues Wikipédia par heure pour 2019, partitionné par date. |
pageviews_2020 |
Nombre de pages vues Wikipédia par heure pour l'année 2020, partitionné par date. |
pageviews_2021 |
Nombre de pages vues sur Wikipédia par heure pour l'année 2021, partitionné par date. |
pageviews_2022 |
Nombre de pages vues Wikipédia par heure pour 2022, partitionné par date. |
pageviews_2023 |
Nombre de pages vues Wikipédia par heure pour l'année 2023, partitionné par date. |
pageviews_2024 |
Nombre de pages vues sur Wikipédia par heure pour l'année 2024, partitionné par date. |
pageviews_2025 |
Nombre de pages vues Wikipédia par heure pour 2025, partitionné par date. |
pageviews_2026 |
Nombre de pages vues sur Wikipédia par heure pour l'année 2026, partitionné par date. |
table_activists |
Nombre de pages vues sur Wikipédia pour les articles sur les militants. |
table_actors |
Nombre de pages vues Wikipédia pour les articles sur les acteurs. |
table_alumni |
Nombre de vues des pages Wikipédia sur les anciens élèves. |
table_artists |
Nombre de vues des pages Wikipédia consacrées aux artistes. |
table_athlete |
Nombre de pages vues Wikipédia pour les articles sur les athlètes. |
table_bands |
Nombre de pages vues Wikipédia pour les articles sur les groupes musicaux. |
table_born |
Nombre de pages vues Wikipédia pour les articles classés par année de naissance. |
table_businesspeople |
Nombre de vues de pages Wikipédia sur des hommes et femmes d'affaires. |
table_comedians |
Nombre de pages vues Wikipédia pour les articles sur les humoristes. |
table_composers |
Nombre de pages vues Wikipédia pour les articles sur les compositeurs. |
table_inventors |
Nombre de pages vues Wikipédia pour les articles sur les inventeurs. |
table_politicians |
Nombre de vues de pages Wikipédia sur des articles concernant des personnalités politiques. |
table_scientists |
Nombre de vues des pages Wikipédia sur les scientifiques. |
table_singers |
Nombre de pages vues Wikipédia pour les articles sur les chanteurs. |
table_writers |
Nombre de vues des pages Wikipédia sur les écrivains. |
wikidata |
Entités structurées de la base de connaissances Wikidata, y compris les libellés, les descriptions, les liens vers les sites et les revendications multilingues. |
world_bank_health_population
L'espace de noms world_bank_health_population inclut les statistiques de la Banque mondiale sur la santé, la nutrition et la population :
| Nom | Description |
|---|---|
country_series_definitions |
Définitions et métadonnées associant les codes pays et les codes de série d'indicateurs. |
country_summary |
Métadonnées des pays, y compris les noms courts et longs, les codes ISO, les unités monétaires et les régions. |
health_nutrition_population |
Valeurs annuelles des indicateurs de santé, de nutrition et de population par pays. |
series_summary |
Métadonnées pour les indicateurs de santé et de population, y compris les définitions, les unités de mesure et la périodicité. |
series_times |
Métadonnées et descriptions des séries temporelles par code et année de série d'indicateurs. |
world_bank_wdi
L'espace de noms world_bank_wdi inclut les données des indicateurs de développement mondiaux (WDI) de la Banque mondiale :
| Nom | Description |
|---|---|
country_summary |
Métadonnées sur les pays, y compris les noms courts et longs, les codes ISO, les unités monétaires et les groupes de revenus. |
indicators_data |
Valeurs annuelles des indicateurs du développement mondial par pays et code d'indicateur. |
series_summary |
Définitions, thèmes et unités de mesure pour la série des indicateurs du développement mondial. |
Catalogue biglake-public-nyc-taxi-iceberg
Le catalogue biglake-public-nyc-taxi-iceberg (gs://biglake-public-nyc-taxi-iceberg) inclut les tables suivantes dans l'espace de noms public_data au format Apache Iceberg :
| Nom | Description |
|---|---|
nyc_taxicab |
Données sur les courses de la NYC Taxi and Limousine Commission (TLC). |
nyc_taxicab_2021 |
Données sur les courses de taxi et de limousine de la ville de New York (TLC) pour 2021. |
Étapes suivantes
- En savoir plus sur les tables Apache Iceberg gérées par Lakehouse
- En savoir plus sur le catalogue d'environnements d'exécution Lakehouse Iceberg REST