Dataplex meta verileriyle veri temelini oluşturma

1. Giriş

Üretken yapay zeka modelleri güçlü muhakeme yeteneğine sahip olsa da kurumsal bağlamdan yoksundur. Bir yönetici, yapay zeka aracısına "1. çeyrek gelirimiz ne kadar?" diye sorarsa aracı, veri gölünüzde "gelir" adlı düzinelerce tablo bulabilir. Bazıları titizlikle hazırlanmış finansal raporlar, bazıları anlık pazarlama tahminleri ve birçoğu da muhtemelen desteği sonlandırılmış sanal alanlardır.

Temellendirme açıkça yapılmadığında, yapay zeka aracısı basit ad benzerliğine göre bir tablo seçer. Bu da doğrulanmamış verilerden elde edilen "inandırıcı derecede yanlış" yanıtlara yol açar.

Bu codelab, yönetime duyarlı üretken yapay zeka aracının nasıl oluşturulacağını ele alan iki bölümlük serinin bir parçasıdır.

Bu ilk bölümde veri temelini oluşturacaksınız. BigQuery'de gerçekçi ve "karmaşık" bir veri gölü oluşturacak, geçerli verileri gürültüden ayırmak için katı meta veri etiketleri (Dataplex Aspects) uygulayacak ve Gemini CLI'yi kullanarak LLM'nin yönetim kurallarınıza sıkı sıkıya uyup uymadığını yerel olarak test edeceksiniz.

(Bu serinin ikinci bölümünde, Model Context Protocol (MCP) ve Cloud Run kullanarak bu yerel prototipi güvenli, kurumsal düzeyde bir web uygulamasına nasıl dağıtacağınız anlatılmaktadır. 👉 2. Bölüm'ü okuyun)

be15d5f41f0d716c.png

Ön koşullar

Neler öğreneceksiniz?

  • Terraform kullanarak gerçekçi, çok katmanlı bir veri gölü dağıtın.
  • Resmi veri ürünlerini ham korumalı alan tablolarından ayırt etmek için Dataplex'te katı meta veri şablonları (Aspect Types) tasarlayın.
  • Uygulama kodu yazmadan önce Gemini CLI'yı kullanarak yönetim kurallarını yerel olarak doğrulayın.

Gerekenler

  • Google Cloud Shell'e erişim
  • Terraform (Cloud Shell'e önceden yüklenmiştir).
  • Gemini CLI (Cloud Shell'e önceden yüklenmiştir).

Temel kavramlar

  • Dataplex Universal Catalog: Birleştirilmiş meta veri yönetimi hizmeti. Teknik meta verileri (şemalar) iş bağlamıyla (yönetim) zenginleştirmek için kullanırız.
  • Özellik Türü: Yapılandırılmış bir meta veri şablonu. Serbest metin etiketlerinin aksine, yönler güçlü türleme uygular (numaralandırmalar, boole'lar). Bu sayede, makinelerin değerlendirmesi için güvenilir hale gelirler.

2. Kurulum ve şartlar

Cloud Shell'i başlatma

Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

Google Cloud Console'da sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın:

Cloud Shell'i etkinleştirme

Ortamın temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır. İşlem tamamlandığında aşağıdakine benzer bir sonuç görürsünüz:

Ortamın bağlandığını gösteren Google Cloud Shell terminalinin ekran görüntüsü

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Herhangi bir şey yüklemeniz gerekmez.

Ortamı başlatma

Cloud Shell'i açın ve tüm komutların doğru altyapıyı hedeflediğinden emin olmak için proje değişkenlerinizi ayarlayın.

export PROJECT_ID=$(gcloud config get-value project)
gcloud config set project $PROJECT_ID
export REGION="us-central1"

API'leri etkinleştirme

Aşağıdaki talimatı yürütmek için gerekli Google Cloud hizmetlerini etkinleştirin.

gcloud services enable \
  artifactregistry.googleapis.com \
  bigqueryunified.googleapis.com \
  cloudaicompanion.googleapis.com \
  cloudbuild.googleapis.com \
  cloudresourcemanager.googleapis.com \
  datacatalog.googleapis.com \
  run.googleapis.com

Depoyu klonlama

Altyapı kodunu ve otomasyon komut dosyalarını GitHub deposundan alın. Cloud Shell'de disk alanından tasarruf etmek için yalnızca bu laboratuvar için gereken klasörü indireceğiz.

# Perform a shallow clone to get only the latest repository structure without the full history
git clone --depth 1 --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/devrel-demos.git
cd devrel-demos
# Specify and download only the folder we need for this lab
git sparse-checkout set data-analytics/governance-context
cd data-analytics/governance-context

"Dağınık" veri gölünü oluşturma

Gerçek dünyadaki veri ortamları nadiren temizdir. Gerçekliği simüle etmek için "resmi" veri pazarları ile güvenilmeyen "sandbox" tablolarının bir karışımına ihtiyacımız var.

Bu ortamı dağıtmak için Terraform'u kullanacağız. Yapılandırma iki görevi yerine getirir:

  • Altyapı: Dataplex Aspect Types ve BigQuery veri kümeleri/tabloları oluşturur.
  • Veri Yükleme: Tabloları oluşturulduktan hemen sonra örnek verilerle doldurmak için BigQuery INSERT işlerini çalıştırır.
  1. terraform dizinine gidin ve dizini başlatın.
cd terraform
terraform init
  1. Yapılandırmayı uygulayın. Bu işlem bir dakika kadar sürebilir.
terraform apply -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approve

Kontrol noktası: Artık tamamen doldurulmuş ancak tamamen yönetilmeyen bir veri gölünüz var. Yapay zeka için her tablo tam olarak aynı görünür.

3. Yönetim uygulama

Bu, kritik mühendislik adımıdır. Şu anda finance_mart.fin_monthly_closing_internal ve analyst_sandbox.tmp_data_dump_v2_final_real tabloları bir LLM ile aynı görünüyor. Bunlar yalnızca sütunları olan nesnelerdir.

Yönetim mühendisi olarak, bu tabloları ayırt etmek için Aspect (sertifikalı bir meta veri etiketi) eklemeniz gerekir. Gerçek bir işletmede bunu CI/CD ardışık düzenleri aracılığıyla otomatikleştirirsiniz. Bu otomasyonu komut dosyalarıyla simüle edeceğiz.

Yönetim ödeme yükleri oluşturma

Dataplex Aspect anahtarları global olarak benzersiz olmalıdır (proje kimliğinizle öneklenmiş). ./generate_payloads.sh komut dosyası, YAML meta veri dosyalarını dinamik olarak oluşturur.

cd ..
chmod +x ./generate_payloads.sh
./generate_payloads.sh

Çıkış:

Bu işlem, yönetim senaryolarını (Altın/Dahili, Altın/Herkese Açık, Gümüş/Anlık, Bronz/Sandbox) tanımlayan 4 YAML dosyası içeren "./aspect_payloads" adlı bir klasör oluşturur.

KSA aracılığıyla yönleri uygulama

Komut dosyasını çalıştırmadan önce, süreci netleştirmek için aslında ne uyguladığımıza bakalım. Dahili finans yükünün yapısını görmek için aşağıdaki komutu çalıştırın:

cat aspect_payloads/fin_internal.yaml

Aşağıdaki içerikler gösterilir.

your-project-id.us-central1.official-data-product-spec:
  data:
    product_tier: GOLD_CRITICAL
    data_domain: FINANCE
    usage_scope: INTERNAL_ONLY
    update_frequency: DAILY_BATCH
    is_certified: true

Bu YAML'nin, is_certified: true işaretini ayarlama ve GOLD_CRITICAL katmanını atama gibi işletme bağlamını nasıl açıkça tanımladığına dikkat edin. Yapay zekanın, tablo adlarına göre tahmin etmek yerine değerlendirebileceği net ve yapılandırılmış kurallar sunma

Şimdi uygulama komut dosyasını çalıştırın. Bu, BigQuery tablolarında yinelenir ve bu katı meta verileri eklemek için gcloud dataplex entries update komutunu yürütür.

chmod +x ./apply_governance.sh
./apply_governance.sh

Doğrulama (isteğe bağlı)

Devam etmeden önce meta verilerin konsolda doğru şekilde uygulandığını doğrulayın.

  1. Google Cloud Console'da Dataplex Universal Catalog sayfasını açın. Sol gezinme menüsünde "Dataplex Universal Catalog"u görmüyorsanız Google Cloud Console penceresinin üst kısmındaki arama çubuğunu kullanın, Dataplex yazın ve "En iyi sonuçlar" veya "Ürünler ve sayfalar" bölümündeki sonucu seçin.
  2. fin_monthly_closing_internal araması Sonuçlarda BigQuery tablosunu görmeniz gerekir. Ayrıntılar sayfasına girmek için tablo adını tıklayın.

13d068a8cd0bfda9.png

  1. Tablonun ayrıntılar sayfasında, en altta bulunan "İsteğe bağlı etiketler ve yönler" bölümünü bulun.
  2. official-data-product-spec yönünü bulabilirsiniz. Değerlerin, uyguladığımız "Gold Internal" senaryosuyla eşleştiğini doğrulayın.

56726f62e1ac311a.png

Artık teknik olarak aynı olan BigQuery tablolarının (fin_monthly_closing_internal ve tmp_data_dump_v2_final_real) makine tarafından okunabilir meta verilerle mantıksal olarak farklılaştırıldığını onayladınız.

4. Aracıyı yapılandırma ve prototipini oluşturma

2. bölümde yapacağımız gibi bir web uygulaması oluşturmadan önce yönetim mantığımızı yerel olarak doğrulayacağız. Dataplex uzantısını yüklememiz ve sistem istemini yapılandırmamız gerekir.

Uzantıyı yükleme

Cloud Shell'de Dataplex uzantısını yükleyin. Onayınızı ve kurulum ayrıntılarınızı ister.

export DATAPLEX_PROJECT="${PROJECT_ID}"

gemini extensions install https://github.com/gemini-cli-extensions/dataplex

(Yüklemeyi kabul etmek için Y yazın ve istendiğinde proje kimliğinizi girin).

Politika dosyasını tanımlama

GEMINI.md dosyası, soyut insan kurallarını (ör. "Güvenli verilere ihtiyacım var") katı teknik aramalar haline getirir.

Bu dosya şu anda geneldir. Aracının, herkese açık internetteki veya diğer bağlamlardaki tabloları halüsinasyon olarak üretmesini önlemek için tam olarak hangi Google Cloud projesinde arama yapması gerektiğini bilmesi gerekir.

  1. PROJECT_ID öğenizi politika dosyasına yerleştirin.
envsubst < GEMINI.md > GEMINI.md.tmp && mv GEMINI.md.tmp GEMINI.md
  1. Dosyayı inceleyerek yapay zekaya öğrettiğimiz algoritmayı anlayın.
cat GEMINI.md

Bu dosyada iki şeye dikkat edin:

  1. Proje Kapsamı: 2. Aşamayı kontrol edin. projectid:${PROJECT_ID} kısmının gerçek proje kimliğiniz (e.g., projectid:my-lab-project) ile değiştirildiğinden emin olun. Bu değişken değiştirilmezse aracı, erişiminiz olan her projede arama yaparak yanlış yanıtlara yol açar.
  2. The Algorithm: 1. Aşama / 2. Aşama mantığına dikkat edin. Modele SQL'i tahmin ETMEMESİ açıkça talimat verilir. Önce doğru etiket tanımını (1. Aşama) aramalı, ardından verileri (2. Aşama) aramalıdır.

Aracıyı başlatma ve senaryoları test etme

Gemini CLI oturumunu başlatın. Bu kez yönetim politikanızı sistem bağlamı olarak yükleyin.

gemini

88dc6e826a34b033.png

Not: Birden fazla bağlam dosyasının yüklendiğini görebilirsiniz (ör. GEMINI.md ve diğerleri). Normal bir durumdur. CLI, bu projenin belirli kuralları için yerel GEMINI.md dosyasını ve Dataplex uzantısının varsayılan talimatlarını yükler.

Yüklemeyi doğrulama

Dataplex uzantısının etkin olduğunu onaylamak için /mcp desc yazın. dataplex, kullanılabilir araçlarla yapılandırılmış bir MCP sunucusu olarak listelenmelidir.

169a5627263863ca.png

Test senaryoları (Prototip oluşturma)

Kurallarınıza uyduğunu doğrulamak için aşağıdaki istemleri çalışan aracı oturumuna tek tek yapıştırın.

  • A senaryosu (CFO'nun verilerini onaylama):
"We are preparing the deck for an internal Board of Directors meeting next week. I need the numbers to be absolutely finalized, trustworthy, and kept strictly confidential. Which table is safe to use?"

Beklenen: Sorgular fin_monthly_closing_internal çünkü Aspect'inde GOLD_CRITICAL (doğru) ve INTERNAL_ONLY (yönetim kurulu toplantısı) ile anlamsal olarak eşleşiyor.

  • B Senaryosu (Herkese açık ifşa):
"I need to share our quarterly financial summary with an external consulting firm. It is critical that we do not leak any raw or internal metrics. Which dataset is officially scrubbed and explicitly approved for external sharing?"

Beklenen: Aracının, aylık dahili tabloyu atlaması ve fin_quarterly_public_report'yi kesinlikle seçmesi gerekir. Çünkü EXTERNAL_READY etiketli tek öğe budur.

  • C senaryosu (operasyonel ihtiyaçlar):
"My dashboard needs to show what's happening right now with our ad spend. I can't wait for the overnight load. What do you recommend?"

Beklenen: Temsilci, mkt_realtime_campaign_performance seçeneğini belirler. Çünkü bu seçenek, REALTIME_STREAMING güncelleme sıklığını tanımlar ve finansal verilerin GOLD_CRITICAL katmanına göre önceliklendirilir.

  • D senaryosu (korumalı alan denemesi):
"I'm just playing around with some new ML models and need a lot of raw data. It doesn't need to be perfect, just a sandbox environment."

Beklenen: Temsilci, tmp_data_dump_v2_final_real seçeneğini belirler. Çünkü bu seçenek, Aspect'teki BRONZE_ADHOC (ham veriler) ve is_certified: false (sandbox ortamı) ile anlamsal olarak eşleşir.

(Gemini oturumundan çıkmak için /quit yazın)

5. Tebrikler! Sırada ne var?

Yönetilen bir veri temeli oluşturmayı başardınız ve yerel bir CLI prototipi kullanarak yapay zekanın meta veri kurallarınıza sıkı sıkıya uyabileceğini kanıtladınız.

Artık bir kontrol noktasına ulaştınız. Lütfen sonraki adımınızı seçin:

A seçeneği: Hemen 2. bölüme geçmek istiyorum.

Bu yerel prototipi Model Context Protocol (MCP) ve Cloud Run kullanarak güvenli, üretime hazır bir web uygulamasına dönüştürmeye hazırsanız:

👉 2. Bölüm Codelab'inin bağlantısı

B seçeneği: 2. bölümü daha sonra yapacağım veya yalnızca 1. bölümü tamamlamak istiyordum.

Bugünlük durmak ve bulut maliyetlerinden kaçınmak istiyorsanız kaynaklarınızı temizlemeniz gerekir.

Merak etmeyin! 2. bölümde, 1. Bölüm ortamını yalnızca 2 dakikada tamamen yeniden oluşturacak bir "Hızlı İzleme Komut Dosyası" sunacağız. Böylece tam olarak kaldığınız yerden devam edebilirsiniz.

👉 Temizleme bölümüne gidin.

6. Temizleme (Yalnızca B seçeneği için)

Burada duruyorsanız ücretlendirilmemek için kaynakları yok edin.

Veri gölünü yok etme (Terraform)

Şu anda Gemini CLI ortamındaysanız Ctrl+C tuşuna iki kez basarak veya /quit yazarak oturumdan çıkın. Ardından, aşağıdaki komutları çalıştırın:

cd ~/devrel-demos/data-analytics/governance-context/terraform
terraform destroy -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approve

Gemini CLI uzantısını kaldırın ve yerel dosyaları silin

gemini extensions uninstall dataplex
cd ~
rm -rf ~/devrel-demos