Borderless Lakehouse vous permet d'interroger des ensembles de données publics en lecture seule diffusés via le point de terminaison du catalogue REST Apache Iceberg dans le cadre du programme d'ensembles de données publicsGoogle Cloud . Vous pouvez connecter BigQuery, Managed Service pour Apache Spark, Trino ou Apache Flink pour combiner ces tables avec vos données privées ou tester des configurations de moteur Open Source sur un point de terminaison de catalogue REST Apache Iceberg actif sans gérer l'infrastructure de stockage.
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 exécutez sur les données.
Avant de commencer
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
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.
Avant de vous connecter à Apache Spark, vous devez disposer des éléments suivants :
- 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 à des 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 qu'un environnement sur site, Managed Service pour Apache Spark ou d'autres fournisseurs cloud.
Se connecter à Apache Spark
Utilisez les options de configuration suivantes lorsque vous démarrez votre session Spark SQL.
Ces options 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, par exemplelakehouse-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 géré et sans serveur dans Managed Service pour Apache Spark pour 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, par exemplelakehouse-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 pages vues de 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 de Wikipédia pour les articles liés à BigQuery :
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 NYC Taxi est disponible dans le catalogue biglake-public-nyc-taxi-iceberg, modélisé sous forme de table Iceberg pour illustrer les fonctionnalités de partitionnement et de métadonnées.
La requête suivante agrège des millions d'enregistrements pour trouver le tarif moyen et la distance moyenne du trajet par nombre de passagers. Il montre comment Iceberg analyse efficacement les fichiers de données sans avoir à 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 de métadonnées de l'historique (par exemple, SELECT * FROM
lakehouse-sample.public_data.nyc_taxicab.history), vous pouvez trouver les ID d'instantanés et remonter dans le temps pour voir comment l'ensemble de données a évolué.
Pour en savoir plus, consultez Interroger des tables Apache Iceberg avec Lakehouse.
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.
lakehouse-public-data catalogue
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 en vélo en libre-service à Austin, y compris la durée du trajet, les codes temporels de début et de fin, et les détails de la station. |
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 sur cinq ans au niveau des États pour 2020, issues 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, la distance, les tarifs, ainsi que 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énement Google Analytics 4 obscurcies émulant 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 |
Éléments géographiques mondiaux d'OpenStreetMap, y compris les types d'éléments, 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 de ville, de comté et d'État, ainsi que les géométries géographiques. |
github_repos
L'espace de noms github_repos inclut les données des 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, d'après l'API GitHub. |
licenses |
Code SPDX de licence Open Source pour chaque dépôt. |
sample_commits |
Exemple de commits de la table commits. |
sample_contents |
Échantillon aléatoire de 10% du contenu des fichiers texte de la table contents. |
sample_files |
Métadonnées de fichiers échantillonnées pour les fichiers situés à l'emplacement HEAD,à partir des 400 000 premiers dépôts répertorié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 de recherche les plus populaires 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 de titre 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 |
Notes moyennes des utilisateurs d'IMDb et nombre de votes 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 des marchands pour la vente aux particuliers depuis 2012. |
ml_datasets
L'espace de noms ml_datasets inclut des tables de benchmark de machine learning :
| Nom | Description |
|---|---|
census_adult_income |
Ensemble de données sur les revenus des adultes du recensement utilisé pour les tâches de classification prédisant 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 culmen, la longueur des nageoires et la masse corporelle. |
ulb_fraud_detection |
Transactions anonymisées par carte de crédit effectuées par des titulaires de cartes européens en septembre 2013 pour l'analyse comparative 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 du trajet, les codes temporels, l'emplacement des stations et les données démographiques des cyclistes. |
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 trajets en taxi vert de la NYC TLC pour 2022. |
tlc_yellow_trips_2022 |
Enregistrements des courses des taxis jaunes de la TLC de New York pour 2022. |
noaa_gsod
L'espace de noms noaa_gsod inclut les données météorologiques du Global Surface Summary of the Day (GSOD) de la National Oceanic and Atmospheric Administration (NOAA) :
| Nom | Description |
|---|---|
gsod2023 |
Observations quotidiennes de la météo de 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 d'états financiers numériques 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 |
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 |
Questions publiées sur 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 benchmark TPC-DS de 1 Go :
| Nom | Description |
|---|---|
date_dim |
Table de dimension de date TPC-DS mappant les dates calendaires aux périodes fiscales, aux trimestres et aux jours fériés. |
store_sales |
Table de faits des ventes en magasin TPC-DS enregistrant les transactions en magasin. |
wikipedia
L'espace de noms wikipedia inclut les statistiques de pages vues Wikimedia et les entités Wikidata :
| Nom | Description |
|---|---|
pageviews_2015 |
Nombre de pages vues par heure sur Wikipédia en 2015, partitionné par date. |
pageviews_2016 |
Nombre de pages vues par heure sur Wikipédia en 2016, partitionné par date. |
pageviews_2017 |
Nombre de pages vues par heure sur Wikipédia en 2017, partitionné par date. |
pageviews_2018 |
Nombre de pages vues par heure sur Wikipédia en 2018, partitionné par date. |
pageviews_2019 |
Nombre de pages vues par heure sur Wikipédia en 2019, partitionné par date. |
pageviews_2020 |
Nombre de pages vues par heure sur Wikipédia en 2020, partitionné par date. |
pageviews_2021 |
Nombre de pages vues par heure sur Wikipédia en 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 par heure sur Wikipédia en 2023, partitionné par date. |
pageviews_2024 |
Nombre de pages vues par heure sur Wikipédia en 2024, partitionné par date. |
pageviews_2025 |
Nombre de pages vues par heure sur Wikipédia pour 2025, partitionné par date. |
pageviews_2026 |
Nombre de pages vues sur Wikipédia par heure pour 2026, partitionné par date. |
table_activists |
Nombre de pages vues sur Wikipédia pour les articles sur les activistes. |
table_actors |
Nombre de pages vues sur Wikipédia pour les articles sur les acteurs. |
table_alumni |
Nombre de pages vues sur Wikipédia pour les articles sur les anciens élèves. |
table_artists |
Nombre de pages vues sur Wikipédia pour les articles sur les artistes. |
table_athlete |
Nombre de pages vues sur Wikipédia pour les articles sur les athlètes. |
table_bands |
Nombre de pages vues sur Wikipédia pour les articles sur des groupes de musique. |
table_born |
Nombre de pages vues Wikipédia pour les articles classés par année de naissance. |
table_businesspeople |
Nombre de pages vues sur Wikipédia pour les articles sur les hommes et femmes d'affaires. |
table_comedians |
Nombre de pages vues sur Wikipédia pour les articles sur les humoristes. |
table_composers |
Nombre de pages vues sur Wikipédia pour les articles sur les compositeurs. |
table_inventors |
Nombre de pages vues sur Wikipédia pour les articles sur les inventeurs. |
table_politicians |
Nombre de pages vues sur Wikipédia pour les articles sur les personnalités politiques. |
table_scientists |
Nombre de pages vues sur Wikipédia pour les articles sur les scientifiques. |
table_singers |
Nombre de pages vues sur Wikipédia pour les articles sur les chanteurs. |
table_writers |
Nombre de pages vues sur Wikipédia pour les articles sur les écrivains. |
wikidata |
Entités de la base de connaissances Wikidata structurée, y compris les libellés, descriptions, liens annexes et 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 de séries temporelles par code de série d'indicateurs et par année. |
world_bank_wdi
L'espace de noms world_bank_wdi inclut les données des indicateurs du développement dans le monde (IDM) de la Banque mondiale :
| Nom | Description |
|---|---|
country_summary |
Métadonnées des 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 dans le monde par pays et par code d'indicateur. |
series_summary |
Définitions, thèmes et unités de mesure pour les séries d'indicateurs du développement dans le monde. |
biglake-public-nyc-taxi-iceberg catalogue
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 d'enregistrement des trajets de la NYC Taxi and Limousine Commission (TLC). |
nyc_taxicab_2021 |
Données d'enregistrement des trajets de la NYC Taxi and Limousine Commission (TLC) pour 2021. |
Étapes suivantes
- En savoir plus sur les tables Apache Iceberg gérées par Lakehouse
- En savoir plus sur le catalogue REST Iceberg du catalogue d'environnements d'exécution Lakehouse.