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}) ;; }
|
|
💡 💡 |
- Zaman boyutlarında gereksiz adlardan kaçının
dimension_group: type: timeiç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ısqliçinde manuel hesaplamak yerine,type: durationboyut 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
sqlparametresi 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çinname.dashboard.lookmlkonvansiyonunu 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’daprimary_key: yesolarak tanımlayın. Bu, simetrik toplamayı (symmetric aggregation) 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çinrelationshipparametresini 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 ( |
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ı
viewsklasörüne taşıyın. - Test için kullanılan
LIMITifadelerini kaldırın. - Otomatik oluşturulan ve gereksiz olan count ölçümlerini gizleyin veya tamamen kaldırın.
- View için bir
primary_keytanımlayın (ör.order_factsiçindeorder_idiçinprimary_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ı
viewsklasö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 |
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_triggerkullanmayı tercih edin. persist_forkullanıyorsanız, bunusql_trigger_valueile eşleştirin veya veri güncelliği için tek başına da kullanabilirsiniz.- Looker, aynı
datagroup_triggerile 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 hemmax_cache_agehem desql_triggertanımlayın.
|
💡 💡 |
- PDT’leri veri gruplarına bağlayın
Verilerin güncel kalması için PDT’leredatagroup_triggerparametresini uygulayın.
|
💡 |
- 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ıylapersist_forkullanı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ı:
Veri modeli üç ana kaynağı birleştirecek:
|
Nasıl Yaklaşmalı1. LookML Projesi ve Git Entegrasyonunu Kurun
2. View ve Explore’ları Modelleyin
3. Veriyi Join Edin
4. Türetilmiş Tablolarla Optimize Edin
5. Panoyu Oluşturun
6. Test Edin ve Yayınlayın
|
⭐⭐⭐
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

Benzer Yazılar
Google Vids ile İş Yerinde Video Tabanlı Hikâye Anlatımında Yeni Dönem
Oca 27, 2026 | Google CloudBulut ve Yapay Zeka ile Yaşam Bilimlerinde İlaç Keşfini Hızlandırma
Oca 12, 2026 | BulutHızlı Konseptten Stüdyo Kalitesinde Çıktıya: Nano Banana ve Nano Banana Pro Karşılaştırması 🍌
Oca 8, 2026 | Google CloudChirp 3: Yapay Zeka Tabanlı Ses ve Deşifre Teknolojisinde Yeni Dönem
Ara 16, 2025 | Google CloudHiper Bilgisayardan TPU’ya: Google’ın Yapay Zeka Altyapısı Nasıl Çalışır?
Ara 11, 2025 | Google CloudÖne Çıkan Yazılar
Değişen Dünyanın Dili: VUCA ve BANI
Haz 28, 2022 | Dijital Pazarlama
Türkiyeli Yazılımcılara Aforizmalar
May 14, 2020 | Yazılım Geliştirme
SELinux Nedir? Varsayılan Güvenlik Politikasına Uymayan Durumlara Nasıl İzin Verilir?
Ağu 6, 2013 | Açık KaynakYapay Zeka Çalışma Arkadaşları: Google Illuminate ve NotebookLM Karşılaştırması
Kas 12, 2025 | Eğitim SektörüGoogle Haritalar API'si ile İşletmeniz için Navigasyonun Ötesinde Stratejiler
Nis 2, 2025 | Bulut