Borderless Lakehouse ti consente di eseguire query su set di dati pubblici di sola lettura forniti tramite l'endpoint del catalogo REST Apache Iceberg nell'ambito del programma di set di dati pubbliciGoogle Cloud . Puoi connettere BigQuery, Managed Service for Apache Spark, Trino o Apache Flink per combinare queste tabelle con i tuoi dati privati o testare le configurazioni del motore open source con un endpoint del catalogo REST Apache Iceberg attivo senza gestire l'infrastruttura di archiviazione.
Google paga per l'archiviazione di questi set di dati e fornisce l'accesso pubblico ai dati tramite Lakehouse. Paghi solo per le query che esegui sui dati.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
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.-
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.
Prima di connetterti ad Apache Spark, devi disporre di quanto segue:
- Credenziali predefinite dell'applicazione (ADC) configurate nel tuo ambiente.
Località dei set di dati pubblici
Ogni set di dati pubblico è archiviato in una località specifica, ad esempio US o EU. I set di dati pubblici di Lakehouse sono archiviati nella località multiregionale US. Quando esegui una query su un set di dati pubblico, assicurati che la località di elaborazione sia compatibile con quella del set di dati.
Accedi ai set di dati pubblici utilizzando Apache Spark
Poiché i set di dati pubblici di Lakehouse vengono forniti tramite il catalogo REST Iceberg, puoi accedervi da Apache Spark e da altri motori compatibili. Puoi connetterti al set di dati pubblico utilizzando qualsiasi ambiente Spark standard, ad esempio on-premise, Managed Service for Apache Spark o altri fornitori cloud.
Connettiti con Apache Spark
Utilizza i seguenti flag di configurazione quando avvii la sessione Spark SQL.
Questi flag configurano un catalogo denominato lakehouse-sample che punta all'endpoint REST pubblico:
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
Sostituisci quanto segue:
CATALOG_NAME: il nome del catalogo di set di dati pubblici, ad esempiolakehouse-public-dataobiglake-public-nyc-taxi-iceberg.PROJECT_ID: il tuo ID progetto Google Cloud .
Connettiti con PySpark e Managed Service for Apache Spark
Puoi anche utilizzare un notebook Spark serverless gestito in Managed Service for Apache Spark per eseguire query sulle tabelle senza creare o gestire un 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)
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto Google Cloud .CATALOG_NAME: il nome del catalogo di set di dati pubblici, ad esempiolakehouse-public-dataobiglake-public-nyc-taxi-iceberg.
Esempi di query
Una volta stabilita la connessione, avrai accesso SQL completo ai set di dati.
Esegui query sulle visualizzazioni di pagina di Wikipedia e sui commit di GitHub
Quando ti connetti al catalogo lakehouse-public-data in una sessione PySpark, puoi eseguire query sui numeri di visualizzazioni mensili di Wikipedia per gli articoli correlati a 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)
Puoi anche recuperare i commit GitHub recenti che fanno riferimento a 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)
Esegui una query sul set di dati NYC Taxi
Il set di dati NYC Taxi è disponibile nel catalogo biglake-public-nyc-taxi-iceberg, modellato come tabella Iceberg per dimostrare le funzionalità di partizionamento e metadati.
La seguente query aggrega milioni di record per trovare la tariffa media e la distanza del percorso in base al numero di passeggeri. Mostra come Iceberg esegue in modo efficiente la scansione dei file di dati senza dover elencare le directory utilizzando la potatura delle partizioni:
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 delle funzionalità più potenti di Iceberg è il viaggio nel tempo. Puoi eseguire query sulla tabella così come esisteva in un momento specifico del passato. La seguente query ti consente di controllare le modifiche confrontando il numero di righe della versione corrente con uno snapshot specifico:
-- 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;
Eseguendo una query sulla tabella dei metadati della cronologia (ad esempio SELECT * FROM
lakehouse-sample.public_data.nyc_taxicab.history), puoi trovare gli ID degli snapshot e tornare indietro nel tempo per vedere come è cresciuto il set di dati nel tempo.
Per saperne di più, consulta Esegui query sulle tabelle Apache Iceberg con Lakehouse.
Set di dati disponibili
Lakehouse fornisce set di dati pubblici e tabelle di esempio che puoi
eseguire query come tabelle Apache Iceberg in due cataloghi pubblici:
lakehouse-public-data e biglake-public-nyc-taxi-iceberg.
Catalogo lakehouse-public-data
Il catalogo lakehouse-public-data (gs://lakehouse-public-data) include i seguenti spazi dei nomi e le seguenti tabelle nel formato Apache Iceberg.
austin_bikeshare
Lo spazio dei nomi austin_bikeshare include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
bikeshare_trips |
Record dei percorsi di Austin Bikeshare, tra cui durata del percorso, timestamp di inizio e fine e dettagli della stazione. |
bls
Lo spazio dei nomi bls include statistiche economiche fornite dallo US Bureau of Labor Statistics:
| Nome | Descrizione |
|---|---|
cpi_u |
Dati della serie dell'Indice dei prezzi al consumo per tutti i consumatori urbani (CPI-U). |
unemployment_cps |
Statistiche sulla disoccupazione del Current Population Survey (CPS). |
census_bureau_acs
Lo spazio dei nomi census_bureau_acs include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
state_2020_5yr |
Stime a livello statale per 5 anni dell'American Community Survey (ACS) dello US Census Bureau per il 2020. |
chicago_taxi_trips
Lo spazio dei nomi chicago_taxi_trips include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
taxi_trips |
Record delle corse in taxi a Chicago, inclusi timestamp, distanza, tariffe e luoghi di partenza e arrivo delle corse. |
crypto_ethereum
Lo spazio dei nomi crypto_ethereum include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
transactions |
Record delle transazioni della blockchain di Ethereum, inclusi indirizzi di mittente e destinatario, valore e metriche del gas. |
ga4_obfuscated_sample_ecommerce
Lo spazio dei nomi ga4_obfuscated_sample_ecommerce include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
events_20210131 |
Dati sugli eventi di Google Analytics 4 offuscati che emulano un'implementazione di e-commerce web per il 31 gennaio 2021. |
geo_openstreetmap
Lo spazio dei nomi geo_openstreetmap include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
planet_features |
Elementi geografici globali di OpenStreetMap, inclusi tipi di elementi, tag e geometrie. |
geo_us_boundaries
Lo spazio dei nomi geo_us_boundaries include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
zip_codes |
Confini dei codici postali degli Stati Uniti, inclusi città, contea, codici FIPS statali e geometrie geografiche. |
github_repos
Lo spazio dei nomi github_repos include i dati dei repository pubblici con licenza open source su GitHub:
| Nome | Descrizione |
|---|---|
commits |
Commit Git univoci da repository open source su GitHub, raggruppati per repository. |
contents |
Contenuti univoci dei file di testo di dimensioni inferiori a 1 MiB nel branch HEAD. |
languages |
Linguaggi di programmazione per repository, come riportato dall'API GitHub. |
licenses |
Codice SPDX della licenza open source per ogni repository. |
sample_commits |
Esempio di commit dalla tabella commits. |
sample_contents |
Sottoinsieme campionato in modo casuale del 10% dei contenuti dei file di testo della tabella contents. |
sample_files |
Metadati dei file campionati per i file in HEAD dai primi 400.000 repository elencati in sample_repos. |
sample_repos |
I 400.000 repository GitHub principali per numero di stelle. |
google_trends
Lo spazio dei nomi google_trends include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
top_terms |
I 25 termini di ricerca più utilizzati ogni giorno negli Stati Uniti con punteggio, ranking, ora e Designated Market Area (DMA). |
imdb
Lo spazio dei nomi imdb include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
title_basics |
Metadati dei titoli IMDb, inclusi tipo di titolo, titoli principali e originali, anno di uscita, durata e generi. |
title_ratings |
Medie delle valutazioni degli utenti di IMDb e numero di voti per i titoli. |
iowa_liquor_sales
Lo spazio dei nomi iowa_liquor_sales include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
sales |
Registri degli acquisti di liquori all'ingrosso nello stato dell'Iowa da parte dei rivenditori per la vendita a privati dal 2012. |
ml_datasets
Lo spazio dei nomi ml_datasets include tabelle di benchmark di machine learning:
| Nome | Descrizione |
|---|---|
census_adult_income |
Set di dati sul reddito degli adulti del censimento utilizzato per le attività di classificazione che prevedono se il reddito supera i 50.000 $all'anno. |
penguins |
Misurazioni dei pinguini dell'arcipelago di Palmer, tra cui specie, isola, dimensioni del culmen, lunghezza delle pinne e massa corporea. |
ulb_fraud_detection |
Transazioni con carta di credito anonimizzate da titolari di carte europei da settembre 2013 per il benchmarking del rilevamento delle frodi. |
new_york_citibike
Lo spazio dei nomi new_york_citibike include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
citibike_trips |
Record delle corse di Citi Bike di New York City, tra cui durata della corsa, timestamp, posizioni delle stazioni e dati demografici dei ciclisti. |
new_york_taxi_trips
Lo spazio dei nomi new_york_taxi_trips include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
taxi_zone_geom |
ID, nomi, quartieri e geometrie dei confini delle zone dei taxi della NYC Taxi and Limousine Commission (TLC). |
tlc_green_trips_2022 |
Record delle corse dei taxi verdi della NYC TLC per il 2022. |
tlc_yellow_trips_2022 |
Record delle corse dei taxi gialli della NYC TLC per il 2022. |
noaa_gsod
Lo spazio dei nomi noaa_gsod include i dati meteo del Global Surface Summary of the Day (GSOD) della National Oceanic and Atmospheric Administration (NOAA):
| Nome | Descrizione |
|---|---|
gsod2023 |
Osservazioni di riepilogo giornaliere del meteo di superficie globale per il 2023. |
stations |
Metadati delle stazioni meteo NOAA, inclusi identificatori, nomi, paesi, stati e coordinate delle stazioni. |
sec_quarterly_financials
Lo spazio dei nomi sec_quarterly_financials include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
numbers |
Dati numerici dei rendiconti finanziari estratti dalle dichiarazioni trimestrali della Securities and Exchange Commission (SEC) degli Stati Uniti. |
stackoverflow
Lo spazio dei nomi stackoverflow include le seguenti tabelle:
| Nome | Descrizione |
|---|---|
posts_answers |
Post di risposta di Stack Overflow, inclusi testo del corpo, punteggio, data di creazione e dettagli dell'autore. |
posts_questions |
Post di domande di Stack Overflow, inclusi titolo, testo del corpo, tag, numero di visualizzazioni e ID della risposta accettata. |
users |
Profili utente di Stack Overflow, inclusi nome visualizzato, reputazione, data di creazione e numero di badge. |
tpc_ds_1g
Lo spazio dei nomi tpc_ds_1g include le tabelle di benchmark TPC-DS da 1 GB:
| Nome | Descrizione |
|---|---|
date_dim |
Tabella delle dimensioni delle date TPC-DS che mappa le date del calendario a periodi fiscali, trimestri e festività. |
store_sales |
Tabella dei fatti delle vendite in negozio TPC-DS che registra le transazioni in negozio. |
wikipedia
Lo spazio dei nomi wikipedia include le statistiche sulle visualizzazioni di pagina di Wikimedia e le entità Wikidata:
| Nome | Descrizione |
|---|---|
pageviews_2015 |
Conteggi delle visualizzazioni di pagina di Wikipedia su base oraria per il 2015, partizionati per data. |
pageviews_2016 |
Conteggi delle visualizzazioni di pagina di Wikipedia per ora per il 2016, partizionati per data. |
pageviews_2017 |
Conteggi delle visualizzazioni di pagina di Wikipedia per ora per il 2017, partizionati per data. |
pageviews_2018 |
Conteggi delle visualizzazioni di pagina di Wikipedia per ora per il 2018, partizionati per data. |
pageviews_2019 |
Conteggi delle visualizzazioni di pagina di Wikipedia su base oraria per il 2019, partizionati per data. |
pageviews_2020 |
Conteggi delle visualizzazioni di pagina di Wikipedia su base oraria per il 2020, partizionati per data. |
pageviews_2021 |
Conteggi delle visualizzazioni di pagina di Wikipedia su base oraria per il 2021, partizionati per data. |
pageviews_2022 |
Conteggi delle visualizzazioni di pagina di Wikipedia per ora per il 2022, partizionati per data. |
pageviews_2023 |
Conteggi delle visualizzazioni di pagina di Wikipedia su base oraria per il 2023, partizionati per data. |
pageviews_2024 |
Conteggi delle visualizzazioni di pagina di Wikipedia su base oraria per il 2024, partizionati per data. |
pageviews_2025 |
Conteggi delle visualizzazioni di pagina di Wikipedia su base oraria per il 2025, partizionati per data. |
pageviews_2026 |
Conteggi delle visualizzazioni di pagina di Wikipedia su base oraria per il 2026, partizionati per data. |
table_activists |
Conteggi delle visualizzazioni di pagina di Wikipedia per gli articoli sugli attivisti. |
table_actors |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli sugli attori. |
table_alumni |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli sugli ex studenti. |
table_artists |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli sugli artisti. |
table_athlete |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli sugli atleti. |
table_bands |
Conteggi delle visualizzazioni di pagina di Wikipedia per articoli su gruppi musicali. |
table_born |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli classificati in base all'anno di nascita. |
table_businesspeople |
Numero di visualizzazioni di pagina di Wikipedia per articoli su imprenditori. |
table_comedians |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli sui comici. |
table_composers |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli sui compositori. |
table_inventors |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli sugli inventori. |
table_politicians |
Numero di visualizzazioni di pagina di Wikipedia per articoli su politici. |
table_scientists |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli sugli scienziati. |
table_singers |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli sui cantanti. |
table_writers |
Numero di visualizzazioni di pagina di Wikipedia per gli articoli sugli scrittori. |
wikidata |
Entità della knowledge base strutturata di Wikidata, tra cui etichette, descrizioni, sitelink e dichiarazioni multilingue. |
world_bank_health_population
Lo spazio dei nomi world_bank_health_population include statistiche della Banca Mondiale su salute, nutrizione e popolazione:
| Nome | Descrizione |
|---|---|
country_series_definitions |
Definizioni e metadati che collegano i codici paese e i codici delle serie di indicatori. |
country_summary |
Metadati dei paesi, inclusi nomi brevi e lunghi, codici ISO, unità di valuta e regioni. |
health_nutrition_population |
Valori annuali degli indicatori di salute, nutrizione e popolazione per paese. |
series_summary |
Metadati per gli indicatori di salute e popolazione, tra cui definizioni, unità di misura e periodicità. |
series_times |
Metadati e descrizioni delle serie temporali per codice e anno della serie di indicatori. |
world_bank_wdi
Lo spazio dei nomi world_bank_wdi include i dati degli Indicatori dello sviluppo mondiale (ISM) della Banca Mondiale:
| Nome | Descrizione |
|---|---|
country_summary |
Metadati dei paesi, inclusi nomi brevi e lunghi, codici ISO, unità di valuta e gruppi di reddito. |
indicators_data |
Valori annuali degli Indicatori dello sviluppo mondiale per paese e codice indicatore. |
series_summary |
Definizioni, argomenti e unità di misura per le serie di Indicatori dello sviluppo mondiale. |
Catalogo biglake-public-nyc-taxi-iceberg
Il catalogo biglake-public-nyc-taxi-iceberg (gs://biglake-public-nyc-taxi-iceberg) include le seguenti tabelle nello spazio dei nomi public_data in formato Apache Iceberg:
| Nome | Descrizione |
|---|---|
nyc_taxicab |
Dati dei record delle corse della NYC Taxi and Limousine Commission (TLC). |
nyc_taxicab_2021 |
Dati dei record delle corse della NYC Taxi and Limousine Commission (TLC) per il 2021. |
Passaggi successivi
- Scopri di più sulle tabelle Apache Iceberg gestite da Lakehouse.
- Scopri di più sul catalogo REST Iceberg del catalogo di runtime Lakehouse.