Müşterilerimiz İletişim EN

Veri Ekipleri için Looker Geliştirme Rehberi: En İyi Uygulamalar

Looker projelerini kurarken ve sürdürürken, sorunsuz ve ölçeklenebilir bir yapı ile karmaşık ve dağınık bir yapı arasındaki fark genellikle ilk günden doğru adımları atmaya bağlıdır. İster Looker geliştiricisi olun, ister veri mühendisliği ekibinde görev alın; en iyi uygulamaları hayata geçirmek, maliyetli hatalardan kaçınmanıza, kodunuzu sürdürülebilir kılmanıza ve tutarlı, güvenilir içgörüler üretmenize olanak tanır.


Bu yazıda altı kritik alanı ele alacağız: LookML Projesi ve Git Entegrasyonu, Boyut (Dimension) ve Ölçüm (Measure) Modelleme, Kod Düzeni ve Okunabilirlik, Explore Modelleme ve Join’ler, Türetilmiş Tablolar, Önbellekleme ve Veri Grupları.


💡 Daha önce yayınladığımız Looker konulu yazıları incelemek için buraya tıklayın.


1. LookML Projesi ve Git Entegrasyonu

Looker’ın Git entegrasyonu ise yalnızca bir kolaylık değil. LookML projelerinde versiyon kontrolü ve ekip içi işbirliğinin temel taşıdır. Peki bundan en iyi şekilde nasıl yararlanabilirsiniz?


  • Bir proje = bir Git reposu
    LookML projeniz ile ona özel Git reposunu bire bir eşleyin. Bu, versiyon kontrolünü basitleştirir ve merge çakışmalarını (conflict) azaltır.


💡 LookML Projesi: Bir LookML projesi, Looker ortamınızı tanımlayan views, models, dashboards gibi LookML dosyalarının toplamıdır. Yani Looker veri modelinizin kod tabanıdır.


💡 Git Reposu: LookML projenizin kodunun saklandığı ve versiyonlandığı yerdir. Looker’da birlikte çalışma, geri alma ve versiyon kontrolünü sağlar.



  • Push etmeden önce her zaman pull yapın
    Geliştirme modunda, düzenleme yapmadan önce en son değişiklikleri canlı ortamdan çekin. Bu, tüm dosyaların en güncel sürümüyle çalışmanızı sağlar.


💡 Geliştirme Modu (Development Mode): Looker’da, LookML üzerinde güvenle değişiklikler yapabileceğiniz ve test edebileceğiniz kişisel bir çalışma alanıdır. Canlı ortamı etkilemez.



  • Anlamlı commit mesajları yazın
    Yaptığınız değişiklikleri açıklayan kısa bir yorum, sonradan saatlerce sürebilecek kafa karışıklıklarını önleyebilir. Net ve açıklayıcı olun.

  • Dağıtmadan önce inceleyin
    Yaptığınız değişiklikleri canlı ortama göndermeden önce Explore’da test edin. Bu, hataları erken yakalamanıza yardımcı olur.


💡 Explore: Explore, Looker’daki kullanıcı arayüzüdür. LookML modellerinize dayanarak veri sorgulayabilir ve canlı ortama dağıtmadan önce yaptığınız değişiklikleri kontrol edebilirsiniz.



  • Proje Sağlığı (Project Health) kontrollerini çalıştırın
    Dağıtımdan önce Looker’ın Proje Sağlığı testlerini çalıştırın. Böylece bozuk içerikler veya performans sorunlarından kaçınırsınız.


💡 Proje Sağlığı Testleri: Looker’daki yerleşik doğrulamalardır. LookML’inizdeki yaygın sorunları (sözdizimi hataları, bozuk referanslar, eksik alanlar vb.) tarar.



2. Boyut (Dimension) ve Ölçüm (Measure) Modelleme

Modelleme, LookML’in esnekliğini en çok gösterdiği yerdir. Ancak tutarsız adlandırmalar, sabit kodlu (hard-coded) mantık veya zayıf yapılandırmalar gelecekte baş ağrılarına neden olabilir. Modellemenizi temiz ve ölçeklenebilir tutmak için şu uygulamaları izleyin:


  • ${TABLE} yerine ${field_name} kullanın
    Mevcut boyutlara dayalı yeni boyutlar oluştururken, bunlara ${field_name} ile gidin. Bu, sabit kodlanmış sütun adlarından kaçınılmasını ve yeni alanlarınızın tüm dönüşümleri veya mantığı devralmasını (inheritance) sağlar.

Örnek:


dimension: full_name{
     sql: concat(${first_name}, " ", ${last_name}) ;;
     }



💡 ${field_name}: Aynı LookML modelindeki başka bir alanı referans alır, mantığını veya dönüşümlerini devralır.


💡 ${TABLE}: View’un temel SQL tablosunu referans alır. ${field_name} yerine kullanıldığında sabit kodlu mantığa yol açabilir.



  • Zaman boyutlarında gereksiz adlardan kaçının
    dimension_group: type: time için, adlandırmaya “date” veya “time” eklemeyin. Basit ve temiz tutun.


💡 Boyut Grubu (Dimension Group): Tek bir sütundan oluşturulan ilişkili alanların (boyutların) kümesidir. (Örnek: Bir tarih alanından oluşturulan gün, hafta, ay gibi birden fazla zaman aralığı)



  • Süre boyut gruplarını kullanın
    Tarih farklarını sql içinde manuel hesaplamak yerine, type: duration boyut grubu oluşturun. Bu, iş kullanıcılarına esnek zaman aralıkları sunar ve kaynak değiştiğinde daha iyi adapte olur.

  • Tutarlı bir adlandırma standardı kullanın
    Alan adlarında küçük harfler ve alt çizgi tercih edin (Örnek: full_name, total_sales). LookML büyük ve küçük harfe duyarlıdır, bu yüzden tutarlılık önemlidir.

  • Noktalı virgülleri koruyun
    sql parametresi içindeki ifadelerin sonunda her zaman iki ;; bırakın. Bu, SQL’in nerede bittiğini belirtir.

  • Yaparken kontrol edin
    Geliştirme modunda bir Explore sekmesini açık tutun. Her değişiklikten sonra yenileyin ve beklendiği gibi çalıştığını hızlıca doğrulayın.

3. Kod Düzeni ve Okunabilirlik

LookML kodunuzu temiz ve düzenli tutmak, ekibinizin bakım yapmasını ve ölçeklendirmesini kolaylaştırır.


  • Alanları mantıksal olarak sıralayın
    Zorunlu olmasa da, yeni boyut veya ölçümleri view dosyasında mevcut olan boyut ve ölçümlerin ardına yerleştirin. Böylece ilgili alanlar bir arada kalır.

  • Net pano (dashboard) dosya adları kullanın
    LookML pano dosyaları için name.dashboard.lookml konvansiyonunu izleyin. Böylece hızlı ve tutarlı şekilde tanımlayabilirsiniz.

4. Explore Modelleme ve Join’ler

Explore’lar Looker’ın kalbinde yer alır. Yapılarının doğru kurgulanması hem performansı hem de kullanılabilirliği doğrudan etkiler.


  • Temel view’dan doğrudan join tercih edin
    Eğer mümkünse, dolaylı join’lerin performans maliyetlerinden kaçınmak için temel view’daki bir join anahtarını kullanın.

  • Her zaman bir primary key tanımlayın
    Explore’da join edilmese bile, her view’da primary_key: yes olarak tanımlayın. Bu, simetrik toplamayı (symmetric aggregation) etkinleştirir.


💡 primary_key: Bir view’daki benzersiz satır tanımlayıcısını (unique row identifier) belirleyen LookML özelliğidir. Bu, farklı detay düzeyine sahip, join edilmiş view’larda bile doğru sorgu sonuçları sağlayan simetrik toplama gibi özellikleri etkinleştirir.


💡 Simetrik Toplama: Birleştirilmiş görünümlerin (joined view) farklı ayrıntı düzeylerine sahip olması durumunda bile ölçümlerin doğru şekilde toplanmasını sağlayan bir Looker optimizasyonudur.



  • İlişkileri doğru belirtin
    Her join için relationship parametresini doğru ayarlayın. Böylece doğru toplama sonuçları elde edersiniz.


💡 relationship Parametresi: Bir join’in Explore’da nasıl davranacağını tanımlar ( one_to_one, many_to_one, one_to_many, many_to_many). Yanlış ayarlandığında yanlış toplama sonuçlarına neden olabilir.



5. Türetilmiş Tablolar

Türetilmiş tablolar güçlü olabilir, ancak gelecekte sorun yaşamamak için disiplinli bir kurulum gerektirir.


Türetilmiş SQL Tablolar için (SQL Runner aracılığıyla):

  • Yeni view dosyasını views klasörüne taşıyın.
  • Test için kullanılan LIMIT ifadelerini kaldırın.
  • Otomatik oluşturulan ve gereksiz olan count ölçümlerini gizleyin veya tamamen kaldırın.
  • View için bir primary_key tanımlayın (ör. order_facts içinde order_id için primary_key: yes).


💡 Türetilmiş SQL Tablo (SDT): Veritabanınızdaki fiziksel bir tablo yerine özel SQL sorgularıyla Looker’da oluşturulan bir view.



Yerel Türetilmiş Tablolar (Native Derived Table – NDT) için:

  • Her NDT için yeni bir view oluşturun.
  • Yeni view dosyasını views klasörüne taşıyın.
  • Otomatik oluşturulan view adını dosya adıyla eşleşecek şekilde yeniden adlandırın.
  • Döngüsel bağımlılıkları önlemek için model dosyası referansını yorum satırına yazın.


💡 Yerel Türetilmiş Tablo (NDT): Ham SQL yazmadan, doğrudan LookML içinde derived_table parametreleriyle oluşturulan bir view.



Kalıcı Türetilmiş Tablolar (Persistent Derived Table – PDT) için:

  • PDT’ler için veritabanınızda özel bir şema kullanın (ör. X_scratch).
  • Veri grupları zaten tanımlıysa datagroup_trigger kullanmayı tercih edin.
  • persist_for kullanıyorsanız, bunu sql_trigger_value ile eşleştirin veya veri güncelliği için tek başına da kullanabilirsiniz.
  • Looker, aynı datagroup_trigger ile zincirlenen PDT’ler için bağımlılık sırasını otomatik olarak yönetir.
  • Daha hızlı sorgu performansı için PDT’lere indeksleme ekleyin.


💡 Kalıcı Türetilmiş Tablo (PDT): Daha hızlı sorgular için veritabanınızda saklanan türetilmiş tablolardır. PDT’ler bir programa göre veya datagroup tetikleyicileriyle yenilenebilir.



6. Önbellekleme ve Veri Grupları

Performans için önbellekleme kritik önem taşır. Veri grupları ise bunu etkili şekilde kontrol etmede kilit rol oynar.


  • Veri gruplarında her iki parametreyi de kullanın
    Güvenilir bir önbellekleme ve geri dönüş mekanizması için hem max_cache_age hem de sql_trigger tanımlayın.


💡 max_cache_age: Looker’ın sorgu sonuçlarını yenilemeden önce önbellekte tutacağı maksimum süreyi belirleyen bir datagroup parametresidir.


💡 sql_trigger: Yeni veri olup olmadığını kontrol etmek için bir SQL sorgusu çalıştıran, sonuç değiştiğinde önbellek yenilemesini tetikleyen bir datagroup parametresidir.



  • PDT’leri veri gruplarına bağlayın
    Verilerin güncel kalması için PDT’lere datagroup_trigger parametresini uygulayın.


💡 datagroup_trigger: Bir PDT’nin yenilenme planını belirli bir veri grubunun ayarlarına bağlayan LookML parametresidir.



  • Dinamik kullanıcı adlarının sınırlarını bilin
    Bağlantınız dinamik kullanıcı adları kullanıyorsa (ör. BigQuery OAuth), veri grupları ve PDT’ler desteklenmez. Bu durumda, Explore sorgularını belirli bir süre için önbelleğe almak amacıyla persist_for kullanın.

Kullanım Senaryosu: Looker’da Bölgesel Satış Performansı Panosu Oluşturma



Senaryo: Şirketiniz birden fazla ülkede faaliyet gösteriyor ve satış liderlik ekibi Looker’da bölgesel satış performansı panosu istiyor. Bu pano yöneticilere şunları sağlamalı:

  • Bölgeye göre toplam satışları ve ortalama sipariş değerini görüntüleme
  • Aylık performans karşılaştırma
  • Belirli ürün kategorilerini ayrıntılı inceleme
  • Şirketin bulut veri ambarından verileri günlük yenileme

Veri modeli üç ana kaynağı birleştirecek:

  1. Siparişler (işlem düzeyinde veri)
  2. Müşteriler (müşteri profilleri)
  3. Ürünler (ürün kataloğu ve kategoriler)



Nasıl Yaklaşmalı


1. LookML Projesi ve Git Entegrasyonunu Kurun

  • Bu pano için özel bir LookML projesi oluşturun ve kendi Git reposuna eşleyin.
  • Diğer geliştiricilerin yaptığı değişiklikleri ezmemek için işe başlamadan önce her zaman canlı ortamdan çekin.

2. View ve Explore’ları Modelleyin

  • Siparişler görünümünde (Orders view), order_id üzerinde primary_key: yes tanımlayarak simetrik toplamayı sağlayın.
  • Sabitlenmiş SQL’lerden kaçınmak için türetilmiş alanlar (ör. müşteriler için full_name) oluştururken ${field_name} referanslarını kullanın.
  • order_date gibi tarih alanları için bir dimension group of type: time (ör. gün, hafta, ay) oluşturun, böylece iş kullanıcıları sonuçları esnek bir şekilde gruplayabilir.

3. Veriyi Join Edin

  • Explore içinde, Müşteriler ve Ürünler view‘larını doğrudan Siparişler’den (base view) join edin, başka bir tablo üzerinden zincirleme join yapmayın. Bu performansı iyileştirir.
  • relationship parametresini doğru ayarlayın (ör. Siparişler → Müşteriler için many_to_one).

4. Türetilmiş Tablolarla Optimize Edin

  • Aylık satış toplamlarını önceden bölge bazında toplamak için bir Kalıcı Türetilmiş Tablo (PDT) kullanın.
  • PDT yenilenmesini, hem max_cache_age hem de sql_trigger kullanarak günlük veri kontrolü yapan bir datagroup_trigger’a bağlayın.
  • PDT’yi veritabanınızda özel bir şemaya yerleştirin.

5. Panoyu Oluşturun

  • Dosyayı en iyi uygulama formatına göre adlandırın: regional_sales_performance.dashboard.lookml.
  • Ölçümleri ve boyutları view dosyalarında mantıksal olarak gruplandırın. Bu sayede, sonraki geliştirici onları kolayca bulabilir.

6. Test Edin ve Yayınlayın

  • Alanları oluştururken doğrulamak için geliştirme modunda bir Explore sekmesini açık tutun.
  • Bozuk referansları veya eksik alanları yakalamak için Proje Sağlığı testlerini çalıştırın.
  • Canlıya almadan önce sonuçları Explore’da gözden geçirin.


⭐⭐⭐


Looker güçlü bir platformdur, ancak gerçek potansiyeli disiplinli ve tutarlı geliştirme uygulamalarından gelir. Git entegrasyonu ve alan modellemeden Explore join’lerine, türetilmiş tablolardan önbellekleme stratejilerine kadar her en iyi uygulama, daha temiz, daha hızlı ve daha ölçeklenebilir bir analitik ortamı oluşturur. Ekibiniz bu yaklaşımları standartlaştırarak, hem bugün hem de veri ihtiyaçlarınız geliştikçe, daha verimli çalışabilir, hataları azaltabilir ve kurumunuzun güvenebileceği içgörüler sunabilir.


Looker geliştirmelerinizi bir sonraki seviyeye taşımaya hazırsanız, hemen bizimle iletişime geçin. Sizi bu en iyi uygulamalarla buluşturalım ve işinizle birlikte ölçeklenen güçlü bir analitik temel oluşturmanıza destek olalım.


Yazan: Umniyah Abbood

Yayınlanma Tarihi: 19.08.2025



Kategoriler

Tümü Açık Kaynak (27) Android Anthos Çekirdekten Yetişenler Çevik Metodoloji Çocuklar ve Teknoloji (2) Ödeme Sistemleri (2) Üretim Sektörü (5) B2B Pazarlama (5) Bamboo Büyük Ölçekli Şirketler (2) BT Bulut (152) Buluta Geçiş (19) Bulutta Yerel Yazılım Geliştirme (4) C++ Chef ClickHouse Dayanıklılık DevOps (13) Dijital Pazarlama (11) Dijital Yerli Firmalar (3) Django (2) E-ticaret (7) Enerji Sektörü Eğitim Sektörü (7) Felaket Kurtarma (2) Finansal Hizmetler (4) FinOps (3) Firebase (10) Flutter Güvenlik (14) Git Golang (2) Google Cloud (102) Google Labs (13) Google Maps (2) Google Workspace (23) Helm Hibrit ve Çoklu Bulut (8) JavaScript Kadınlar ve STEM (3) Kamu Sektörü (2) KOBİ (5) Kubernetes (5) Kullandığımız Teknolojiler (24) Kullanıcı Arayüzü ve Kullanıcı Deneyimi Linux (6) Looker (7) MariaDB Mobil Uygulama Geliştirme (2) MySQL OpenStack (4) Oyun Sektörü (15) Perakende (12) PostgreSQL Proje Metodolojileri Python (7) Sadakat Programı (5) Sağlık ve Yaşam Bilimleri Sektörü (3) Sürdürülebilirlik (5) Sektöre Özgü Bulut Çözümleri (39) Selenium (2) Sigorta Sektörü Sistem Mimarisi (7) Tüketici Ürünleri Tedarik Zinciri ve Lojistik (3) Teknoloji, Medya, Telekom (3) Terraform Test Etme (4) Turizm ve Eğlence (4) Ulaşım Sektörü (2) Uygulama Modernizasyonu Veri Analitiği (35) Veri Bilimi (2) Veri Depolama Veri Görselleştirme (7) Veri Tabanı (4) Versiyon Kontrolü Yapay Zeka - Makine Öğrenmesi (133) Yasal Uyum Yazılım Geliştirme (9) Yazılım Tarihi (3) Yazılımcı Deneyimi (8) İK Uygulamaları (9) İnşaat Sektörü İşe Alım (7)
Daha Fazla Kategori Göster >> Kategorileri Gizle >>

Kartaca sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya Devam Edin