Apache Iceberg ve BigLake ile Yapay Zeka için Birleşik Veri Gölü Ambarı Oluşturma

1. Giriş

Bu codelab'de, Google Cloud'daki birleşik veri gölü ambarının özelliklerini keşfedeceksiniz. BigLake'te Apache Iceberg REST Catalog üzerinden sunulan herkese açık veri kümeleriyle etkileşim kuracak, ardından Google Cloud'un yapay zeka özelliklerini hem yapılandırılmış hem de yapılandırılmamış verilere uygulayacaksınız.

Apache Iceberg kullanarak klasik NYC Taxi veri kümesini sorgulayacak, veri değişikliklerini denetlemek için Time Travel'ı inceleyecek ve ardından verilerinizde yapay zeka modelleri çalıştırmak için BigQuery ML ile Gemini'ı kullanacaksınız.

Yapacaklarınız

  • BigLake'te barındırılan Apache Iceberg herkese açık veri kümelerini sorgulamak için Google Cloud Serverless for Apache Spark'ı kullanın.
  • Apache Iceberg biçimindeki yapılandırılmış verileri sorgulayın.
  • Apache Iceberg'de Time Travel'ı (Zamanda Yolculuk) gösterin.
  • Yapılandırılmış veriler üzerinde tahmini bir model eğitmek için BigQuery ML'yi kullanın.
  • BigLake Nesne Tablosu (yapılandırılmamış veriler) oluşturun ve görüntüleri analiz etmek için Gemini'ı kullanın.

İhtiyacınız olanlar

  • Chrome gibi bir web tarayıcısı
  • Faturalandırmanın etkin olduğu bir Google Cloud projesi.

Beklenen Maliyet ve Süre

  • Tamamlama süresi: yaklaşık 45 dakika.
  • Tahmini maliyet: < 2,00 TL. Maliyetleri düşük tutmak için herkese açık veri kümeleri ve sunucusuz sorgular kullanırız.

2. Kurulum ve Gereksinimler

Bu adımda ortamınızı hazırlayacak ve gerekli API'leri etkinleştireceksiniz.

Cloud Shell'i Başlatma

Komutların çoğunu Google Cloud Shell'den çalıştıracaksınız.

  1. Google Cloud Console'un üst kısmından Cloud Shell'i etkinleştir'i tıklayın.
  2. Kimlik doğrulamayı doğrulayın:
    gcloud auth list
    
  3. Projenizi onaylayın:
    gcloud config get project
    
  4. Proje ayarlanmamışsa proje kimliğinizi kullanarak ayarlayın:
    gcloud config set project <YOUR_PROJECT_ID>
    

API'leri etkinleştir

BigQuery, Cloud Resource Manager ve Vertex AI için gerekli API'leri etkinleştirmek üzere aşağıdaki komutu çalıştırın:

gcloud services enable \
  bigquery.googleapis.com \
  aiplatform.googleapis.com \
  cloudresourcemanager.googleapis.com

Ortamı yapılandırma ve bağımlılıklar paketi oluşturma

  1. Ortam değişkenlerinizi terminalinizde ayarlayın:
    export PROJECT_ID=$(gcloud config get project)
    export REGION=us-central1
    export DEPS_BUCKET=$PROJECT_ID-deps-bucket
    
  2. Bağımlılıklar Cloud Storage paketini oluşturun. PySpark komut dosyaları, iş gönderme sırasında buraya yüklenir:
    gcloud storage buckets create gs://$DEPS_BUCKET --location=$REGION
    

3. Apache Iceberg Public Catalog'a bağlanma

Bu adımda, Google Cloud'un BigLake'inde barındırılan canlı ve üretime hazır bir Apache Iceberg Kataloğu'na bağlanacaksınız.

Serverless for Apache Spark Batch CLI ile Spark SQL'i çalıştırma

Altyapıyı yönetmeye gerek kalmadan PySpark işlerini çalıştırmak için Google Cloud Serverless for Apache Spark'ı kullanacağız. Bu kitaplığı, herkese açık BigLake REST Kataloğu'na yönlendirecek şekilde yapılandıracağız.

  1. BigLake REST Katalog özelliklerini tekrar etmemek için tanımlayın.Bu yapılandırma Spark'a şunları bildirir:
    • iceberg-spark-runttime ve iceberg-gcp-bundle kitaplıklarını kullanmak için.
    • BigLake REST Catalog uç noktasını kullanarak my_catalog adlı bir kataloğu yapılandırmak için.
    • Veri dosyalarını okumak için varsayılan yerel dosya sistemi yerine Google Cloud Storage (GCS)'ı kullanmak istiyorsanız.
    • Bu my_catalog kataloğu oturumumuz için varsayılan olarak ayarlamak istiyoruz.
    • Gelişmiş güvenlik ve basitleştirilmiş veri erişimi için üçüncü taraf kimlik bilgilerini kullanmak üzere.
    export METASTORE_PROPERTIES="^|^spark.jars.packages=org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.10.0,org.apache.iceberg:iceberg-gcp-bundle:1.10.0|\
    spark.sql.catalog.my_catalog=org.apache.iceberg.spark.SparkCatalog|\
    spark.sql.catalog.my_catalog.type=rest|\
    spark.sql.catalog.my_catalog.uri=https://biglake.googleapis.com/iceberg/v1/restcatalog|\
    spark.sql.catalog.my_catalog.warehouse=gs://biglake-public-nyc-taxi-iceberg|\
    spark.sql.catalog.my_catalog.io-impl=org.apache.iceberg.gcp.gcs.GCSFileIO|\
    spark.sql.catalog.my_catalog.header.x-goog-user-project=$PROJECT_ID|\
    spark.sql.catalog.my_catalog.header.X-Iceberg-Access-Delegation=vended-credentials|\
    spark.sql.catalog.my_catalog.rest.auth.type=org.apache.iceberg.gcp.auth.GoogleAuthManager|\
    spark.sql.defaultCatalog=my_catalog|\
    spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions|\
    spark.log.level=ERROR"
    
  2. Basit bir test sorgusu dosyası oluşturun:
    cat <<EOF > test.py
    from pyspark.sql import SparkSession
    
    spark = SparkSession.builder.getOrCreate()
    
    spark.sql("SHOW TABLES IN public_data").show()
    EOF
    
  3. Toplu işi gönderin:
    gcloud dataproc batches submit pyspark \
      --project=$PROJECT_ID \
      --region=$REGION \
      --version=2.3 \
      --properties="$METASTORE_PROPERTIES" \
      --deps-bucket=gs://$DEPS_BUCKET \
      test.py
    
    Şuna benzer bir çıkış alırsınız:
    +-----------+----------------+-----------+
    |  namespace|       tableName|isTemporary|
    +-----------+----------------+-----------+
    |public_data|     nyc_taxicab|      false|
    |public_data|nyc_taxicab_2021|      false|
    +-----------+----------------+-----------+
    

4. Yapılandırılmış Iceberg Verilerini Sorgulama

Bağlantı kurulduktan sonra veri kümelerine tam SQL erişiminiz olur. Iceberg tablosu olarak modellenen NYC Taxi veri kümesini sorgulayacağız.

Standart toplama sorgusu çalıştırma

query.py adlı bir dosya oluşturun:

cat <<EOF > query.py
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

query = """
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 public_data.nyc_taxicab
WHERE data_file_year = 2021 AND passenger_count > 0
GROUP BY passenger_count
ORDER BY num_trips DESC
"""

spark.sql(query).show()
EOF

Ve Apache Spark için Sunucusuz'u kullanarak gönderin:

gcloud dataproc batches submit pyspark \
  --project=$PROJECT_ID \
  --region=$REGION \
  --version=2.3 \
  --properties="$METASTORE_PROPERTIES" \
  --deps-bucket=gs://$DEPS_BUCKET \
  query.py

Konsolunuzda aşağıdakine benzer bir çıkış görmeniz gerekir:

+---------------+---------+--------+------------+
|passenger_count|num_trips|avg_fare|avg_distance|
+---------------+---------+--------+------------+
|              1| 21508009|   18.82|        3.03|
|              2|  4424746|   20.22|        3.40|
|              3|  1164846|   19.84|        3.27|
|              5|   718282|   18.88|        3.07|
|              4|   466485|   20.61|        3.44|
|              6|   452467|   18.97|        3.11|
|              7|       78|   65.24|        3.71|
|              8|       49|   57.39|        5.88|
|              9|       35|   73.26|        6.20|
|             96|        1|   17.00|        2.00|
|            112|        1|   15.00|        2.00|
+---------------+---------+--------+------------+

Burada neden Apache Iceberg kullanmalısınız?

  • Bölüm budama: Sorgu, data_file_year = 2021 üzerinde filtreler. Iceberg, motorun diğer yıllara ait verileri tamamen taramayı atlamasına olanak tanır.
  • Motor Çevikliği: Verileri kopyalamadan Spark, Trino veya BigQuery'de çalıştırabilirsiniz.

5. Apache Iceberg'de Zaman Yolculuğu

Iceberg'in en güçlü özelliklerinden biri Time Travel'dır. Bu özellik, verileri geçmiş bir sürümde veya anlık görüntüde olduğu şekliyle sorgulamanıza olanak tanır.

Tablo Geçmişini Görüntüleme

history.py adlı bir dosya oluşturun:

cat <<EOF > history.py
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

spark.sql("SELECT * FROM public_data.nyc_taxicab.history").show()
EOF

Ve gönderin:

gcloud dataproc batches submit pyspark \
  --project=$PROJECT_ID \
  --region=$REGION \
  --version=2.3 \
  --properties="$METASTORE_PROPERTIES" \
  --deps-bucket=gs://$DEPS_BUCKET \
  history.py

Konsolunuzda aşağıdakine benzer bir çıkış görmeniz gerekir:

+--------------------+-------------------+-------------------+-------------------+
|     made_current_at|        snapshot_id|          parent_id|is_current_ancestor|
+--------------------+-------------------+-------------------+-------------------+
|2026-01-07 21:32:...|6333415779680505547|               NULL|               true|
|2026-01-07 21:34:...|1840345522877675925|6333415779680505547|               true|
|2026-01-07 21:36:...|7203554539964460256|1840345522877675925|               true|
|2026-01-07 21:38:...|4573466015237516024|7203554539964460256|               true|
|2026-01-07 21:40:...|3353190952148867790|4573466015237516024|               true|
|2026-01-07 21:42:...|1335547378580631681|3353190952148867790|               true|
|2026-01-07 21:44:...|8203141258229894239|1335547378580631681|               true|
|2026-01-07 21:46:...|1597048231706307813|8203141258229894239|               true|
|2026-01-07 21:48:...|6247811509231462655|1597048231706307813|               true|
|2026-01-07 21:50:...|2527184310045633322|6247811509231462655|               true|
|2026-01-07 21:52:...|2512764101237223642|2527184310045633322|               true|
|2026-01-07 21:52:...|7045957533358062548|2512764101237223642|               true|
|2026-01-07 21:53:...| 531753237516076726|7045957533358062548|               true|
|2026-01-07 21:53:...|4184653573199718274| 531753237516076726|               true|
|2026-01-07 21:54:...|5125223829492177301|4184653573199718274|               true|
|2026-01-07 21:54:...|6844673237417600305|5125223829492177301|               true|
|2026-01-07 21:54:...|6634828203344518093|6844673237417600305|               true|
|2026-01-07 21:55:...|7637728273407236194|6634828203344518093|               true|
|2026-01-07 21:55:...|3424071684958740192|7637728273407236194|               true|
|2026-01-07 21:55:...|1743746294196424254|3424071684958740192|               true|
+--------------------+-------------------+-------------------+-------------------+

Farklı anlık görüntü kimliklerini ve bunların ne zaman kaydedildiğini gösteren satırlar görürsünüz.

Geçerli satır sayısını geçmişteki satır sayısıyla karşılaştırma

timetravel.py adlı bir dosya oluşturun:

cat <<EOF > timetravel.py
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

query = """
SELECT 'Current State' AS version, COUNT(*) AS count FROM public_data.nyc_taxicab
UNION ALL
SELECT 'Past State' AS version, COUNT(*) AS count FROM public_data.nyc_taxicab VERSION AS OF 4573466015237516024
"""

spark.sql(query).show()
EOF

Ve gönderin:

gcloud dataproc batches submit pyspark \
  --project=$PROJECT_ID \
  --region=$REGION \
  --version=2.3 \
  --properties="$METASTORE_PROPERTIES" \
  --deps-bucket=gs://$DEPS_BUCKET \
  timetravel.py

Konsolunuzda aşağıdakine benzer bir çıkış görmeniz gerekir:

+-------------+----------+
|      version|     count|
+-------------+----------+
|Current State|1293069366|
|   Past State|  72878594|
+-------------+----------+

Bu sayede, zaman içindeki veri değişikliklerini denetleyebilirsiniz.

6. BigQuery ML ile Yapılandırılmış Yapay Zeka

Iceberg verilerini incelediğinize göre şimdi BigQuery Yapay Zeka özelliklerini kullanalım. Herkese açık Iceberg kataloğu salt okunur olduğundan, herkese açık tablolardan okuyarak çalışma alanımızda bir modeli eğitmek için BigQuery'yi kullanabiliriz.

Yerel veri kümesi oluşturma

İlk olarak, bq CLI'yı kullanarak yapay zeka modelini depolamak için projenizde bir veri kümesi oluşturun:

bq mk --location=$REGION --project_id=$PROJECT_ID iceberg_ai

Doğrusal Regresyon Modeli Eğitme

Şimdi herkese açık BigLake Iceberg tablosunu kullanarak bir doğrusal regresyon modeli eğiteceksiniz.

Sorgu dosyası oluşturun ve bq query kullanarak modeli eğitin:

cat <<'EOF' > train_model.sql
CREATE OR REPLACE MODEL `iceberg_ai.predict_fare`
OPTIONS(model_type='LINEAR_REG', input_label_cols=['fare_amount']) AS
SELECT fare_amount, passenger_count, CAST(trip_distance AS FLOAT64) AS trip_distance
FROM `bigquery-public-data`.`biglake-public-nyc-taxi-iceberg`.public_data.nyc_taxicab
WHERE fare_amount > 0 AND trip_distance > 0 AND RAND() < 0.01; -- Using 1% of data to downsample
EOF

bq query --location=$REGION --use_legacy_sql=false < train_model.sql

Model kullanarak tahmin etme

Model eğitildiğinden artık ML.PREDICT işlevini kullanarak yeni yolculukların ücret tutarlarını tahmin etmek için kullanabilirsiniz.

Bir sorgu dosyası oluşturun ve bq query kullanarak tahmini çalıştırın:

cat <<'EOF' > predict_fare.sql
SELECT
  predicted_fare_amount, passenger_count, trip_distance
FROM
  ML.PREDICT(MODEL `iceberg_ai.predict_fare`,
    (
    SELECT 2 AS passenger_count, 5.0 AS trip_distance
    )
  );
EOF

bq query --location=$REGION --use_legacy_sql=false < predict_fare.sql

Şuna benzer bir çıkış alırsınız:

+-----------------------+-----------------+---------------+
| predicted_fare_amount | passenger_count | trip_distance |
+-----------------------+-----------------+---------------+
|     14.12252095150709 |               2 |           5.0 |
+-----------------------+-----------------+---------------+

7. BigLake ile Yapılandırılmamış AI

Veriler yalnızca satır ve sütunlardan oluşmaz. Birleşik veri gölü evleri, yapılandırılmamış verileri (resimler, PDF'ler) de işler. Yapılandırılmamış verileri sorgulamak için Nesne Tabloları ve Nesne Referansları'nı kullanalım.

Nesne tabloları, BigQuery'de Cloud Storage yolundaki nesneleri listeleyen salt okunur harici tablolardır. Her satır bir dosyayı temsil eder. uri, size gibi meta veriler için sütunlar ve ObjectRef içeren özel bir ref sütunu bulunur.

Nesne referansları (ObjectRef), tek bir dosyanın gerçek verilerini gösterir. Modern BigQuery ML işlevleri (ör. AI.GENERATE veya AI.AGG), baytları standart bir tabloya yüklemeden analiz için dosya içeriğini (resim, ses veya metin) okumak üzere ObjectRef tüketir.

Yapılandırılmamış yapay zeka için veri kümesi oluşturma

Öncelikle, bq CLI'yı kullanarak US çok bölgeli alanında Nesne Tabloları'nı depolamak için projenizde ikinci bir veri kümesi oluşturun:

bq mk --location=US --project_id=$PROJECT_ID iceberg_object_ai

Harici bağlantı oluşturma

Cloud Storage'da depolanan verileri (hem nesne tabloları hem de yapılandırılmamış veriler) BigQuery'den sorgulamak için harici bir bağlantı oluşturmanız gerekir.

Cloud Kaynak bağlantısı oluşturmak için Cloud Shell'de aşağıdaki komutu çalıştırın:

bq mk --connection --project_id=$PROJECT_ID --location=US --connection_type=CLOUD_RESOURCE my-conn

Bağlantınız için oluşturulan hizmet hesabı kimliğini bulun:

CONNECTION_SA=$(bq show --format=json --project_id=$PROJECT_ID --connection $PROJECT_ID.us.my-conn | jq -r '.serviceAccountId // .cloudResource.serviceAccountId')

Hizmet hesabına Vertex AI Kullanıcısı ve Depolama Nesnesi Görüntüleyici rollerini vererek Gemini modellerini çağırmasına ve GCS verilerini okumasına olanak tanıyın:

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$CONNECTION_SA" \
  --role="roles/aiplatform.user"

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$CONNECTION_SA" \
  --role="roles/storage.objectViewer"

Nesne tablosu oluşturma

Yapılandırılmamış verilere erişmek için önceki bölümde oluşturulan harici bağlantıyı my-conn kullanacağız. Bir sorgu dosyası oluşturun ve bq query kullanarak Nesne Tablosu'nu oluşturun:

cat <<'EOF' > create_object_table.sql
CREATE EXTERNAL TABLE `iceberg_object_ai.sample_images`
WITH CONNECTION `us.my-conn`
OPTIONS (
  object_metadata = 'SIMPLE',
  uris = ['gs://cloud-samples-data/vision/landmark/*']
);
EOF

bq query --use_legacy_sql=false < create_object_table.sql

Nesne verilerinde Gemini'ı kullanma

Artık Gemini'ı kullanarak görüntüleri indirmeden değerlendirmek için sorgu çalıştırabilirsiniz.

bq query aracılığıyla standart SQL kullanarak resimleri sorgulayın:

cat <<EOF > query_images.sql
SELECT
  uri,
  image_analysis.description
FROM (
  SELECT
    uri,
    AI.GENERATE(
      (
        'Identify what is happening in the image.',
        ref
      ),
      connection_id => 'us.my-conn',
      endpoint => 'gemini-2.5-flash-lite',
      output_schema => 'event STRING, severity STRING, description STRING'
    ) AS image_analysis
  FROM
    iceberg_object_ai.sample_images
);
EOF

bq query --use_legacy_sql=false < query_images.sql

Örnek çıktı:

+----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                           uri                            |                                                                                                                                                                                                                             description                                                                                                                                                                                                                             |
+----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| gs://cloud-samples-data/vision/landmark/eiffel_tower.jpg | The Eiffel Tower stands tall against a cloudy sky, overlooking the Seine River in Paris. Boats are docked along the riverbank, and trees line the opposite shore, with bridges and buildings visible in the distance.                                                                                                                                                                                                                                               |
| gs://cloud-samples-data/vision/landmark/pofa.jpg         | A wide shot shows the Palace of Fine Arts, a monumental structure in San Francisco, California. The building features a large rotunda with a dome, surrounded by colonnades. In front of the rotunda is a lagoon. Several people are walking around the grounds. The sky is blue with a few scattered clouds.                                                                                                                                                       |
| gs://cloud-samples-data/vision/landmark/st_basils.jpeg   | A monument stands in front of Saint Basil's Cathedral in Moscow under a bright blue sky with scattered white clouds. The cathedral features distinctive onion domes in various colors and patterns, including red, blue and white stripes, green and beige stripes, and red and blue diamonds. A large green tree partially obscures the left side of the cathedral. People are visible in the foreground near the base of the monument and the cathedral entrance. |
+----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Doğrudan ObjectRef'leri Keşfetme: Yaklaşım Analizi

Nesne tabloları dosya referanslarını otomatik olarak yönetirken, tek dosyalarda anlık analizler çalıştırmak için BigQuery Nesne Referansları'nı kullanarak bu nesnelerle doğrudan etkileşim kurabilirsiniz.

Örneğin, kendi GCS paketinizde depolanan küçük bir metin dosyasını (daha önce oluşturulan $DEPS_BUCKET değişkenini kullanarak) kullanabilir ve bq query ile OBJ.MAKE_REF kullanarak analiz edebilirsiniz.

Öncelikle küçük bir metin dosyası oluşturup paketinize yükleyin:

cat <<'EOF' > review.txt
This product is fantastic! It exceeded my expectations. The quality is top-notch. I highly recommend it to everyone!
EOF

gcloud storage cp review.txt gs://${DEPS_BUCKET}/review.txt

Şimdi standart SQL'de OBJ.MAKE_REF kullanarak dosyayı sorgulayın:

cat <<EOF > sentiment_analysis.sql
SELECT
  AI.GENERATE(
    (
      'Analyze the sentiment of this text file. Is it positive, negative, or neutral? Explain why.',
      OBJ.MAKE_REF('gs://${DEPS_BUCKET}/review.txt', 'us.my-conn')
    ),
    connection_id => 'us.my-conn',
    endpoint => 'gemini-2.5-flash-lite'
  ).result AS ml_generate_text_result;
EOF

bq query --use_legacy_sql=false < sentiment_analysis.sql

Örnek çıktı:

+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                 ml_generate_text_result                                                                                  |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| This text file has a **strongly positive** sentiment.                                                                                                                                    |
|                                                                                                                                                                                          |
| Here's why:                                                                                                                                                                              |
|                                                                                                                                                                                          |
| *   **Positive Keywords:** The text is filled with unequivocally positive words and phrases:                                                                                             |
|     *   "fantastic"                                                                                                                                                                      |
|     *   "exceeded my expectations"                                                                                                                                                       |
|     *   "top-notch"                                                                                                                                                                      |
|     *   "highly recommend"                                                                                                                                                               |
|                                                                                                                                                                                          |
| *   **Enthusiastic Language:** The use of exclamation marks ("!") further amplifies the positive tone, indicating excitement and strong approval.                                        |
|                                                                                                                                                                                          |
| *   **Lack of Negative or Neutral Elements:** There are no words, phrases, or implications that suggest any dissatisfaction, criticism, or even indifference.                            |
|                                                                                                                                                                                          |
| In summary, the author's language is enthusiastic and uses multiple strong positive descriptors, leaving no room for doubt that their opinion of the product is overwhelmingly positive. |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

8. Temizleme

Google Cloud hesabınızın sürekli olarak ücretlendirilmesini önlemek için bu codelab sırasında oluşturulan kaynakları silin.

Veri kümesini ve bağlantıyı silme

Veri kümelerinizi ve bağlantınızı silmek için Cloud Shell'de aşağıdaki komutu çalıştırın:

bq rm -r -f --location=$REGION iceberg_ai
bq rm -r -f --location=US iceberg_object_ai
bq rm --connection $PROJECT_ID.US.my-conn

GCS paketlerini ve yerel dosyaları silme

GCS paketlerini ve yerel dosyaları temizleyin:

# Delete GCS buckets
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
gcloud storage rm -r gs://dataproc-temp-${REGION}-${PROJECT_NUMBER}-*
gcloud storage rm -r gs://dataproc-staging-${REGION}-${PROJECT_NUMBER}-*
gcloud storage rm -r gs://${DEPS_BUCKET}

# Delete local files
rm -f train_model.sql predict_fare.sql create_object_table.sql query_images.sql sentiment_analysis.sql test.py query.py history.py timetravel.py review.txt

Bu laboratuvar için oluşturduysanız projenin tamamını da silebilirsiniz.

9. Tebrikler

Tebrikler! Apache Iceberg, BigLake ve BigQuery AI kullanarak birleşik bir veri gölü ambarı oluşturmayı başarıyla tamamladınız.

Öğrendikleriniz

  • Herkese açık Apache Iceberg REST kataloglarına bağlanma ve bu kataloglarda sorgu oluşturma
  • Veri kümesi sürümlerini denetlemek için Iceberg'de Time Travel'ı kullanma.
  • BigQuery ML modellerini yapılandırılmış veriler üzerinde eğitme
  • Nesne tabloları ve ObjectRef kullanarak yapılandırılmamış verileri (resimler) bağlama.
  • Resimleri analiz etmek için Gemini'ı doğrudan BigQuery SQL'de kullanma.

Referans belgeleri