Metabase, veritabanı sorgularını kolayca görselleştirmek, raporlar ve panolar oluşturmak için kullanılan açık kaynaklı bir veri analiz aracıdır. Özellikle teknik bilgi seviyesi düşük kullanıcıların bile veri analizi yapabilmesini sağladığı için, küçük ve orta ölçekli ekiplerde sıkça tercih edilir.
Metabase Kullanımı İçin Gereken Temel Bileşenler Nelerdir?
Metabase’i etkili şekilde kullanmak için temel düzeyde veritabanı tablo yapısını ve SQL mantığını bilmek gerekir. Metabase uygulamasını çalıştırmak için aşağıdaki bileşenlere sahip olmanız gerekiyor:
- Bir veritabanı bağlantısı: MySQL, PostgreSQL, SQL Server, Oracle, MongoDB gibi uyumlu bir veritabanı gereklidir.
- Kullanıcı Hesabı: Veritabanı bağlantı bilgilerine ve Salt Okunur (Read Only) yetkisine sahip bir kullanıcı hesabı.
- Java Gereksinimi: Windows üzerinde kurulum yapılacaksa Java 21 veya üstü bir sürümün yüklü olması gerekiyor.
- Kurulum Seçeneği: Platform bağımsız olarak Docker üzerinde Metabase container çalıştırabilirsiniz.
Alternatif seçenek: Kurulumla uğraşmak istemeyen kullanıcılar için ücretli Metabase Cloud sürümü de mevcuttur.
Metabase Kurulumu Nasıl Yapılır?
Metabase, Java JAR dosyası olarak paketlenmiştir ve Java’nın kurulu olduğu her sistemde kolayca çalıştırılabilir.
Windows üzerine kurulum için öncelikle Java yüklü değilse Metabase resmî sitesinde önerdiği Java’yı adresinden yükleyebilirsiniz. İsterseniz javanın resmî sitesinde kullanabilirsiniz.
Javanın yüklü olduğunu ve sürümünü terminalden doğrulayın.
java –version
Metabase JAR dosyasını adresinden indirin. JAR dosyasını yeni bir dizine yerleştirin ve terminali açıp aşağıdaki komutu çalıştırın.
java –add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar
Kısa bir süre sonra metabase sunucusu varsayılan olarak adresinden başlayacaktır.
Docker üzerinde kurulum için Metabase, resmî Docker imajı üzerinden kolayca kurulabilir. Docker’ın kurulu olduğuna emin olduktan sonra, aşağıdaki komutu çalıştırmanız yeterli olacaktır.
docker run -d -p 3000:3000 –name metabase metabase/metabase:latest
İsteğe bağlı container durumunu anlık takip etmek isterseniz aşağıdaki komutu çalıştırabilirsiniz.
docker logs -f metabase
Kısa bir süre sonra metabase sunucusu varsayılan olarak adresinden başlayacaktır.
Hoş geldiniz penceresini gördükten sonra artık hızlı başlangıç kılavuzunu tamamlayabiliriz. Başlayalım butonuna basarak devam edelim.
Türkçe dahil bir çok dil desteklemektedir. Ben İngilizce olarak devam ediyorum.
Metabase üzerinde oturum açmak için burada belirleyeceğiniz e-posta ve parolayı kullanacağınızı unutmayın. Aşağıdaki bilgileri doldurun ve Next butonuna basınız.
Metabase ne için kullanacağını belirleyip devam ediniz.
Ben bu örnekte, Microsoft SQL Server ile devam edeceğim. Metabase bir çok veritabanı ile uyumlu, şimdi veya daha sonra veritabanlarını ekleyebilirsiniz.
Ürünün gelişmesi için, isteğe bağlı olarak anonim verilerinizi isterseniz metabase geliştiricilerine gönderebilirsiniz. Finish butonu ile kurulumu tamamlıyoruz.
Take me to Metabase butonuna basarak ürün giriş sayfasına gidebiliriz.
Metabase Kullanımı
Ülkelerin tarihleri, saatleri, sayıları ve para birimleri farklılık göstermektedir. Bu değerleri ülkemize uygun şekilde ayarlamak için Admin -> Settings -> Localization -> Dates and times yolunu takip ederek değiştirebilirsiniz. Bu sayede pano sonuçlarınız daha anlamlı hale gelecektir.
Metabase’de değişkenler (variables) kullanılmaktadır. Değişkenler sayesinde kullanıcıdan dinamik değerler alarak sorguları esnek hale getirilebilir. Yani bir SQL sorgusuna tarih, metin, sayı, kategori veya herhangi bir filtre eklemek istediğinde bu değerleri sabit olarak yazmak yerine parametre şeklinde tanımlanmaktadır. Örneğin, belirli tarih aralığındaki satışlar gibi sorgularda tarih alanını kullanıcı seçebilir.
Artık başlayabiliriz. Metabase kullanırken iki şekilde analizler gerçekleştirebilirsiniz. Question seçeneği ile teknik bilginiz olmadan hızlı, görsel ve basit analizler için kullanabilirken, SQL Query seçeneği ile gelişmiş sorgular, özel filtreler ile hayal gücünüzü zorlayabilirsiniz.
Şimdi örnekler yaparak daha iyi anlayalım. + New butonuna basarak SQL query seçeneğine tıklayın. Açılan pencerede istediğiniz gibi SQL sorgularını yazabilirsininiz. Yani veritabanında olan tüm verilerinizi görselleştirebilirsiniz.
Örnek -1
Şirketinizde yüzlerce IoT cihaz olduğunu düşünelim. Bu cihazların sağlık durumları veritabanında mevcut ve bunları izlemek istiyorsunuz. Bunun için aşağıdaki gibi yapınıza özel SQL sorgusu yazınız.
SELECT ROW_NUMBER() OVER (ORDER BY KONTROL) AS [SIRA] ,IP,MACID,NOKTANO,NOKTAAD,YERI,KONTROL FROM NOKTA where KONTROL <= DATEADD(MINUTE,-1,GETDATE()) order by KONTROL
Şimdi sorguyu çalıştıralım ve sonuçları görelim.
İsterseniz bu kısımda belirli kolonları gizleyebilirsiniz.
Çıkan sonuçları yapınıza uygun şekilde görselleştirebilirsiniz. Bunun için Visualization kısmından düzgün görseli seçmeniz yeterlidir.
Buraya kadar herşey yolundaysa artık gösterge paneli oluşturabilirsiniz. Sorguyu kayıt etmek için Save butonuna basın ve koleksiyon belirleyip tekrar Save butonuna basınız.
Açılan pencerede değişken eklemediğimiz için herhangi bir ayar yapmamıza gerek yok. Sayfayı her yenilediğinizde sorgu tekrar çalışırtırılır. Bu şekilde aynı panele açıklama veya farklı sorgularda girerek daha fazla özelleştirebilirsiniz.
Örnek -2
Bu örnekte ise, şirketimizde belirli tarihler arasında yenen yemek sayısının toplamını çıkaralım. Bunun için tarih değişkenini kullanacağım. Aşağıdaki SQL sorgusunda değişken kısımları date_first ve date_end yazan yerlerdir. Bu kodlar sayesinde değişken seçenekleri aktif olacaktır.
Aşağıdaki SQL sorgusu YEMEK tablosunda count ile toplam satır sayısı bulmaktadır. Aslında tek farklı olan Between kısmına manuel olarak tarih yazmak yerine metabase değişkeni eklemiş olduk.
SELECT count(*) FROM YEMEK WHERE TARIH BETWEEN [[{{date_first}}]] and DATEADD(day,1, [[{{date_end}}]] )
Ancak bu değişkenin tarih olarak kullanacağımızı belirtmemiz gerekiyor. Bunuda çarpı sembolüne basarak yapacağız.
Açılan pencerede bir tarih aralığı gerçekleştireceğim için date_first ve date_end kısmında variable type olarak date seçeneğini seçmemiz gerekmektedir. Filter widget label kısımlarınada değişken kısımlara ayırt edici isimler yazmanız faydalı olabilir.
Şimdi sorguyu çalıştıralım ve sonuçları görelim.
Çıkan sonuçları yapınıza uygun şekilde görselleştirebilirsiniz. Bunun için Visualization kısmından düzgün görseli seçmeniz yeterlidir.
Buraya kadar herşey yolundaysa artık gösterge paneli oluşturabilirsiniz. Sorguyu kayıt etmek için Save butonuna basın ve koleksiyon belirleyip tekrar Save butonuna basınız.
Açılan pencerede add a filter or parameter kısmından biraz önce eklediğiniz değişkenleri aynı şekilde eklemeniz gerekmektedir. Başlangıç ve Bitiş tarihleri olacağı için 2 tane Data picker ekliyorum.
İlk eklediğim Data picker seçip sağ taraftaki Filter settings kısmından bir isim verip, Filter operator olarak Single Date seçiyorum. Akabinden Column to filter on kısmı aktif oluyor ve biraz önce oluşturduğumuz değişken ile eşleştiriyoruz.
İkinci Data picker seçip aynı şekilde diğer değişkenimizi seçelim.
Son olarak sağ üst tarafta bulunan save butonuna tıklayabiliriz. Bir tarih aralığı girerek sorguyu kontrol etmemiz yeterli olacaktır. Eğer sorgu çalışmaz ise sayfayı yenilemeyi unutmayın. Bu şekilde aynı panele açıklama veya farklı sorgularda girerek daha fazla özelleştirebilirsiniz.
Örnek -3
Bu örnekte ise birden fazla değişken kullanarak, şirketinizde belirlediğiniz personelin numarası ile hangi tarihlerde nerelerden(asansör, kapı vb.) geçtiğini çıkaracağız. Bunun için numara ve tarih değişkenini kullanacağım. Aşağıdaki SQL sorgusunda değişken kısımları person_no, date_first ve date_end yazan yerlerdir. Bu kodlar sayesinde numara ve tarih filtreme seçenekleri aktif olacaktır.
Aşağıdaki SQL sorgusunda birden fazla tablo birleştirilmiştir.
SELECT CASE WHEN N.NOKTAAD IS NULL THEN ‘GECIS’
ELSE N.NOKTAAD
END AS NOKTAAD1,
K.KISINO, Y.YONU, K.AD, K.SOYAD, YERI, G.NOKTA, G.TARIH
FROM
GECIS G
LEFT JOIN NOKTA N ON N.NOKTANO = G.NOKTA
INNER JOIN KISI K ON K.KISINO = G.KISI
INNER JOIN FIRMA F ON F.FIRMANO = K.FIRMA
INNER JOIN BOLUM B ON B.BOLUMNO = K.BOLUM
INNER JOIN GOREV GR ON GR.GOREVNO = K.GOREV
INNER JOIN YON Y ON Y.GIRIS = G.GIRIS
WHERE 1=1
[[AND K.KISINO = {{person_no}}]][[AND G.TARIH >= {{start_date}} AND G.TARIH < DATEADD(day, 1, {{end_date}})]]
Ancak bu değişkenlerin numara ve tarih olarak kullanacağımızı belirtmemiz gerekiyor. Bunuda çarpı sembolüne basarak yapacağız.
Açılan pencerede personel numarası araması gerçekleştireceğim person_no kısmını Number olarak ayarlıyorum.
Personel işlemleri için belirli bir tarih aralığı gerçekleştireceğim için date_first ve date_end kısmında variable type olarak date seçeneğini seçmemiz gerekmektedir. Filter widget label kısımlarınada değişken kısımlara ayırt edici isimler yazmanız faydalı olacaktır.
Şimdi personel numarası ve belirli bir tarih girip sorguyu çalıştıralım ve sonuçları görelim. Çıkan sonuçları yapınıza uygun şekilde görselleştirebilirsiniz. Bunun için Visualization kısmından düzgün görseli seçmeniz yeterlidir.
Buraya kadar herşey yolundaysa artık gösterge paneli oluşturabilirsiniz. Sorguyu kayıt etmek için Save butonuna basın ve koleksiyon belirleyip tekrar Save butonuna basınız.
Açılan pencerede add a filter or parameter kısmından biraz önce eklediğiniz değişkenleri aynı şekilde eklemeniz gerekmektedir. İlk olarak personel numarasından arama yapabilmek için Number değişkenini ekliyorum.
Başlangıç ve Bitiş tarihleri olacağı için 2 tane Data picker ekliyorum.
İlk eklediğim number değikenini seçip Filter settings kısmından bir isim verip, Column to filter on kısmından ilgili değişkeni seçiyorum.
Data picker seçip sağ taraftaki Filter settings kısmından bir isim verip, Filter operator olarak Single Date seçiyorum. Akabinden Column to filter on kısmı aktif oluyor ve biraz önce oluşturduğumuz değişkeni seçiyoruz.
İkinci Data picker seçip aynı şekilde diğer değişkenimizi seçelim.
Son olarak sağ üst tarafta bulunan save butonuna tıklayabiliriz. Personel numarası ve tarih aralığı girerek sorguyu kontrol etmemiz yeterli olacaktır. Eğer sorgu çalışmaz ise sayfayı yenilemeyi unutmayın. Bu şekilde aynı panele açıklama veya farklı sorgularda girerek daha fazla özelleştirebilirsiniz.
Örnek -4
Son örnekte ise tek panoda birden fazla sorguyu nasıl görselleştirebileceğimizi inceleyelim. Birden fazla yemekhane olduğunu düşünelim ve bunları tek panoda nasıl toplayacağımıza bakalım.
Yeni bir sorgu ekranı açıyorum ve kendime özel sorguyu yazıyorum. Değişkenleri ve ilgili ayarları gerçekleştiriyorum.
SELECT count(*) FROM YEMEK WHERE NOKTA=’35’ and YEMEK_NO=’1′ and TARIH BETWEEN [[{{first}}]] and DATEADD(day,1,[[{{end}}]])
Save butonuna bastıktan sonra hangi panoya ekleyecekseniz Where do you want to save this kısmından seçmeniz gerekmektedir. Yukarıdaki örnekte günlük toplam yemek sayısını çıkarmaştık. Ben aynı analizi seçtim ve bu sayede tek panoda birleşecekler.
Açılan pencerede değişkenleri daha önceden eklemiştik. Tek yapmamız gereken aynı değişkenleri bu sorguylada eşleştirmek.
Başlangıç Tarihi ile sorgumdaki başlangıç değişkeni eşleştiriyorum.
Bitiş tarihi ile sorgumdaki bitiş değişkeni eşleştiriyorum.
Son olarak sağ üst tarafta bulunan save butonuna tıklayabiliriz. Herhangi bir tarih aralığı girerek sorguyu kontrol etmemiz yeterli olacaktır.
Sonuç olarak veritabanınızda ne kadar bilgi varsa o kadar çok özelleştirme yapabilirsiniz.
Metabase Genel Paylaşım
Metabase Public Sharing, oluşturduğunuz bir gösterge panelini Metabase hesabına erişimi olmayan kişilerle paylaşmanızı sağlayan bir özelliktir. Bu özellik sayesinde, veriye sadece iç sistemlerden ulaşmak yerine, herkese açık bir bağlantı aracılığıyla erişim imkânı sunabilirsiniz.
Public Sharing aktif edildiğinde, Metabase senin için özel, tahmin edilmesi zor bir URL oluşturur. Bu linki paylaştığın kişiler herhangi bir giriş yapmadan ilgili gösterge panelini salt okunur biçimde görüntüleyebilir.
İlgili panel üzerinden paylaşım simgesine tıklayarak Create public link seçeneğini ile devam ediniz.
Linki paylaştığınız herkes panoyu görebilir ve kullanabilir. Ancak kendine özel bir sorgu yazamaz.
Bu özellik sayesinde yöneticilerinize giriş yapmadan güzel panolar sunabilirsiniz.
Bu link dışında ikinci seçenek olarak bir web sitesine bunu gömülü link olarak ekleyebilirsiniz. Ama öncelikle admin ayarlarından bu özelliği aktif etmeniz gerekmektedir.
Sonrasında yine paylaşım simgesine tıklayın ve Embed seçeneğine tıklayın.
Static Embed kısmındaki kodları alıp web sitenize ekleyebilirsiniz.
Metabase kullanıcı dostu arayüzü ve esnek yapısıyla veriyi anlamlandırmayı kolaylaştıran güçlü bir araçtır. Değişkenler sayesinde sorgular dinamik hale gelir, veri görselleştirme özellikleriyle karmaşık veriler kolayca okunabilir grafiklere dönüşür.
Public Sharing özelliği ise oluşturulan dashboard’ların güvenli biçimde paylaşılmasına olanak tanır.
Tüm bu özellikler bir araya geldiğinde Metabase, hem teknik hem de teknik olmayan kullanıcılar için etkileşimli, paylaşılabilir ve anlamlı veri analizi deneyimi sunar.
Bu makalemizde, metabase kurulum ve kullanım işlemlerini gerçekleştirdik. Umarım faydalı olur. Başka bir makalede görüşmek üzere.
Daha fazla bilgi için bakınız:
Ücretli ve ücretiz sürüm farkları için bakınız: