BigQuery'deki Etkileşimli Analytics'e giriş

1. Giriş

Verilerden analiz elde etmek genellikle önemli ölçüde zaman, çaba ve derin SQL uzmanlığı gerektirir. Bu codelab'de, sohbet verisi aracıları aracılığıyla anında yapay zeka destekli analizler sunan yeni bir platform olan BigQuery'nin Aracı Kataloğu'nu keşfedeceksiniz.

Seçilmiş bir veri aracısı oluşturarak basit metinden SQL'e dönüştürme işleminin ötesine geçeceksiniz. Son derece doğru sonuçlar elde etmek için temsilciyi işletme bağlamı, sistem talimatları ve doğrulanmış sorgularla nasıl zenginleştireceğinizi öğreneceksiniz. Son olarak, bu temsilciyi kuruluşunuzdaki diğer kullanıcıların kullanabilmesi için yayınlarsınız.

Ön koşullar

  • Google Cloud hakkında temel düzeyde bilgi sahibi olmak

Neler öğreneceksiniz?

  • BigQuery Agent Catalog'da gezinme
  • Özel aracı oluşturma ve bilgi kaynaklarını tanımlama
  • Anlamsal meta veriler oluşturmak için Gemini'ı kullanma
  • Aracıya yol göstermek için Sistem Talimatları ve Doğrulanmış Sorgular ekleme
  • Ajanları yayınlama ve paylaşma

Gerekenler

  • Google Cloud hesabı ve Google Cloud projesi
  • BigQuery ve SQL hakkında temel bilgiler
  • Chrome gibi bir web tarayıcısı

2. Kurulum ve şartlar

Proje seçme

  1. Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Bu bilgiyi istediğiniz zaman güncelleyebilirsiniz.
  • Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğinize (genellikle PROJECT_ID olarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adım tamamlandıktan sonra değiştirilemez ve proje süresince geçerli kalır.
  • Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırılmayı önlemek için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.

3. Başlamadan önce

Kendinize gerekli rolleri verin

Projenin IAM sayfasına gidin ve kendinize Gemini Data Analytics Veri Aracısı Sahibi rolünü verin:

1d3874c1bc28d81d.png

Bu rol, projedeki tüm veri aracılarını oluşturma, düzenleme, paylaşma ve silme izni verir.

Gerekli API'leri etkinleştirme

BigQuery > Aracıları'na gitmek için kenar çubuğu gezinme menüsünü veya sayfanın üst kısmındaki arama menüsünü kullanın.

Gemini ile Data Analytics API'yi etkinleştirin'i tıklayın:

4bc781d1a83ba367.png

Hem BigQuery'de Gemini API hem de Google Cloud için Gemini API'yi etkinleştirin:

71678b9b8900a7a6.png

Yeni aracı sayfasını görmeniz gerekir:

23935c00cd4b23c1.png

4. Temsilci oluşturun

Google Trendler Uluslararası Kamu veri kümesini kullanarak ilk veri aracınızı oluşturalım. Bu veri kümesi, uluslararası düzeyde hangi arama terimlerinin trend olduğu ve bu ilgi alanlarının geçmişte nasıl karşılaştırıldığı hakkında sorular sormak için kullanışlıdır.

Temsilcinize bir ad ve kısa bir açıklama vererek başlayalım. Bu açıklama, tamamen diğer kullanıcıların temsilcinin amacını anlaması için kullanılır.

Temsilci Adı

Google Trends Agent

Ajan Açıklaması

Data agent for the Google Trends International Top Terms public dataset

Bilgi Kaynakları

Şimdi bilgi kaynaklarını ekleyin. Bilgi kaynağı, ajanın soruları yanıtlarken kullanabileceği bir BigQuery tablosu, görünümü veya UDF'dir.

Bu demo için işleri basit tutmak adına yalnızca bir tablo ekleyin. Ancak daha karmaşık veri senaryolarını yönetmek için her temsilciye en fazla 50 bilgi kaynağı ekleyebileceğinizi unutmayın.

Arama kutusuna aşağıdaki tabloyu girin, kutuyu işaretleyin ve Ekle'yi tıklayın:

bigquery-public-data.google_trends.international_top_terms

8b84bd4c4227637d.png

Yapılandırılmış Bağlam

Veri aracısının doğruluğunu artırmak için tabloya ve sütunlara yapılandırılmış bağlam ekleyin. Customise'i tıklayın:

f802527c7d72ae63.png

Gemini, açıklamalar için otomatik olarak öneriler oluşturur. Tablo açıklaması'nın yanındaki Kabul et'i tıklayın:

cc02e10c0c74bf4b.png

Açıklamaları tüm sütunlara uygulamak için Tüm satırları seç'i işaretleyin ve Önerileri kabul et'i tıklayın:

f811458ff0240c.png

Değişiklikleri kaydetmek ve Aracı Düzenleyici'ye dönmek için sayfanın alt kısmındaki Güncelle'yi tıklayın.

Talimatlar

Ajan talimatları iletişim kutusunda, veri kaynaklarını yorumlaması ve sorgulaması için ajana ek rehberlik sağlayabilirsiniz. Bunlardan bazıları:

  • Eş anlamlılar: Önemli alanlar için alternatif terimler.
  • Temel alanlar: Analiz için en önemli alanlar.
  • Hariç tutulan alanlar: Veri temsilcisinin kullanmaması gereken alanlar.
  • Filtreleme ve gruplandırma: Temsilcinin verileri filtrelemek ve gruplandırmak için kullanması gereken alanlar.
  • Birleştirme ilişkileri: İki veya daha fazla tablonun ortak alanlara göre birleştirilme şekli.

Aşağıdaki talimatları kopyalayıp yapıştırın:

### System Instruction

* You are an expert data analyst for the Google Trends International public dataset.
* Always filter on yesterday's refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY).
* If yesterday returns no data, filter on 2 days ago's refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 2 DAY).
* Default to country-level results (one row per term).
* "Top" queries must deduplicate snapshot rows.
* Only include week or score when the user explicitly asks for trends over time.
* This is an international dataset and does not include any data for the United States.

### Additional Descriptions

#### 1. Core model:

* refresh_date selects the daily Top-25 term set.
* week + score are historical weekly values attached to those terms.
* Filtering week does not change which terms appear.

#### 2. Deduplication rule (critical):

* Snapshot rows repeat across weeks and regions.
* For "top" queries, always GROUP BY term (country-level) and compute rank as MIN(rank).

#### 3. Defaults:

* Country-level results only.
* Use region_code only if the user explicitly asks for regions.
* Limit results unless the user asks otherwise.

#### 4. Time series usage:

* Only include week or score when the user asks for trends over time, historical context, or week-over-week score changes.

#### 5. Field guidance:

* Prefer country_code or region_code for filters.
* country_name / region_name are for display only.
* score is normalized; compare trends within a term, not across terms.

Doğrulanmış Sorgular

Daha önce altın sorgular olarak bilinen doğrulanmış sorgular, yanıt doğruluğunu artırmak için ajana referans olarak kullanılır. Bu görevler, temsilcinin yanıt yapısını şekillendirir ve kuruluşunuzun kullandığı iş mantığını temsilciye öğretmeye yardımcı olur.

Temsilcinize iki örnek ekleyelim. Sorgu ekle'yi tıklayın ve aşağıdaki soruyu ve sorguyu kopyalayıp yapıştırın:

1. Soru:

What are the top search terms in the UK right now?

Sorgu 1:

SELECT term, MIN(rank) AS rank
FROM `bigquery-public-data.google_trends.international_top_terms`
WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
  AND country_code = 'GB'
GROUP BY term
ORDER BY rank
LIMIT 25;

Bu sorguyu kaydetmeden önce geçerli olduğundan emin olmak için çalıştıralım.

e3fb570a4109e93c.png

Bana iyi görünüyor. Doğrulanmış sorguyu kaydetmek için Ekle'yi tıklayın.

Daha karmaşık bir kullanım alanı için bir örnek daha ekleyelim. Sorguları yönet'i tıklayın ve aşağıdakileri ekleyin:

2. Soru:

Show the last 12 weeks of interest for the current top 5 terms in Auckland.

Cevap 2:

WITH top5 AS (
  SELECT term, MIN(rank) AS rank
  FROM `bigquery-public-data.google_trends.international_top_terms`
  WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
    AND country_code = 'NZ'
    AND region_code = 'NZ-AUK'
  GROUP BY 1
  ORDER BY 2
  LIMIT 5
),
series AS (
  SELECT term, week, score,
    ROW_NUMBER() OVER (PARTITION BY term ORDER BY week DESC) AS rn
  FROM `bigquery-public-data.google_trends.international_top_terms`
  WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
    AND country_code = 'NZ'
    AND region_code = 'NZ-AUK'
    AND term IN (SELECT term FROM top5)
)
SELECT week, term, score
FROM series
WHERE rn <= 12
ORDER BY 1 DESC, 3

Bir sonraki bölüme geçmeden önce Gemini tarafından oluşturulan önerilere göz atalım:

b52489d21f503a76.png

Burada, önerilen doğrulanmış sorgulardan bazılarını görebilirsiniz. Gelecekte yeni bir temsilci oluştururken bu, harika bir başlangıç noktasıdır. Eklediğiniz tüm sorguları doğruladığınızdan emin olmanız yeterlidir.

Sözlük

Sözlüğe bir terim ekleyelim. İşletmeniz Dataplex kullanıyorsa bu terimler doğrudan Dataplex Universal Catalog'daki iş sözlüğünden içe aktarılır.

Terim ekle'yi tıklayın ve aşağıdaki örneği kopyalayıp yapıştırın:

Süre:

refresh_date

Tanım:

Snapshot date that selects the daily Top 25 term set. All rows for that date belong to the same "what's trending now" snapshot. Attach Historical week and score values after this selection.

Eş anlamlılar:

today, latest, current, now, recent

Ardından Ekle'yi ve Kaydet'i tıklayın.

33b4a74fcde504d5.png

Aracı ayarları

Ayarlar bölümünde Etiketler ve Faturalandırılan Maksimum Bayt'ı yapılandırabilirsiniz.

Etiketler

Etiketler, Google Cloud kaynaklarını mantıksal gruplar halinde düzenlemek için kullanılan anahtar/değer çiftleridir. Bu laboratuvarın odak noktasını korumak için etiketleri boş bırakın.

Faturalandırılan Maksimum Bayt

Yanlışlıkla pahalı sorgular oluşturmadığınızdan emin olmak için sorgu başına faturalandırılan maksimum bayt sayısına bir sınır belirleyelim. Temsilcinin sorgusu bu sınırın üzerinde bayt işlerse sorgu tamamlanmaz ve ücretlendirilmez. Aşağıdaki değeri girin:

10000000000

10.000.000.000 bayt yaklaşık 9,3 GB'tır. Bir değer belirtmezseniz faturalandırılan maksimum baytlar varsayılan olarak projenin günlük sorgu kullanımı kotası olur.

5. Aracınızı kaydetme ve paylaşma

Önizleme

Artık hazırız. Devam etmeden önce temsilcinizi test edelim. Ekranın sağ tarafında, yapılandırmada düzenlemeler yaparken aracıyı dinamik olarak test edebilirsiniz. Önizleme, değişiklikleri kaydetmeden veya yayınlamadan sağladığınız yeni meta verileri otomatik olarak kullanır.

Temsilcinin hangi verilere erişebildiğini soralım. Kendi cümlelerinizle birkaç soru sormaktan çekinmeyin:

b2679cc7c6c926b2.png

Kaydet

Birkaç istemi test ettikten sonra Kaydet'i ve ardından aracıyı Yayınla'yı tıklayın:

56a45347d496dd42.png

Yayınlanan temsilci, BigQuery Studio, Etkileşimli Analytics API ve Looker Studio Pro'da (lisanslamaya tabidir) kullanılabilir:

a4fbeb3011d409f5.png

Gelecekteki sürümlerde ek yüzeyler ve entegrasyonlar için destek sunulması planlanmaktadır.

Paylaş

Aracının yayınlandığını onaylayan bir mesaj görürsünüz. Bu temsilciyi artık diğer kullanıcılarla paylaşabilirsiniz.

bdd4ee4be02c26d8.png

Bir temsilciyi diğer kullanıcılarla paylaştığınızda, onlara belirli bir rol atayarak erişim düzeylerini kontrol edebilirsiniz. Bu roller, ortak çalışanların yalnızca aracınızı görüntüleyip görüntüleyemeyeceğini veya yapılandırmasını düzenleme ve yönetme yetkisine sahip olup olmadığını belirler.

Bu rollerin iki farklı düzeyde uygulanabileceğini unutmamak önemlidir:

  • Proje Düzeyi: Bir rolün proje düzeyinde verilmesi, kullanıcıya ilgili Google Cloud projesindeki tüm aracıların izinlerini sağlar.
  • Aracı düzeyi: Daha ayrıntılı kontrol için belirli bir aracıya roller verebilirsiniz. Bu özellik, bir kullanıcının projedeki diğer veri aracılarını görmeden belirli bir veri aracına erişmesini istediğinizde yararlıdır.

Etkileşimli Analytics için önceden tanımlanmış roller şunlardır:

  1. Gemini Data Analytics Veri Aracısı Sahibi (roles/geminidataanalytics.dataAgentOwner) - Tüm veri aracılarını oluşturma, düzenleme, paylaşma ve silme
  2. Gemini Veri Analizi Veri Aracısı Oluşturucu (roles/geminidataanalytics.dataAgentCreator): Kendi veri aracılarınızı oluşturma, düzenleme, paylaşma ve silme
  3. Gemini Data Analytics Data Agent Editor (roles/geminidataanalytics.dataAgentEditor): Veri aracılarında sohbet ve düzenleme erişimi
  4. Data Analytics Data Agent User (roles/geminidataanalytics.dataAgentUser): Veri aracılarına sohbet ve görüntüleme erişimi
  5. Gemini Veri Analizi Veri Aracısı Görüntüleyicisi (roles/geminidataanalytics.dataAgentViewer): Veri aracılarına görüntüleme (salt okuma) erişimi

6. Temsilciyle sohbet oluşturun

Paylaş sekmesinden çıkıp yeni bir görüşme oluşturalım:

d7a824ed0aaeaf12.png

Sohbet oluştur'u tıkladığınızda yeni ve başlıksız bir sohbet oluşturulur.

İngiltere'de hangi terimlerin trend olduğunu soralım (İstediğiniz bir konumla değiştirebilirsiniz):

Based on the top 10 terms in England, how did they trend for the past 3 months?

Yanıt akışını açma

Veri temsilcisi, soruları yanıtlarken genellikle aynı yanıt akışını izler:

  1. Akıl yürütme: Temsilci önce istemi "düşünür". Temsilcinin karar verme süreciyle ilgili adım adım analizleri görüntülemek için Gerekçeyi göster düğmesini genişletin.
  2. Özet: Aracı, sorgunun, sonuç raporunun ve görselleştirmenin üst düzey bir özetini oluşturur.
  3. Oluşturulan SQL: SQL'i incelemek için İşte sorgu... bölümünü genişletin. Sorguyu BigQuery Studio'da manuel olarak hassaslaştırmak için Düzenleyicide aç'ı tıklayın.
  4. Veri Sonuçları: Ajan, sorgu sonuçlarını net bir tablo biçiminde sunuyor.
  5. Görselleştirme: Kısa bir açıklamanın yanında grafik gösterilir. Aracı, verileriniz için en iyi görselleştirme türünü (ör. çok serili bir çizgi grafik) otomatik olarak çıkarır.
  6. Veri Analizleri: Aracı, sonuçlarda bulunan temel trendleri ve önemli noktaları özetler.
  7. Takip Soruları: Son olarak, temsilci analizinize devam etmenize yardımcı olacak alakalı takip soruları önerir.

ee07f83cdbd20de1.png

BigQuery ML desteği

Devam edelim ve veri temsilcisinin bu sonuçlara göre tahmin yapıp yapamayacağını soralım. Bu, gelecekteki puanları tahmin etmek için BigQuery ML işlevlerinden yararlanır.

Aşağıdaki istemi girin ("monopoly board" ifadesini sorgunuzla alakalı bir terimle değiştirdiğinizden emin olun):

Can you predict and visualize how monopoly board will trend in the next 4 weeks?

Bir zaman serisini tahmin etmek için AI_FORECAST kullanıldığını görebilirsiniz. Ağustos 2021'de büyük bir artış görmeniz ilginç olsa da bu artış, Londra'daki Monopoly Lifesized eğlence merkezinin açılışıyla aynı döneme denk geliyor.

441a92d19f7d15e0.png

7. Aracı Kataloğu'nu keşfetme

Toparlamadan önce Temsilci Kataloğu'nu inceleyelim. Pencerenin üst kısmındaki Agent Catalog'u (Temsilci Kataloğu) tıklayın:

59acded82548bd.png

Bu sayfa, veri aracısı yönetimi için merkezi hub'ınız olarak işlev görür ve aşağıdaki bölümler halinde düzenlenmiştir:

  • Temsilcilerim: Şu anda yayınlanmış olan temsilcileriniz.
  • Taslak temsilcilerim: Kaydettiğiniz ancak henüz yayınlamadığınız yapılandırmalar.
  • Kuruluşunuzdaki diğer kullanıcıların paylaştıkları: Erişim izninizin olduğu iş arkadaşlarınız tarafından oluşturulan temsilciler.
  • Google'ın örnek temsilcileri: Başlamanıza yardımcı olacak önceden yapılandırılmış örnekler.

Yönettiğiniz tüm aracıların yapılandırmalarını düzenleyebilir, aracıları çoğaltabilir ve paylaşım izinlerini yönetebilirsiniz.

8. Sonuç

Tebrikler, Etkileşimli Analytics veri aracısını başarıyla oluşturdunuz. Daha fazla bilgi edinmek için referans materyallerine göz atın.

Referans materyalleri