Conjuntos de datos públicos de Borderless Lakehouse

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

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

    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.

    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

Antes de conectarte con Apache Spark, debes tener lo siguiente:

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?