Google Cloud Lakehouse menghosting set data publik berkualitas tinggi yang ditayangkan melalui Katalog REST Apache Iceberg, sehingga tersedia untuk masyarakat umum sebagai bagian dari Google Cloud Program Set Data Publik.
Set data ini tersedia untuk akses hanya baca, dan Anda dapat mengakses serta mengintegrasikannya ke dalam aplikasi menggunakan Apache Spark, Trino, Flink, atau BigQuery. Google membayar penyimpanan set data ini dan memberikan akses publik ke data tersebut melalui Lakehouse. Anda hanya membayar untuk kueri yang Anda lakukan pada data.
Tujuan set data publik ini adalah untuk menurunkan hambatan masuk untuk Iceberg. Anda tidak perlu mengelola infrastruktur untuk mempelajari Iceberg, Anda hanya perlu terhubung. Anda dapat menggunakan set data ini untuk:
- Menggunakan BigQuery (melalui Lakehouse) untuk membuat kueri tabel ini secara langsung menggunakan SQL, dan menggabungkannya dengan data pribadi Anda.
- Menguji konfigurasi mesin OSS (misalnya, Spark, Trino, atau Flink) terhadap Katalog REST aktif.
Sebelum memulai
- Login keakun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Sebelum terhubung dengan Apache Spark, Anda harus memiliki hal berikut:
- Kredensial Default Aplikasi (ADC) yang disiapkan di lingkungan Anda.
Lokasi set data publik
Setiap set data publik disimpan di lokasi tertentu seperti US atau EU. Set data publik
Lakehouse disimpan di lokasi multi-region
US. Saat Anda membuat kueri set data publik, pastikan lokasi pemrosesan Anda kompatibel dengan lokasi set data.
Mengakses set data publik menggunakan Apache Spark
Karena set data publik Lakehouse ditayangkan melalui Iceberg REST katalog, Anda dapat mengaksesnya dari Apache Spark dan mesin lain yang kompatibel. Anda dapat terhubung ke set data publik menggunakan lingkungan Spark standar apa pun seperti lokal, Managed Service untuk Apache Spark, atau vendor cloud lainnya.
Menghubungkan dengan Apache Spark
Gunakan flag konfigurasi berikut saat memulai sesi Spark SQL.
Flag ini mengonfigurasi katalog bernama lakehouse-sample yang mengarah ke endpoint REST publik.
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://biglake-public-nyc-taxi-iceberg \
--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
Ganti PROJECT_ID dengan Google Cloud project IDAnda.
Contoh kueri
Setelah terhubung, Anda akan memiliki akses SQL penuh ke set data. Set data Taksi NYC tersedia, dimodelkan sebagai tabel Iceberg untuk menunjukkan kemampuan partisi dan metadata.
Kueri berikut menggabungkan jutaan data untuk menemukan tarif rata-rata dan jarak perjalanan berdasarkan jumlah penumpang. Kueri ini menunjukkan cara Iceberg memindai file data secara efisien tanpa perlu mencantumkan direktori menggunakan pemangkasan partisi:
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;
Salah satu fitur Iceberg yang paling canggih adalah Time Travel. Anda dapat membuat kueri tabel seperti yang ada pada titik waktu tertentu di masa lalu. Kueri berikut memungkinkan Anda mengaudit perubahan dengan membandingkan jumlah baris versi saat ini dengan snapshot tertentu:
-- 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;
Dengan membuat kueri tabel metadata histori (misalnya, SELECT * FROM
bqms.public_data.nyc_taxicab.history), Anda dapat menemukan ID snapshot dan kembali
untuk melihat pertumbuhan set data dari waktu ke waktu.
Untuk mengetahui informasi selengkapnya, lihat Menggunakan katalog runtime Lakehouse dengan Spark, Katalog REST Iceberg & Cloud Storage.
Set data yang tersedia
Lakehouse menyediakan tabel contoh yang dapat Anda kueri sebagai tabel Lakehouse.
Set data biglake-public-nyc-taxi-iceberg mencakup tabel berikut dalam format Apache Iceberg:
| Nama | Deskripsi |
|---|---|
nyc_taxicab |
Data Catatan Perjalanan NYC Taxi and Limousine Commission (TLC). |
Langkah berikutnya
- Pelajari lebih lanjut tabel Iceberg Lakehouse.
- Pelajari lebih lanjut Katalog REST Iceberg katalog runtime Lakehouse Katalog.