Conjuntos de dados públicos do Lakehouse sem fronteiras

O Lakehouse sem fronteiras hospeda conjuntos de dados públicos de alta qualidade fornecidos pelo catálogo REST do Apache Iceberg, disponibilizando-os para o público em geral como parte do Programa de conjuntos de dados públicos doGoogle Cloud .

Esses conjuntos de dados estão disponíveis para acesso somente leitura, e você pode acessá-los e integrá-los aos seus aplicativos usando Apache Spark, Trino, Flink ou BigQuery. O Google paga pelo armazenamento desses conjuntos de dados e oferece acesso público a eles pelo Lakehouse. Você paga apenas pelas consultas realizadas nos dados.

O objetivo desses conjuntos de dados públicos é diminuir a barreira de entrada para o Iceberg. Não é preciso gerenciar infraestrutura para aprender sobre o Iceberg, apenas se conectar. Você pode usar esses conjuntos de dados para:

  • Use o BigQuery (pelo Lakehouse) para consultar essas tabelas diretamente usando SQL, combinando-as com seus dados particulares.
  • Teste as configurações do seu mecanismo de OSS (por exemplo, Spark, Trino ou Flink) em um catálogo REST ativo.

Antes de começar

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

  2. Verify that billing is enabled for your Google Cloud project.

  3. 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 se conectar ao Apache Spark, você precisa ter o seguinte:

Locais de conjuntos de dados públicos

Cada conjunto de dados público é armazenado em um local específico, como US ou EU. Os conjuntos de dados públicos do Lakehouse são armazenados no local multirregional US. Ao consultar um conjunto de dados público, verifique se o local de processamento é compatível com o local do conjunto de dados.

Acessar conjuntos de dados públicos usando o Apache Spark

Como os conjuntos de dados públicos do Lakehouse são veiculados pelo catálogo REST do Iceberg, é possível acessá-los pelo Apache Spark e outros mecanismos compatíveis. É possível se conectar ao conjunto de dados público usando qualquer ambiente padrão do Spark, como no local, o Serviço Gerenciado para Apache Spark ou outros provedores de nuvem.

Conectar-se ao Apache Spark

Use as seguintes flags de configuração ao iniciar a sessão do Spark SQL. Essas flags configuram um catálogo chamado lakehouse-sample que aponta para o endpoint 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://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

Substitua:

Conectar-se com o PySpark e o Serviço Gerenciado para Apache Spark

Também é possível usar um notebook gerenciado e sem servidor do Spark no Serviço Gerenciado para Apache Spark para consultar as tabelas sem criar ou gerenciar um 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)

Substitua:

Exemplo de consultas

Depois de conectado, você terá acesso total em SQL aos conjuntos de dados.

Consultar visualizações de página da Wikipédia e commits do GitHub

Quando conectado ao catálogo lakehouse-public-data em uma sessão do PySpark, você pode consultar as contagens mensais de visualizações da Wikipédia para artigos relacionados ao 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)

Você também pode recuperar commits recentes do GitHub que fazem referência ao 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)

Consultar o conjunto de dados de táxis de Nova York

O conjunto de dados de táxis de Nova York está disponível no catálogo biglake-public-nyc-taxi-iceberg, modelado como uma tabela do Iceberg para demonstrar recursos de particionamento e metadados.

A consulta a seguir agrega milhões de registros para encontrar a tarifa média e a distância da viagem por número de passageiros. Ele demonstra como o Iceberg verifica com eficiência os arquivos de dados sem precisar listar diretórios usando a eliminação de partições:

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;

Um dos recursos mais avançados do Iceberg é a viagem no tempo. É possível consultar a tabela como ela existia em um momento específico no passado. A consulta a seguir permite auditar mudanças comparando a contagem de linhas da versão atual com um snapshot específico:

-- 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;

Ao consultar a tabela de metadados do histórico (por exemplo, SELECT * FROM lakehouse-sample.public_data.nyc_taxicab.history), é possível encontrar IDs de snapshots e voltar para ver como o conjunto de dados cresceu ao longo do tempo.

Para mais informações, consulte Usar o catálogo REST do Iceberg com o Cloud Storage.

Conjuntos de dados disponíveis

O Lakehouse oferece conjuntos de dados públicos e tabelas de amostra que podem ser consultados como tabelas do Apache Iceberg em dois catálogos públicos: lakehouse-public-data e biglake-public-nyc-taxi-iceberg.

Catálogo lakehouse-public-data

O catálogo lakehouse-public-data (gs://lakehouse-public-data) inclui os seguintes namespaces e tabelas no formato Apache Iceberg.

austin_bikeshare

O namespace austin_bikeshare inclui as seguintes tabelas:

Nome Descrição
bikeshare_trips Registros de viagens de bicicletas compartilhadas de Austin, incluindo duração, carimbos de data/hora de início e fim e detalhes da estação.

bls

O namespace bls inclui estatísticas econômicas fornecidas pelo Departamento de Estatísticas Trabalhistas dos EUA:

Nome Descrição
cpi_u Dados da série do Índice de Preços ao Consumidor para Todos os Consumidores Urbanos (CPI-U).
unemployment_cps Estatísticas de desemprego da Pesquisa Populacional Corrente (CPS, na sigla em inglês).

census_bureau_acs

O namespace census_bureau_acs inclui as seguintes tabelas:

Nome Descrição
state_2020_5yr Estimativas de cinco anos do US Census Bureau American Community Survey (ACS) para 2020 no nível estadual.

chicago_taxi_trips

O namespace chicago_taxi_trips inclui as seguintes tabelas:

Nome Descrição
taxi_trips Registros de corridas de táxi de Chicago, incluindo carimbos de data/hora, distância, tarifas e locais de embarque e desembarque.

crypto_ethereum

O namespace crypto_ethereum inclui as seguintes tabelas:

Nome Descrição
transactions Registros de transações da blockchain do Ethereum, incluindo endereços do remetente e do destinatário, valor e métricas de gás.

ga4_obfuscated_sample_ecommerce

O namespace ga4_obfuscated_sample_ecommerce inclui as seguintes tabelas:

Nome Descrição
events_20210131 Dados de eventos ofuscados do Google Analytics 4 que simulam uma implementação de e-commerce na Web em 31 de janeiro de 2021.

geo_openstreetmap

O namespace geo_openstreetmap inclui as seguintes tabelas:

Nome Descrição
planet_features Recursos geográficos globais do OpenStreetMap, incluindo tipos de recursos, tags e geometrias.

geo_us_boundaries

O namespace geo_us_boundaries inclui as seguintes tabelas:

Nome Descrição
zip_codes Limites de CEPs dos EUA, incluindo códigos FIPS de cidade, condado, estado e geometrias geográficas.

github_repos

O namespace github_repos inclui dados de repositórios públicos e de código aberto licenciados no GitHub:

Nome Descrição
commits Commits Git exclusivos de repositórios de código aberto no GitHub, agrupados por repositório.
contents Conteúdo exclusivo de arquivos de texto com menos de 1 MiB na ramificação HEAD.
languages Linguagens de programação por repositório, conforme informado pela API do GitHub.
licenses Código SPDX de licença de código aberto para cada repositório.
sample_commits Exemplo de commits da tabela commits.
sample_contents Subconjunto de 10% amostrado aleatoriamente do conteúdo do arquivo de texto da tabela contents.
sample_files Metadados de arquivos amostrados para arquivos em HEAD dos 400.000 principais repositórios listados em sample_repos.
sample_repos Os 400.000 principais repositórios do GitHub por número de estrelas.

O namespace google_trends inclui as seguintes tabelas:

Nome Descrição
top_terms Os 25 principais termos de pesquisa diários nos Estados Unidos com pontuação, classificação, horário e área designada do mercado (DMA).

imdb

O namespace imdb inclui as seguintes tabelas:

Nome Descrição
title_basics Metadados de títulos do IMDb, incluindo tipo de título, títulos principais e originais, ano de lançamento, duração e gêneros.
title_ratings Médias de avaliação de usuários e contagem de votos do IMDb para títulos.

iowa_liquor_sales

O namespace iowa_liquor_sales inclui as seguintes tabelas:

Nome Descrição
sales Registros de compras de bebidas alcoólicas no atacado no estado de Iowa por varejistas para venda a pessoas físicas desde 2012.

ml_datasets

O namespace ml_datasets inclui tabelas de comparativo de mercado de machine learning:

Nome Descrição
census_adult_income Conjunto de dados de renda de adultos do censo usado para tarefas de classificação que preveem se a renda excede US $50.000 por ano.
penguins Medidas de pinguins do arquipélago de Palmer, incluindo espécie, ilha, dimensões do cúlmen, comprimento da nadadeira e massa corporal.
ulb_fraud_detection Transações anônimas de cartão de crédito feitas por titulares de cartão europeus desde setembro de 2013 para comparativo de mercado de detecção de fraudes.

new_york_citibike

O namespace new_york_citibike inclui as seguintes tabelas:

Nome Descrição
citibike_trips Registros de viagens do Citi Bike na cidade de Nova York, incluindo duração, carimbos de data/hora, locais das estações e informações demográficas dos ciclistas.

new_york_taxi_trips

O namespace new_york_taxi_trips inclui as seguintes tabelas:

Nome Descrição
taxi_zone_geom IDs, nomes, bairros e geometrias de limite das zonas de táxi da Comissão de Táxis e Limusines (TLC, na sigla em inglês) de Nova York.
tlc_green_trips_2022 Registros de corridas de táxi verde da TLC de Nova York em 2022.
tlc_yellow_trips_2022 Registros de corridas de táxi amarelo da TLC de Nova York em 2022.

noaa_gsod

O namespace noaa_gsod inclui dados meteorológicos do Resumo Global da Superfície do Dia (GSOD) da Administração Nacional Oceânica e Atmosférica (NOAA):

Nome Descrição
gsod2023 Observações diárias de resumo do clima da superfície global para 2023.
stations Metadados de estações meteorológicas da NOAA, incluindo identificadores, nomes, países, estados e coordenadas.

sec_quarterly_financials

O namespace sec_quarterly_financials inclui as seguintes tabelas:

Nome Descrição
numbers Dados numéricos de demonstrações financeiras extraídos de documentos trimestrais da Comissão de Valores Mobiliários dos EUA (SEC, na sigla em inglês).

stackoverflow

O namespace stackoverflow inclui as seguintes tabelas:

Nome Descrição
posts_answers Postagens de respostas do Stack Overflow, incluindo texto do corpo, pontuação, data de criação e detalhes do autor.
posts_questions Postagens de perguntas do Stack Overflow, incluindo título, corpo do texto, tags, contagem de visualizações e ID da resposta aceita.
users Perfis de usuário do Stack Overflow, incluindo nome de exibição, reputação, data de criação e contagem de selos.

tpc_ds_1g

O namespace tpc_ds_1g inclui tabelas de comparativo de mercado TPC-DS de 1 GB:

Nome Descrição
date_dim Tabela de dimensão de data do TPC-DS que mapeia datas do calendário para períodos fiscais, trimestres e feriados.
store_sales Tabela de fatos de vendas na loja TPC-DS que registra transações de lojas de varejo.

wikipedia

O namespace wikipedia inclui estatísticas de visualização de página da Wikimedia e entidades do Wikidata:

Nome Descrição
pageviews_2015 Contagens de visualizações de página da Wikipédia por hora em 2015, particionadas por data.
pageviews_2016 Contagens de visualizações de página da Wikipédia por hora em 2016, particionadas por data.
pageviews_2017 Contagens de visualizações de página da Wikipédia por hora em 2017, particionadas por data.
pageviews_2018 Contagens de visualizações de página da Wikipédia por hora para 2018, particionadas por data.
pageviews_2019 Contagens de visualizações de página da Wikipédia por hora em 2019, particionadas por data.
pageviews_2020 Contagens de visualizações de página da Wikipédia por hora em 2020, particionadas por data.
pageviews_2021 Contagens de visualizações de páginas da Wikipédia por hora em 2021, particionadas por data.
pageviews_2022 Contagens de visualizações de página da Wikipédia por hora para 2022, particionadas por data.
pageviews_2023 Contagens de visualizações de página da Wikipédia por hora para 2023, particionadas por data.
pageviews_2024 Contagens horárias de visualizações de páginas da Wikipédia em 2024, particionadas por data.
pageviews_2025 Contagens de visualizações de página da Wikipédia por hora para 2025, particionadas por data.
pageviews_2026 Contagens de visualizações de página da Wikipédia por hora para 2026, particionadas por data.
table_activists Contagens de visualizações de página da Wikipédia para artigos sobre ativistas.
table_actors Contagens de visualizações de página da Wikipédia para artigos sobre atores.
table_alumni Contagens de visualizações de página da Wikipédia para artigos sobre ex-alunos.
table_artists Contagens de visualizações de página da Wikipédia para artigos sobre artistas.
table_athlete Contagens de visualizações de página da Wikipédia para artigos sobre atletas.
table_bands Contagens de visualizações de página da Wikipédia para artigos sobre bandas musicais.
table_born Contagens de visualizações de página da Wikipédia para artigos categorizados por ano de nascimento.
table_businesspeople Contagens de visualizações de página da Wikipédia para artigos sobre empresários.
table_comedians Contagens de visualizações de página da Wikipédia para artigos sobre comediantes.
table_composers Contagem de visualizações de página da Wikipédia para artigos sobre compositores.
table_inventors Contagens de visualizações de página da Wikipédia para artigos sobre inventores.
table_politicians Contagens de visualizações de página da Wikipédia para artigos sobre políticos.
table_scientists Contagens de visualizações de página da Wikipédia para artigos sobre cientistas.
table_singers Contagens de visualizações de página da Wikipédia para artigos sobre cantores.
table_writers Contagens de visualizações de página da Wikipédia para artigos sobre escritores.
wikidata Entidades estruturadas da base de conhecimento do Wikidata, incluindo rótulos, descrições, sitelinks e declarações multilíngues.

world_bank_health_population

O namespace world_bank_health_population inclui estatísticas de saúde, nutrição e população do Banco Mundial:

Nome Descrição
country_series_definitions Definições e metadados que vinculam códigos de país e códigos de séries de indicadores.
country_summary Metadados de país, incluindo nomes abreviados e longos, códigos ISO, unidades monetárias e regiões.
health_nutrition_population Valores anuais de indicadores de saúde, nutrição e população por país.
series_summary Metadados para indicadores de saúde e população, incluindo definições, unidades de medida e periodicidade.
series_times Metadados e descrições de séries temporais por código e ano da série de indicadores.

world_bank_wdi

O namespace world_bank_wdi inclui dados dos Indicadores de Desenvolvimento Mundial (WDI, na sigla em inglês) do Banco Mundial:

Nome Descrição
country_summary Metadados de país, incluindo nomes abreviados e longos, códigos ISO, unidades monetárias e grupos de renda.
indicators_data Valores anuais dos Indicadores de Desenvolvimento Mundial por país e código de indicador.
series_summary Definições, tópicos e unidades de medida para a série de indicadores de desenvolvimento mundial.

Catálogo biglake-public-nyc-taxi-iceberg

O catálogo biglake-public-nyc-taxi-iceberg (gs://biglake-public-nyc-taxi-iceberg) inclui as seguintes tabelas no namespace public_data no formato Apache Iceberg:

Nome Descrição
nyc_taxicab Dados de registro de viagens da Comissão de Táxis e Limusines (TLC, na sigla em inglês) de Nova York.
nyc_taxicab_2021 Dados de registro de viagens da Comissão de Táxis e Limusines de Nova York (TLC) para 2021.

A seguir