Set data publik lakehouse

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

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

Sebelum terhubung dengan Apache Spark, Anda harus memiliki hal berikut:

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