Conjuntos de datos públicos de Borderless Lakehouse

Borderless Lakehouse 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 acceso de solo lectura, y puedes acceder a ellos e integrarlos en tus aplicaciones con Apache Spark, Trino, Flink o BigQuery. Google paga por el 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, sino que debes conectarte. Puedes usar estos conjuntos de datos para lo siguiente:

  • Usa BigQuery (a través de Lakehouse) para consultar estas tablas directamente con SQL y combinarlas con tus datos privados.
  • Prueba la configuración 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 cuenta de Google Cloud . 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, if it is not already enabled.

    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, if it is not already enabled.

    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 ubicación multirregión US. Cuando consultes un conjunto de datos públicos, asegúrate de que tu ubicación de procesamiento sea compatible con la ubicación del conjunto de datos.

Accede a conjuntos de datos públicos con Apache Spark

Dado 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 estándar de Spark, como los entornos locales, Managed Service para Apache Spark o los de otros 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. Estos parámetros de 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 proyecto de Google Cloud .

Consultas de ejemplo

Una vez que te conectes, tendrás acceso completo a los conjuntos de datos a través de SQL. El conjunto de datos de taxis de Nueva York está disponible y se modeló 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 reducció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 Usa el catálogo de REST de Iceberg con 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 registros de viajes de la Comisión de Taxis y Limusinas (TLC) de Nueva York.

¿Qué sigue?