Lakehouse sin límites aloja conjuntos de datos públicos de alta calidad que se publican a través del catálogo de REST de Apache Iceberg, lo que los pone a disposición del público en general como parte del Google Cloud Programa de conjuntos de datos públicos.
Estos conjuntos de datos están disponibles para el acceso de solo lectura, y puedes acceder a ellos y, además, integrarlos en tus aplicaciones con Apache Spark, Trino, Flink o BigQuery. Google cubre los costos de almacenamiento de estos conjuntos de datos y proporciona acceso público a los datos a través de Lakehouse. Solo se paga por las consultas que realizas en los datos.
El objetivo de estos conjuntos de datos públicos es reducir la barrera de entrada para Iceberg. No necesitas administrar la infraestructura para aprender a usar Iceberg, solo debes conectarte. Puedes usar estos conjuntos de datos para lo siguiente:
- Usar BigQuery (a través de Lakehouse) para consultar estas tablas directamente con SQL y combinarlas con tus datos privados
- Probar las configuraciones de tu motor de OSS (por ejemplo, Spark, Trino o Flink) en un catálogo de REST activo
Antes de comenzar
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
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
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.
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.
Antes de conectarte con Apache Spark, debes tener lo siguiente:
- Credenciales predeterminadas de la aplicación (ADC) configuradas en tu entorno.
Ubicaciones de conjuntos de datos públicos
Cada conjunto de datos públicos se almacena en una ubicación específica, como US o EU. Los conjuntos de datos públicos de
Lakehouse se almacenan en la US ubicación multirregional
. Cuando consultas un conjunto de datos públicos, asegúrate de que la ubicación de procesamiento sea compatible con la ubicación del conjunto de datos.
Accede a conjuntos de datos públicos con Apache Spark
Debido a que los conjuntos de datos públicos de Lakehouse se publican a través del catálogo de REST de Iceberg, puedes acceder a ellos desde Apache Spark y otros motores compatibles. Puedes conectarte al conjunto de datos públicos con cualquier entorno de Spark estándar, como entornos locales, Managed Service para Apache Spark o proveedores de servicios en la nube.
Conéctate con Apache Spark
Usa las siguientes marcas de configuración cuando inicies tu sesión de Spark SQL.
Estas marcas configuran un catálogo llamado lakehouse-sample que apunta al extremo de REST público.
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
Reemplaza PROJECT_ID por el ID del Google Cloud proyecto de.
Consultas de ejemplo
Una vez que te conectes, tendrás acceso completo a SQL a los conjuntos de datos. El conjunto de datos de taxis de la ciudad de Nueva York está disponible y se modela como una tabla de Iceberg para demostrar las capacidades de partición y metadatos.
La siguiente consulta agrega millones de registros para encontrar la tarifa promedio y la distancia del viaje por cantidad de pasajeros. Muestra cómo Iceberg analiza de manera eficiente los archivos de datos sin necesidad de enumerar directorios mediante la eliminación de particiones:
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;
Una de las funciones más potentes de Iceberg es Time Travel. Puedes consultar la tabla tal como existía en un momento específico del pasado. La siguiente consulta te permite auditar los cambios comparando el recuento de filas de la versión actual con una instantánea específica:
-- 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;
Si consultas la tabla de metadatos del historial (por ejemplo, SELECT * FROM
lakehouse-sample.public_data.nyc_taxicab.history), puedes encontrar IDs de instantáneas y volver
atrás para ver cómo creció el conjunto de datos con el tiempo.
Para obtener más información, consulta Cómo usar el catálogo de entorno de ejecución de Lakehouse con Spark, el catálogo de REST de Iceberg y Cloud Storage.
Conjuntos de datos disponibles
Lakehouse proporciona tablas de muestra que puedes consultar como tablas de Apache Iceberg.
El conjunto de datos biglake-public-nyc-taxi-iceberg incluye las siguientes tablas en formato Apache Iceberg:
| Nombre | Descripción |
|---|---|
nyc_taxicab |
Datos de registro de viajes de la Comisión de Taxis y Limusinas (TLC) de la ciudad de Nueva York |
¿Qué sigue?
- Obtén más información sobre las tablas de Apache Iceberg administradas por Lakehouse.
- Obtén más información sobre el catálogo de entorno de ejecución de Lakehouse y el catálogo de REST de Iceberg Catalog.