無邊界湖倉可讓您查詢透過 Apache Iceberg REST 目錄端點提供的唯讀公開資料集,這是 Google Cloud 公開資料集計畫的一部分。您可以連結 BigQuery、Managed Service for Apache Spark、Trino 或 Apache Flink,將這些資料表與私人資料合併,或針對實際運作的 Apache Iceberg REST 目錄端點測試開放原始碼引擎設定,不必管理儲存空間基礎架構。
Google 支付這些資料集的儲存費用,並透過 Lakehouse 提供資料的公開存取權。您只需為對資料執行的查詢付費。
事前準備
- 登入 Google Cloud 帳戶。如果您未曾使用過 Google Cloud,歡迎 建立帳戶,親自體驗實際使用我們產品的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。
-
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.
連結 Apache Spark 前,請先備妥下列項目:
- 在環境中設定應用程式預設憑證 (ADC)。
公開資料集位置
每個公開資料集都會儲存在特定位置,例如 US 或 EU。Lakehouse 公開資料集儲存在 US 多區域位置。查詢公開資料集時,請確保處理位置與資料集位置相容。
使用 Apache Spark 存取公開資料集
Lakehouse 公開資料集是透過 Iceberg REST 目錄提供,因此您可以從 Apache Spark 和其他相容引擎存取這些資料集。您可以使用任何標準 Spark 環境 (例如地端部署、Managed Service for Apache Spark 或其他雲端供應商) 連線至公開資料集。
與 Apache Spark 連結
啟動 Spark SQL 工作階段時,請使用下列設定旗標。這些旗標會設定名為 lakehouse-sample 的目錄,指向公開 REST 端點:
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
更改下列內容:
CATALOG_NAME:公開資料集目錄名稱,例如lakehouse-public-data或biglake-public-nyc-taxi-iceberg。PROJECT_ID:您的 Google Cloud 專案 ID。
透過 PySpark 和 Managed Service for Apache Spark 連結
您也可以在 Managed Service for Apache Spark 中,使用代管的無伺服器 Spark 筆記本查詢資料表,不必建立或管理叢集:
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)
更改下列內容:
PROJECT_ID:您的 Google Cloud 專案 ID。CATALOG_NAME:公開資料集目錄名稱,例如lakehouse-public-data或biglake-public-nyc-taxi-iceberg。
查詢範例
連線後,您就能透過 SQL 完整存取資料集。
查詢維基百科網頁瀏覽量和 GitHub 修訂版本
在 PySpark 工作階段中連線至 lakehouse-public-data 目錄時,您可以查詢 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)
您也可以擷取參照 Iceberg 的近期 GitHub 修訂版本:
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)
查詢紐約市計程車資料集
biglake-public-nyc-taxi-iceberg 目錄中提供紐約市計程車資料集,並以 Iceberg 資料表的形式呈現,用於示範分區和中繼資料功能。
下列查詢會匯總數百萬筆記錄,依乘客數量找出平均車資和行程距離。這項功能示範 Iceberg 如何使用分區剪枝功能,有效率地掃描資料檔案,而不必列出目錄:
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;
Iceberg 最強大的功能之一是時間旅行。您可以查詢資料表在過去特定時間點的狀態。下列查詢可讓您比較目前版本與特定快照的資料列數量,藉此稽核變更:
-- 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;
查詢歷來中繼資料表 (例如 SELECT * FROM
lakehouse-sample.public_data.nyc_taxicab.history),即可找出快照 ID,並回溯查看資料集隨時間成長的情況。
詳情請參閱「使用 Lakehouse 查詢 Apache Iceberg 資料表」。
可用的資料集
Lakehouse 提供公開資料集和範例資料表,您可以在 lakehouse-public-data 和 biglake-public-nyc-taxi-iceberg 這兩個公開目錄中,以 Apache Iceberg 資料表的形式查詢這些資料。
lakehouse-public-data 目錄
lakehouse-public-data 目錄 (gs://lakehouse-public-data) 包含下列 Apache Iceberg 格式的命名空間和資料表。
austin_bikeshare
austin_bikeshare 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
bikeshare_trips |
奧斯丁共享單車行程記錄,包括行程時間長度、開始和結束時間戳記,以及車站詳細資料。 |
bls
bls 命名空間包含美國勞工統計局提供的經濟統計資料:
| 名稱 | 說明 |
|---|---|
cpi_u |
所有都市消費者物價指數 (CPI-U) 系列資料。 |
unemployment_cps |
Current Population Survey (CPS) 失業統計資料。 |
census_bureau_acs
census_bureau_acs 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
state_2020_5yr |
美國人口普查局美國社區調查 (ACS) 2020 年 5 年州級預估值。 |
chicago_taxi_trips
chicago_taxi_trips 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
taxi_trips |
芝加哥計程車行程記錄,包括行程時間戳記、距離、車資,以及上車和下車地點。 |
crypto_ethereum
crypto_ethereum 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
transactions |
以太坊區塊鏈交易記錄,包括寄件者和收件者地址、價值和 gas 指標。 |
ga4_obfuscated_sample_ecommerce
ga4_obfuscated_sample_ecommerce 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
events_20210131 |
2021 年 1 月 31 日模擬網站電子商務導入作業的模糊處理 Google Analytics 4 事件資料。 |
geo_openstreetmap
geo_openstreetmap 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
planet_features |
OpenStreetMap 全球地貌,包括地貌類型、標記和幾何圖形。 |
geo_us_boundaries
geo_us_boundaries 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
zip_codes |
美國郵遞區號界線,包括城市、郡、州 FIPS 代碼和地理幾何圖形。 |
github_repos
github_repos 命名空間包含 GitHub 上公開、開放原始碼授權存放區的資料:
| 名稱 | 說明 |
|---|---|
commits |
GitHub 開放原始碼存放區中的不重複 Git 修訂版本,依存放區分組。 |
contents |
HEAD 分支版本中,1 MiB 以下文字檔案的專屬檔案內容。 |
languages |
GitHub API 回報的各存放區程式語言。 |
licenses |
每個存放區的開放原始碼授權 SPDX 代碼。 |
sample_commits |
commits 資料表的修訂版本範例。 |
sample_contents |
從 contents 資料表隨機抽樣 10% 的文字檔案內容。 |
sample_files |
HEAD 檔案的取樣檔案中繼資料,來自 sample_repos 中列出的前 400,000 個存放區。 |
sample_repos |
星號數量前 400,000 名的 GitHub 存放區。 |
google_trends
google_trends 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
top_terms |
美國每日熱門搜尋字詞前 25 名,並列出對應的分數、排名、時間和指定行銷區域 (DMA)。 |
imdb
imdb 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
title_basics |
IMDb 影視作品中繼資料,包括影視作品類型、主要和原始名稱、上映年份、片長和類型。 |
title_ratings |
IMDb 使用者平均評分和投票數。 |
iowa_liquor_sales
iowa_liquor_sales 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
sales |
2012 年起,愛荷華州零售商向個人銷售酒類的批發購買記錄。 |
ml_datasets
ml_datasets 命名空間包含機器學習基準測試資料表:
| 名稱 | 說明 |
|---|---|
census_adult_income |
人口普查成人收入資料集,用於分類任務,預測收入是否超過每年 $50,000 美元。 |
penguins |
帕爾默群島企鵝測量資料,包括物種、島嶼、嘴峰尺寸、鰭肢長度和體重。 |
ulb_fraud_detection |
2013 年 9 月歐洲持卡人的匿名信用卡交易資料,用於詐欺偵測基準測試。 |
new_york_citibike
new_york_citibike 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
citibike_trips |
紐約市 Citi Bike 行程記錄,包括行程時間、時間戳記、車站位置和騎士客層。 |
new_york_taxi_trips
new_york_taxi_trips 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
taxi_zone_geom |
紐約市計程車暨禮車管理局 (TLC) 計程車區域 ID、名稱、行政區和邊界幾何圖形。 |
tlc_green_trips_2022 |
2022 年紐約市計程車暨轎車管理局 (TLC) 綠色計程車行程記錄。 |
tlc_yellow_trips_2022 |
2022 年紐約市計程車暨轎車管理局 (TLC) 黃色計程車行程記錄。 |
noaa_gsod
noaa_gsod 命名空間包含美國國家海洋暨大氣總署 (NOAA) 的每日全球地表摘要 (GSOD) 天氣資料:
| 名稱 | 說明 |
|---|---|
gsod2023 |
2023 年每日全球地表天氣摘要觀測資料。 |
stations |
NOAA 氣象站中繼資料,包括氣象站 ID、名稱、國家/地區、州/省和座標。 |
sec_quarterly_financials
sec_quarterly_financials 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
numbers |
從美國證券交易委員會 (SEC) 季度申報資料中擷取的數字財務報表資料。 |
stackoverflow
stackoverflow 命名空間包含下列資料表:
| 名稱 | 說明 |
|---|---|
posts_answers |
Stack Overflow 回答貼文,包括內文、分數、建立日期和作者詳細資料。 |
posts_questions |
Stack Overflow 問題貼文,包括標題、內文、標記、觀看次數和接受的答案 ID。 |
users |
Stack Overflow 使用者個人資料,包括顯示名稱、信譽、建立日期和徽章數量。 |
tpc_ds_1g
tpc_ds_1g 命名空間包含 TPC-DS 1 GB 基準測試資料表:
| 名稱 | 說明 |
|---|---|
date_dim |
TPC-DS 日期維度資料表,可將日曆日期對應至會計期間、季度和節日。 |
store_sales |
TPC-DS 商店銷售事實資料表,記錄零售商店交易。 |
wikipedia
wikipedia 命名空間包含維基媒體網頁瀏覽統計資料和維基數據實體:
| 名稱 | 說明 |
|---|---|
pageviews_2015 |
2015 年每小時 Wikipedia 網頁瀏覽次數,依日期分區。 |
pageviews_2016 |
2016 年每小時維基百科網頁瀏覽次數,依日期分區。 |
pageviews_2017 |
2017 年每小時維基百科網頁瀏覽次數,依日期分區。 |
pageviews_2018 |
2018 年每小時維基百科網頁瀏覽次數,依日期分區。 |
pageviews_2019 |
2019 年每小時維基百科網頁瀏覽次數,依日期分區。 |
pageviews_2020 |
2020 年每小時維基百科網頁瀏覽次數,依日期分區。 |
pageviews_2021 |
2021 年維基百科每小時網頁瀏覽次數,依日期分區。 |
pageviews_2022 |
2022 年每小時 Wikipedia 網頁瀏覽次數,依日期分區。 |
pageviews_2023 |
2023 年每小時維基百科網頁瀏覽次數,依日期分區。 |
pageviews_2024 |
2024 年維基百科網頁每小時瀏覽次數,依日期分區。 |
pageviews_2025 |
2025 年每小時維基百科網頁瀏覽次數,依日期分區。 |
pageviews_2026 |
2026 年維基百科網頁每小時瀏覽次數,依日期分區。 |
table_activists |
社運人士相關維基百科文章的瀏覽次數。 |
table_actors |
演員相關維基百科文章的網頁瀏覽次數。 |
table_alumni |
校友相關維基百科文章的網頁瀏覽次數。 |
table_artists |
藝人維基百科文章的網頁瀏覽次數。 |
table_athlete |
運動員相關維基百科文章的網頁瀏覽次數。 |
table_bands |
樂團相關文章的維基百科網頁瀏覽次數。 |
table_born |
維基百科文章的網頁瀏覽次數,依出生年份分類。 |
table_businesspeople |
維基百科上關於商務人士的文章網頁瀏覽次數。 |
table_comedians |
喜劇演員維基百科文章的瀏覽次數。 |
table_composers |
作曲家相關維基百科文章的網頁瀏覽次數。 |
table_inventors |
發明家相關維基百科文章的網頁瀏覽次數。 |
table_politicians |
政治人物相關維基百科文章的網頁瀏覽次數。 |
table_scientists |
科學家相關維基百科文章的網頁瀏覽次數。 |
table_singers |
歌手相關維基百科文章的網頁瀏覽次數。 |
table_writers |
作家相關維基百科文章的網頁瀏覽次數。 |
wikidata |
結構化維基數據知識庫實體,包括多語言標籤、說明、網站連結和聲明。 |
world_bank_health_population
world_bank_health_population 命名空間包含世界銀行健康、營養和人口統計資料:
| 名稱 | 說明 |
|---|---|
country_series_definitions |
連結國家/地區代碼和指標系列代碼的定義和中繼資料。 |
country_summary |
國家/地區中繼資料,包括簡稱和全名、ISO 代碼、貨幣單位和區域。 |
health_nutrition_population |
各國家/地區的年度健康、營養和人口指標值。 |
series_summary |
健康和人口指標的中繼資料,包括定義、測量單位和週期。 |
series_times |
依指標序列代碼和年份列出的時間序列中繼資料和說明。 |
world_bank_wdi
world_bank_wdi 命名空間包含世界銀行世界發展指標 (WDI) 資料:
| 名稱 | 說明 |
|---|---|
country_summary |
國家/地區中繼資料,包括簡稱和全名、ISO 代碼、貨幣單位和收入群組。 |
indicators_data |
依國家/地區和指標代碼列出的年度世界發展指標值。 |
series_summary |
世界發展指標系列的定義、主題和測量單位。 |
biglake-public-nyc-taxi-iceberg 目錄
biglake-public-nyc-taxi-iceberg 目錄 (gs://biglake-public-nyc-taxi-iceberg) 包含 public_data 命名空間中的下列 Apache Iceberg 格式資料表:
| 名稱 | 說明 |
|---|---|
nyc_taxicab |
紐約市計程車暨禮車管理局 (TLC) 行程記錄資料。 |
nyc_taxicab_2021 |
2021 年紐約市計程車暨禮車管理局 (TLC) 行程記錄資料。 |