ボーダーレス Lakehouse を使用すると、Google Cloud 公開データセット プログラムの一環として、Apache Iceberg REST カタログ エンドポイントを介して提供される読み取り専用の公開データセットをクエリできます。BigQuery、Managed Service for Apache Spark、Trino、Apache Flink を接続して、これらのテーブルをプライベート データと組み合わせたり、ストレージ インフラストラクチャを管理することなく、ライブ Apache Iceberg REST カタログ エンドポイントに対してオープンソース エンジンの構成をテストしたりできます。
Google では、これらのデータセットの保存費用を負担しており、Lakehouse を介してデータへの公開アクセスを提供しています。データで実行したクエリにのみ料金が発生します。
始める前に
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $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 Catalog を介して提供されるため、Apache Spark やその他の互換性のあるエンジンからアクセスできます。オンプレミス、Managed Service for Apache Spark、他のクラウド ベンダーなど、標準の Spark 環境を使用して一般公開データセットに接続できます。
Apache Spark に接続する
Spark SQL セッションを開始するときに、次の構成フラグを使用します。これらのフラグは、公開 REST エンドポイントを指す lakehouse-sample という名前のカタログを構成します。
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 アクセス権が付与されます。
Wikipedia のページビューと GitHub の commit をクエリする
PySpark セッションで lakehouse-public-data カタログに接続すると、BigQuery 関連の記事の月間 Wikipedia 視聴回数をクエリできます。
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 commit を取得することもできます。
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)
NYC Taxi データセットに対してクエリを実行する
NYC Taxi データセットは 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 の 2 つの一般公開カタログに Apache Iceberg テーブルとしてクエリできる一般公開データセットとサンプル テーブルが用意されています。
lakehouse-public-data カタログ
lakehouse-public-data カタログ(gs://lakehouse-public-data)には、Apache Iceberg 形式の次の名前空間とテーブルが含まれています。
austin_bikeshare
austin_bikeshare 名前空間には、次のテーブルが含まれています。
| 名前 | 説明 |
|---|---|
bikeshare_trips |
Austin Bikeshare の乗車記録(乗車時間、開始と終了のタイムスタンプ、ステーションの詳細など)。 |
bls
bls 名前空間には、米国労働統計局が提供する経済統計が含まれています。
| 名前 | 説明 |
|---|---|
cpi_u |
すべての都市消費者向けの消費者物価指数(CPI-U)シリーズのデータ。 |
unemployment_cps |
Current Population Survey(CPS)の失業統計。 |
census_bureau_acs
census_bureau_acs 名前空間には、次のテーブルが含まれています。
| 名前 | 説明 |
|---|---|
state_2020_5yr |
米国国勢調査局の American Community Survey(ACS)による 2020 年の州レベルの 5 年間の推定値。 |
chicago_taxi_trips
chicago_taxi_trips 名前空間には、次のテーブルが含まれています。
| 名前 | 説明 |
|---|---|
taxi_trips |
シカゴのタクシーの乗車記録(乗車日時、距離、料金、乗車場所、降車場所など)。 |
crypto_ethereum
crypto_ethereum 名前空間には、次のテーブルが含まれています。
| 名前 | 説明 |
|---|---|
transactions |
Ethereum ブロックチェーンのトランザクション レコード(送信者と受信者のアドレス、値、ガス指標など)。 |
ga4_obfuscated_sample_ecommerce
ga4_obfuscated_sample_ecommerce 名前空間には、次のテーブルが含まれています。
| 名前 | 説明 |
|---|---|
events_20210131 |
2021 年 1 月 31 日のウェブ e コマース実装をエミュレートした、難読化された Google アナリティクス 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 commit。リポジトリ別にグループ化されています。 |
contents |
HEAD ブランチ上の 1 MiB 未満のテキスト ファイルの一意のファイル コンテンツ。 |
languages |
GitHub API によって報告されたリポジトリ別のプログラミング言語。 |
licenses |
各リポジトリのオープンソース ライセンス SPDX コード。 |
sample_commits |
commits テーブルの commit のサンプル。 |
sample_contents |
contents テーブルからランダムにサンプリングされたテキスト ファイルの内容の 10% のサブセット。 |
sample_files |
sample_repos にリストされている上位 400,000 件のリポジトリから HEAD にあるファイルのサンプリングされたファイル メタデータ。 |
sample_repos |
スター数上位 40 万の 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 名前空間には、ML ベンチマーク テーブルが含まれています。
| 名前 | 説明 |
|---|---|
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 |
NYC Taxi and Limousine Commission(TLC)のタクシーゾーン ID、名前、行政区、境界ジオメトリ。 |
tlc_green_trips_2022 |
2022 年の NYC TLC グリーンタクシーの乗車記録。 |
tlc_yellow_trips_2022 |
2022 年の NYC TLC イエロー タクシーの乗車記録。 |
noaa_gsod
noaa_gsod 名前空間には、米国海洋大気庁(NOAA)の Global Surface Summary of the Day(GSOD)気象データが含まれています。
| 名前 | 説明 |
|---|---|
gsod2023 |
2023 年の世界の地表気象の概要観測データ(日次)。 |
stations |
NOAA 気象観測所のメタデータ(観測所の識別子、名前、国、州、座標など)。 |
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 名前空間には、Wikimedia のページビュー統計情報と Wikidata エンティティが含まれています。
| 名前 | 説明 |
|---|---|
pageviews_2015 |
2015 年の 1 時間あたりの Wikipedia ページビュー数。日付でパーティション分割されています。 |
pageviews_2016 |
2016 年の 1 時間あたりの Wikipedia ページビュー数。日付でパーティション分割されています。 |
pageviews_2017 |
2017 年の 1 時間あたりの Wikipedia ページビュー数。日付でパーティション分割されています。 |
pageviews_2018 |
2018 年の 1 時間あたりの Wikipedia ページビュー数。日付でパーティション分割されています。 |
pageviews_2019 |
2019 年の 1 時間あたりの Wikipedia ページビュー数。日付でパーティション分割されています。 |
pageviews_2020 |
2020 年の 1 時間あたりの Wikipedia ページビュー数。日付でパーティション分割されています。 |
pageviews_2021 |
2021 年の Wikipedia の 1 時間あたりのページビュー数。日付でパーティション分割されています。 |
pageviews_2022 |
2022 年の Wikipedia の 1 時間あたりのページビュー数。日付でパーティション分割されています。 |
pageviews_2023 |
2023 年の Wikipedia の 1 時間あたりのページビュー数。日付でパーティション分割されています。 |
pageviews_2024 |
2024 年の Wikipedia の 1 時間あたりのページビュー数。日付でパーティション分割されています。 |
pageviews_2025 |
2025 年の Wikipedia の 1 時間あたりのページビュー数。日付でパーティション分割されています。 |
pageviews_2026 |
2026 年の Wikipedia の 1 時間あたりのページビュー数。日付でパーティション分割されています。 |
table_activists |
活動家に関する記事の Wikipedia ページビュー数。 |
table_actors |
俳優に関する記事の Wikipedia ページビュー数。 |
table_alumni |
卒業生に関する記事の Wikipedia ページビュー数。 |
table_artists |
アーティストに関する記事の Wikipedia ページビュー数。 |
table_athlete |
アスリートに関する記事の Wikipedia ページビュー数。 |
table_bands |
音楽バンドに関する記事の Wikipedia ページビュー数。 |
table_born |
出生年別に分類された記事の Wikipedia ページビュー数。 |
table_businesspeople |
実業家に関する記事の Wikipedia ページビュー数。 |
table_comedians |
コメディアンに関する記事の Wikipedia ページビュー数。 |
table_composers |
作曲家に関する記事の Wikipedia ページビュー数。 |
table_inventors |
発明家に関する記事の Wikipedia ページビュー数。 |
table_politicians |
政治家に関する記事の Wikipedia ページビュー数。 |
table_scientists |
科学者に関する記事の Wikipedia ページビュー数。 |
table_singers |
歌手に関する記事の Wikipedia ページビュー数。 |
table_writers |
作家に関する記事の Wikipedia ページビュー数。 |
wikidata |
構造化された 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)には、Apache Iceberg 形式の public_data 名前空間に次のテーブルが含まれています。
| 名前 | 説明 |
|---|---|
nyc_taxicab |
ニューヨーク市タクシー&リムジン委員会(TLC)の乗車記録データ。 |
nyc_taxicab_2021 |
2021 年のニューヨーク市タクシー&リムジン委員会(TLC)の乗車記録データ。 |
次のステップ
- Lakehouse で管理される Apache Iceberg テーブルの詳細を確認する。
- Lakehouse ランタイム カタログ Iceberg REST カタログの詳細を確認する。