Google Cloud Lakehouse héberge des ensembles de données publics de haute qualité diffusés via le catalogue REST Apache Iceberg, ce qui les met à 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, de Trino, de Flink ou de 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 réduire la barrière à l'entrée pour Iceberg. Vous n'avez pas besoin de gérer l'infrastructure pour découvrir Iceberg, il vous suffit de vous connecter. Vous pouvez utiliser ces ensembles de données pour :
- Utiliser BigQuery (via Lakehouse) pour interroger directement ces tables à l'aide de SQL, en les combinant avec vos données privées.
- Tester les configurations de votre moteur OSS (par exemple, Spark, Trino ou Flink) par rapport à un catalogue REST en direct.
Avant de commencer
- Connectez-vous à votre Google Cloud compte. 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.
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.
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
emplacement. 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 à partir d'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 qui pointe 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://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
Remplacez PROJECT_ID par l'ID de votre Google Cloud projet.
Exemples de requêtes
Une fois connecté, vous disposez d'un accès SQL complet aux ensembles de données. L'ensemble de données NYC Taxi est disponible et 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 parcourue par nombre de passagers. Elle montre comment Iceberg analyse efficacement les fichiers de données sans avoir à lister les répertoires à l'aide de 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 d'historique (par exemple, SELECT * FROM
bqms.public_data.nyc_taxicab.history), vous pouvez trouver des ID d'instantanés 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 d'exécution Lakehouse avec Spark, le catalogue REST Iceberg Catalog & Cloud Storage.
Ensembles de données disponibles
Lakehouse fournit des exemples de tables que vous pouvez interroger en tant que tables Lakehouse.
L'ensemble de données biglake-public-nyc-taxi-iceberg inclut les tables suivantes au format Apache Iceberg :
| Nom | Description |
|---|---|
nyc_taxicab |
Données d'enregistrement des courses de la NYC Taxi and Limousine Commission (TLC). |
Étape suivante
- En savoir plus sur les tables Iceberg Lakehouse
- En savoir plus sur le catalogue d'exécution Lakehouse et le catalogue REST Iceberg Catalog.