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
-
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, if it is not already enabled.
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 se conectar ao Apache Spark, você precisa ter o seguinte:
- Application Default Credentials (ADC) configuradas no seu ambiente.
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:
CATALOG_NAME: o nome do catálogo de conjuntos de dados públicos, comolakehouse-public-dataoubiglake-public-nyc-taxi-iceberg.PROJECT_ID: o ID do projeto Google Cloud .
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:
PROJECT_ID: o ID do projeto Google Cloud .CATALOG_NAME: o nome do catálogo de conjuntos de dados públicos, comolakehouse-public-dataoubiglake-public-nyc-taxi-iceberg.
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. |
google_trends
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
- Saiba mais sobre as tabelas do Apache Iceberg gerenciadas pelo Lakehouse.
- Saiba mais sobre o catálogo REST do Iceberg do catálogo de ambientes de execução do Lakehouse.