Looker ile Adım Adım Veri Görselleştirme

1. Giriş
Veri analizinin önemli aşamalarından biri, verileri etkili bir şekilde görselleştirmektir. SQL sorguları ile bir veri setini anlamak ve fikirler edinmek harika olsa da, bir görselleştirme aracı ile bir veri seti üzerinde çalışmak bize çok daha farklı bir görüş açısı kazandırabilir ve işimizi kolaylaştırabilir. Çizelgeler ve grafikler gibi görsel araçlar, veri setlerini tanımak için oldukça etkilidir.
Bu yazıda, içinde barındırdığı birçok özellik sayesinde kullanıcılarına büyük kolaylıklar sağlayan veri görselleştirme aracı Looker’dan bahsedeceğim. Örnek uygulamaya geçmeden önce, Looker ile ilgili bazı terimler ve özelliklerden bahsetmek yararlı olacaktır.
2. Looker
Looker, kullanıcıların gerçek zamanlı iş analitiği çalışmaları yapmalarına, verileri keşfetmelerine ve analiz etmelerine olanak tanıyan bir iş zekası ve büyük veri analitiği platformudur.
Looker tarayıcı tabanlı bir bulut uygulamasıdır; bir internet tarayıcısı üzerinden tanımlanan URL adresinden oturum açarak erişim sağlanabilmektedir. Ayrıca mobil uygulaması da bulunmaktadır.
Şimdi Looker ile kullanacağımız özelliklere ve kavramlara birlikte göz atalım.
2.1 Role
Looker’da her kullanıcının bir rolü bulunmaktadır. Rol, kullanıcının veya grubun Looker’daki bir model kümesi için sahip olacağı ayrıcalıkları tanımlar. Bir kullanıcının birden fazla rolü olabilir. Admin, developer, user ve viewer rolleri bulunmaktadır. Rol atamalarını “Admin” yetkisine sahip kullanıcı gerçekleştirmektedir.
Admin: Admin yetkisi, Looker instance’larının genel yönetiminden sorumlu olan kullanıcılara atanır. Bu rol; sistem yapılandırma, kullanıcı yönetimi, izinler ve diğer yönetim görevleri için kullanılır. Admin rolü, geniş bir erişim ve yönetim yetkisi sağlar. Her şeye erişim hakkına sahiptir.
Developer: Developer rolü, LookML projelerini oluşturan ve yöneten kullanıcılara atanmaktadır. Bu kullanıcılar; veri modellerini ve diğer LookML nesnelerini tanımlayabilir. Ayrıca, raporlama ortamlarını oluşturabilir ve yönetebilirler.
User: User rolü, raporları görüntüleme, filtreleme ve temel analiz görevlerini gerçekleştirme yetkisine sahip olan genel kullanıcılara atanır. Bu tip kullanıcılar, rapor oluşturamaz ya da herhangi bir değişiklik yapamaz.
Viewer: Viewer rolü, yalnızca raporları görüntüleme yetkisine sahip olan kullanıcılara atanır. Bu tip kullanıcıların veri üzerinde değişiklik yapma veya rapor oluşturma izni bulunmaz.
2.2 LookML
Anlamsal veri modelleri oluşturmak için kullanılan Looker tabanlı bir dildir. Veri setimizdeki boyutları, hesaplamaları ve veri ilişkilerini kurmak, tanımlamak için LookML kullanılmaktadır. SQL dilinden bağımsızdır ancak herhangi bir SQL ifadesini kapsül olarak kullanım imkanı sunar.
2.3 Model
Veritabanına yönelik özelleştirilmiş bir LookML portalıdır. Bir LookML projesi içerisinde birden fazla model bulunabilir. Her bir model farklı verileri farklı kullanıcılara sunabilir.
2.4 Explore
Explore, kullanıcıların sorgularını yazabileceği görünümdür. SQL ifadesindeki “FROM” olarak düşünebiliriz. Explore üzerinden veri seti üzerinde çalışma gerçekleştirilebilir.
2.5 View
View, veri setindeki alanların (dimension, measures) listesini ve bunların temel bir tabloya ya da türetilmiş (derived) tabloya olan bağlantısını tanımlar. View, genellikle bağlantı sonrası temel veritabanımızı referans verir, ancak seçime göre derived tabloyu da temsil edebilir. Bir view başka bir view ile birleştirebilir ya da aralarında bir “join” yapısı kurulabilir. Böyle bir durumda model dosyasında tanımlamak yeterli olacaktır.
2.5.1 Dimension
Dimension, veri seti içerisindeki boyutları tanımlar. View dosyası içerisinde listelenebilir ve gruplandırılabilir, ayrıca filtrelemek için kullanılabilir. Custom olarak veri seti içerisindeki dimensionlar üzerinden yeni bir dimension da oluşturulabilir.
2.5.2 Measure
Measure, veri seti içerisindeki ölçümlemeleri ifade eder. Örnek olarak; COUNT, AVG, MIN, MAX veya SUM gibi fonksiyonların kullanımını verebiliriz. Measure, gruplandırılmış değerleri filtrelemek için kullanılabilir.
3. Uygulama
Bu bölümde Looker üzerinde örnek bir kullanım ile Looker’ın temellerinden bahsedeceğim.
Örnek uygulama için kullanacağımız veri seti, bir önceki yazımda web scraping işlemi ile elde ettiğimiz ve BigQuery’de bulunan verilerdir. Böylelikle veri toplama, oluşturma ve görselleştirme aşamalarını bir örnek için uçtan uca tamamlamış olacağız.
3.1 Bağlantı
Looker üzerinde verilerden grafikler oluşturup, bunları bir dashboard üzerinde görselleştirebilmek için önce BigQuery tablomuzu Looker projesine bağlamamız gerekir.
- Veri tabanı bağlantısı için “Main Menu” panelinden “Admin” kısmını açıyoruz ve “Database” altındaki “Connections” sayfasına ilerliyoruz.
- Connections sayfasında “Add Connection” butonunu tıklıyoruz. “Name” kısmı için bağlantımıza bir isim veriyoruz. “Dialect” kısmında ise “Google BigQuery Standard SQL” seçimi yapıyoruz ve bu seçimle alt kısımda başka doldurulması gereken parametreler çıkmaktadır.
- “Billing Project ID” kısmına Google Cloud Platform proje ID’sini giriyoruz.
- “Dataset” kısmına ise tablomuzun bulunduğu Dataset ID yazılmalıdır.
- Looker’ın BigQuery tablomuza bağlantı sağlayabilmesi için bir service account gerekmektedir. Bunun için GCP projemizde IAM & Admin üzerindeki Service Accounts sayfasında Looker için bir service account oluşturulması gerekmektedir. Bu service account’a IAM portalında “BigQuery Job User”, “BigQuery Data Viewer” ve “BigQuery Data Editor” rolleri verilmelidir.
6. Bu işlemlerin tamamlanmasının ardından Service Account içerisine gidilmeli ve “Key” kısmında “Add Key” butonuna tıklayarak JSON formatında key dosyası indirilmelidir.
7. Elde edilen JSON Key dosyası Looker üzerinde “Authentication” kısmında “Service Account” butonuna tıklanarak “Upload File” kısmından yüklenmelidir.
8. Bu adımdan sonra “Test” butonu ile bağlantımızı test edebilir ve bir problem yoksa “Connect” butonu ile bağlantıyı oluşturabiliriz.
3.2 LookML Projesi
Bağlantıyı oluşturduktan sonra “Main Menu” kısmından “Projects” bölümüne geçiş yapabiliriz. Projects sayfasında “New LookML Project” butonu ile bir LookML projesi oluşturacağız.
Bu işlemler ilerletilirken “Development Mode” açık olmalıdır. Ayrıca hesabınızda “Developer” ya da “Admin” yetkisi olmalıdır.
- LookML oluşturmak için açılan sayfada “Project Name” kısmına proje ismimizi girmeliyiz. Kullanılan proje isminin “-” içermemesine de dikkat edilmelidir.
- “Starting Point” kısmında default olarak seçili olan “Generate Model from Database Schema” seçeneğini bırakıyoruz.
- “Connection” kısmında ise oluşturduğumuz connection seçeneğini seçiyoruz.
- “Build Views From” kısmında ise “All Tables” default olarak seçili gelmekte. Sadece bir tablo aktarılmak istenir ise “Single Table” seçeneğini kullanarak “Table name” kısmına tablo ismi girilmelidir.
5. Sonrasında “Create Project” diyerek LookML projesi oluşturulmaktadır.
Böylece LookML projesi de oluşturulmuştur. “Main Menu” altında oluşturduğumuz proje listenelenecektir. Üzerine tıklayınca LookML projesi açılmaktadır.
Looker, değişiklikleri kaydetmek, kontrol etmek ve dosya sürümlerini yönetmek için Git hizmeti sunmaktadır. LookML projesi Git deposu ile bağlanır ve kullanıcının “Geliştirme Modu” aktif ise Git ile çalışabilir.
Aşağıdaki Git platformları Looker tarafından desteklenmektedir:
- GitHub
- GitHub Enterprise
- GitLab
- Bitbucket
- BitBucket Server
- Phabricator Diffusion
- Google Cloud Source
- Gerrit
- SSH key aracılığıyla kimlik doğrulamasına izin veren herhangi bir Git sunucusu
Git bağlantısını sağlamak için sağda bulunan “Configure Git” butonu ile ilerleyebilir ya da “Settings” kısmındaki “Configure Git” butonunu kullanabiliriz.
Bu buton ile ilerlediğimizde yeni bir sayfa açılacaktır. Buraya Git reposunun URL’sini yazmamız gerekecektir.
Ben burada Cloud Source Repository ile ilerlemek istedim. Bunun için Google Cloud Platform projesindeki Source Repository sayfasına gittim ve bir repository oluşturdum.
Bir sonraki sayfada ise “username” ve “password” bilgileri istenir. Bunun için Google Cloud Platform projemizde Cloud Source Repository sayfasındaki “Clone” butonu ile açılan pencerede “Clone with command line” kısmını kopyalıyoruz ve Looker tarafında istenilen URL kısmına “git clone” olmadan yapıştırıyoruz. “Git Hosting Service” kısmı için Source Repository seçimi yapıp ilerliyoruz.
Bu işlemin ardından açılan pencerede SSH Key for “test” kısmından SSH key’i kopyalayıp tekrardan Cloud Source Repository sayfasına geçiyoruz ve sağ üst kısımda bulunan More Items içerisinden “Manage SSH Keys” butonuna tıklıyoruz.
Yeni açılan pencerede ise “Register SSH Key” butonu tıklayarak kopyaladığımız anahtara unique bir isim verip register işlemini tamamlıyoruz.
Sonrasında Looker penceresine geri dönüp “Test and Finalize Setup” butonu ile Git konfigürasyonunu tamamlamış oluyoruz.
Böylelikle artık LookML projesinde yapılan bir güncelleme ile gelen değişikliği production ortamına almak istediğinizde sağ kısımdan Push and Commit ile ilerleyebilirsiniz. Bir başka kullanıcının yaptığı güncellemeleri de Pull butonu ile gerçekleştirebilirsiniz.
Git bağlantısını sıfırlamak istediğinizde“Settings” sayfasındaki “Reset Git Connection” butonunu kullanabilirsiniz. Ayrıca LookML projesini silme işlemini de buradan yapabilirsiniz.
3.4 Explore View
Bu aşamaya kadar belirtilen adımların tamamlanması ile veri seti üzerinde birkaç grafik oluşturma işlemine başlayabiliriz. Oluşturduğumuz LookML projesi içerisinde “Views” klasöründe tablomuza ait dosyayı açabiliriz. İhtiyaç durumunda custom olarak dimension ve measure parametrelerini view dosyasına ekleyebiliriz. Ayrıca bağlandığımız veri seti içerisinde tablolar arasındaki “JOIN” işlemlerini gerekirse “view” içerisinde gerçekleştirip, “model” dosyası içerisinde tanımlayabiliriz.
View dosyası içerisindeki Explore Forex Rate seçeneği ile görselleştirme kısmına geçerek grafik oluşturulmaktadır.
Açılan yeni ekranda solda, verimiz içerisinde bulunan Dimensions ve Measures alanları bulunmaktadır. Bu alanda seçim yaparak görselleştirmeye başlayabiliriz.
İlk örneğimiz için “Euro” bilgisinin en güncel değerini görüntülemek istiyorum. Bunun için “Forex Selling” dimension metriğini seçiyorum.
Bu seçimden sonra sağ üst kısımdaki “Run” butonunu çalıştırdığımızda alt kısımda sonuç verileri gözükecektir. Son 1 gün içerisindeki en güncel sonucu görebilmek için “All Fields” kısmında “Date Date” metriğine gelerek “Date” üzerinde “Filter by field” butonuna tıklıyoruz.
Bu işlemden sonra “Filters” kısmı içerisine filtre gelecektir. Burada filtreleri istediğimiz şekilde ayarlıyoruz. Sadece “EURO” bilgisi görebilmek ve en güncel sonucu alabilmek için filtreyi son bir saatin verisini getirecek şekilde düzenliyoruz.
Bu işlemin ardından “Visualization” kısmına geçip istediğimiz görselleştirme grafiğini seçebiliriz.
Ekran görüntüsünde görülen panelden “Single Value” ile sadece değer gösteren grafiği seçiyoruz. Sonrasında tekrardan “Run” yaptığımızda “Visualization” kısmında “Single Value” görseli görülecektir.
Bu grafik üzerinde yapmak istediğimiz düzenlemeleri “Edit” kısmından gerçekleştirebiliriz. “Style” içerisinde “Value Format” kısmında yaptığımız günceleme ile “Euro” işareti ekleyip format değişikliği yapıyoruz ve aynı zamanda görseldeki değişimi de takip edebiliriz.
Grafikle ilgili çalışmamız tamamlandığında, sağ üstteki “Explore actions” kısmına tıklayabiliriz.
Burada bize farklı seçenekler sunulmaktadır:
Save: Save butonu ile açılan pencerede “As a new dashboard” seçeneğiyle yeni bir dashboard oluşturup grafiğimizi içerisine kaydedebiliriz. “To an existing dashboard” seçeneğiyle daha önce oluşturulan bir dashboard içerisine ekleme yapabiliriz. “As a Look” seçeneğiyle çalışmamızı Look olarak kaydedip, gerektiği zaman açıp işlem yapıp farklı dashboard içerisine ekleyebiliriz.
Download: Download seçeneği ile, farklı formatlar sunulmaktadır. Format ve içerik seçimlerine göre indirme işlemini yapabiliriz.
Send: Send seçeneği ile, raporu desteklenen adreslere gönderme işlemi gerçekleştirebiliriz.
Share: Share butonu ile, paylaşmak üzere URL kopyalama imkanı sunulmaktadır.
Embed URL: Embed URL seçeneği, kimliği doğrulanmış bir içeriğin güvenli şekilde yerleştirilmesine olanak tanır.
Get LookML: Get LookML seçeneği ile karşımıza 3 farklı içerik tipi çıkar: Dashboard, Aggregate table ve Derived table. İçeriği bunlara kopyalarak LookML projesinde farklı klasörde kullanabiliriz.
Merge Results: Merge Results seçeneği, elde edilen sonucu başka bir sonuç ile ortak bir alanda birleştirme imkanı sunar.
Bu kısımda “As a new dashboard” diyerek bir dashboard oluşturup, isim verip kaydediyoruz.
“Main Menu” kısmındaki “Folders” altında “Shared Folders” ile Looks ve Dashboard bölümlerine erişim sağlayabiliriz.
Bir başka örnek için “Günlük Maximum-Minumum Değerleri” görebileceğimiz tablo formatında görsel oluşturalım. Yine View üzerinden “Explore Forex Rate” ile Explore kısmına geçiş yapıyoruz. Field alanında dimension olarak “Currency Code” seçiyoruz. Date filtresini kullanarak, son 1 gün için filtre ekliyoruz. Ancak bu sefer gün içerisindeki en yüksek ve en düşük değerleri görmek için MAX ve MIN fonksiyonlarını kullanmamız gerekecek. Bunun sol kısımdaki “All Fields” altında “Custom Fields” özelliğini kullanacağız.
“Custom Fields” kısmındaki “Add” butonu ile 3 farklı seçenek sunulmaktadır:
- Custom Dimension
- Custom Measure
- Table Calculation
Burada bir “measure” oluşturacağımız için “Custom Measure” seçeneğine tıklıyoruz.
Açılan pencerede ilk olarak alan seçiyoruz. Sonrasında ise “measure type” seçmemiz gerekecek. Hazır type kullanarak da bir measure oluşturabiliriz. “Max” seçimi yapıyoruz ve isim vererek kaydediyoruz.
Aynı işlemi farklı alanlar için ve “MIN” fonksiyonu kullanarak oluşturuyoruz. Sonuçlar “Custom Fields” altında listelenmektedir. Liste içerisinde kullanacağımız alanları seçiyoruz.
Visualization kısmında “Table” seçiyoruz ve “RUN” butonu ile çalıştırıyoruz.
Çalıştırdıktan sonra sonuçlarımızı görebilir ve “Edit” ile çeşitli düzenlemeler yapabiliriz. Yapılan çalışmayı bu sefer daha öncesinde oluşturduğumuz Dashboard içerisine de kaydedebiliriz.
3.5 Dashboard
Hazırladığımız Look çalışmalarını Dashboard üzerinde görüntüleyebiliriz. Buraya, öncesinde Explore bölümünde oluşturduğumuz Dashboard içerisindeki “Folders” dosyası altından erişebiliriz. İçine aktardığımız Look çalışmalarını dizayn edebilir, farklı filtreler ekleyebilir ve Looker tarafından sunulan özellikler ile farklı çalışmalar yapabiliriz.
Dashboard’da düzenleme yapmak için sağ üst kısımda bulunan “Dashboard Actions” butonu ile “Edit dashboard” seçeneğine tıklıyoruz.
“Edit dashboard” butonuna tıklayarak, Look’ların Dashboard üzerindeki yerlerini kendi isteğimiz şekilde değiştirebilir ve düzenleyebiliriz.
Dashboard düzenlerken sol üst kısımda “Add”, “Filters”, “Settings” olmak üzere 3 farklı seçenek sunulmaktadır. “Add” butonuna tıkladığımızda ise 4 farklı seçenek bulunur:
Visualization: Bu butona tıkladığımızda kullanıcıya LookML projesi seçimi sunulur ve sonrasında view seçimi ile Explore sayfası açılır. Böylece kullanıcı buradan da Look oluşturabilir ve dashboard ekranına ekleme yapabilir.
Text: Bu butona tıkladığımızda bir metin paneli açılır. Burada oluşturulan metin, kullanıcı tarafından dashboard üzerinde istediği yere yerleştirilebilmektedir.
Markdown: Bu buton ile “Title”, “Subtitle” ya da “Body” oluşturabilir ve Dashboard üzerine yerleştirebiliriz.
Button: Bu seçenek ile Dashboard ekranına buton eklenir. Butona isim verebilir ve bir URL’ye yönlendirme yapabiliriz.
Dashboard paneline Kartaca logosu eklemek için “Add” kısmından “Markdown” seçeneğini seçiyoruz ve içerisine “Kartaca” logosunun bulunduğu body yazıyoruz.
Sonrasında ise “Add” kısmından “Button” seçeneğine tıklıyoruz ve buraya Kartaca web sitesi adresini yazıyoruz.
Oluşturduğumuz grafikler (Look) için filtre eklemek istediğimizde ise “Filters” seçeneğine ve sonrasında açılan panelden “Add Filters” seçeneğine tıklıyoruz.
Bu seçenek ile Dashboard içerisinde bulunan LookML View çıkmaktadır.
Burada filtre eklemek istediğimiz alanı seçmemiz gerekiyor. “Date” üzerinden bir filtre örneği yapalım.
Açılan ekranda “Title” ile filtreye isim verebiliriz. “Control” ile filtre tipini seçebiliriz. Bu örnekte “Date Range” seçiyoruz. “Configure Default Value” seçeneği ile ise filtrenin default değerini seçebiliriz. “Add” butonu ile filtremizi ekleyebiliriz.
Eklenen filtreler Dashboard ekranında “Filters” paneli altında sıralanır.
Eğer bir filtrenin dashboard üzerindeki belli bir grafiği etkilemesini istersek filtre üzerindeki “Edit” butonu ile filtre düzenleme paneline geçerek, bu ekranda “Tiles To Update” kısmında etkilenmesini istediğimiz grafiği seçiyoruz.
Bu düzenlemeler sonrasında “Save” ile güncellemeleri kaydedebiliriz.
Örnek olarak bir de scheduler eklemek istersek dashboard panelinde “Dashboard actions” kısmından seçim yapmalıyız, ancak “Schedule delivery” seçeneği aktif gözükmemektedir.
Bunun nedeni projede “Development Mode” un aktif olmasıdır. Bu nedenle “Exit Development Mode” ile bu moddan çıkış yapıyoruz. Sonrasında tekrar denediğimizde, aktif hale gelmiş olmasını bekliyoruz.
“Schedule Delivery” butonuna tıkladığımızda bir panel açılmaktadır. Buradan seçim yaparak, periyodik şekilde her sabah saat 09.00’da PNG formatında email gönderecek bir job oluşturuyoruz.
Bu ekranda, Schedule Delivery job için “Test now” butonu ile kontrol sağlayabilir, sonrasında kaydedebiliriz. Ayrıca email dışında Slack gibi desteklenen sistemler ile de gönderim sağlanabilmektedir.
4. Sonuç
Looker, içerisinde pek çok özellik barındıran bir araç. Bu yazıda, BigQuery‘de tutulan bir veri setine Looker’dan bağlantı sağlanması ve Looker ile genel görselleştirme süreçlerinde bahsetmeye çalıştım. Looker ile ilgili kavramları uygulamalı olarak ele alarak, temel olarak yapılabilecek işlemlere göz attığımız bu yazı, umarım faydalı olmuştur.
Yazan: Berke Azal
Yayınlanma Tarihi: 05.12.2023
