Selam, daha önceki yazımda ELT ve Analytics Engineering rolünden bahsetmiştim. Serinin ikinci yazısında dbt’ye değiniyoruz ve dbt nedir, ne işe yarar, bize sağladığı temel faydalar nedir gibi konular üzerinde duracağız.
dbt (data build tool), veri analistlerinin ve mühendislerin veri ambarlarındaki verilere transform işlemleri uygulamasına olanak tanıyan cloud üzerinde ya da command line ile çalıştırılabilir bir uygulamadır. dbt ELT’nin T’si yani Transform ayağıdır.
Genel bir veri akışını ele alalım ve her şeyin nasıl bir araya geldiğine ve dbt’nin nerede konumlandığına bakalım.
Öncelikle, günümüzde bir sürü veri kaynağına sahibiz. Bu Salesforce verileri, HubSpot verileri ve daha fazlası olabilir genellikle işimizle ilgili her türlü veriyi kullanmak isteriz.
Hâl böyle olunca farklı veri kaynaklarından gelen veriyi ortak bir katmanda toplamak isteriz. Modern veri yığınının merkezinde veri platformunuz bulunur. Bu Snowflake, Redshift, BigQuery, Databricks veya işletmeniz için merkezi konumda veri depolamak için kullanılabilen çeşitli diğer araçlar olabilir.
Bu dört araç dbt cloud tarafından desteklenir, ancak dbt core kullanılıyorsa farklı veri türleri için topluluk tarafından desteklenen bir sürü farklı adapter’lar mevcut.
Desteklenen data platformlarını incelemek için aşağıdaki bağlantıya göz atabilirsiniz.
https://docs.getdbt.com/docs/supported-data-platforms
Bu verilerin, veri kaynaklarından veri ambarlarına nasıl taşındığını merak ediyor olabilirsiniz. Bu verileri özel araçlarla, Python, Scala veya Java aracılığıyla taşıyabilirsiniz, bunların yanında Extract Load yapabileceğiniz piyasada çok fazla tool da mevcut.
Bulut veri platformlarında çalışacağımız zaman genellikle bu adım ELT çerçevesinde gerçekleşiyor ve EL adımı olarak geçmekte. Bir önceki yazıda buna değinmiştik. Bu verileri veri platformunuza aldıktan sonra, veriyi analiz etmeden önce modellemek ve modelleme sonrasında da dashboardlar üzerinde kullanmak istersiniz, burada BI araçları devreye girer.
Peki dbt bu işin neresinde?
dbt ELT’nin T’si yani transfom ayağıdır. Transform işlemlerinizi yönetmek için doğrudan veri platformunuzla çalışır. Veri ambarına bir extract ya da load işi yapmaz fakat hali hazırda veri ambarı üzerinde olan bir verinin transform işlemlerinde harika kolaylıklar sağlayan bir araçtır. dbt sayesinde verinizi, veri ambarınız/platformunuz üzerinde modelleyebilirsiniz.
dbt ile sadece transform işlemleri yapmıyorsunuz. Veri işleme sürecindeki tüm aşamaları yönetmek mümkündür.
dbt,
- Software engineering pratikleriyle bir veri işleme projesi oluşturmanıza,
- bu projede kullanacağınız verileri seçmenize ve bir DAG lineage oluşturmanıza,
- bu veriler üzerinde dönüşümler yapmanıza,
- test etmenize,
- bunları versiyonlamanıza olanak tanır.
Dbt üzerindeki modeller aslında birer SQL sorgularıdır. Yani dbt kodu yazarken, modüller halinde SQL SELECT ifadeleri olarak kod yazıyorsunuz. Bu modeller, SQL dosyalarında saklanır.
Peki SQL ile yapabildiğimiz işlemleri neden dbt ile yapalım?
Dbt’nin harika bir özelliği, işleri kolaylaştırması. Tablo veya görünüm olarak bir şeyler oluşturmak için DDL veya DML hakkında bilgi sahibi olmanız gerekmez. Bunun yerine, SQL dosyasının üst kısmında veya ayrı bir YAML dosyasında modelinizi nasıl oluşturmak istediğinizi yapılandırırsınız. Yani temelde yapmak istediğiniz işleri belirten kodlar yazıyorsunuz ve kahvenizi yudumluyorsunuz. Geri kalan kısımlar dbt’de, dbt kodu alıp SQL’de derliyor ve ardından veri ambarı/platformunuzda bunu çalıştırıyor.
dbt ve veri platformunuz arasındaki bu etkileşime yakından bakalım.
Aşağıda sol taraftan gelen ham verileri görüyoruz ve bu işlem sonunda, BI araçlarımız, ML modellerimiz ve operasyonel analitiklerimiz için hazır veri setlerimiz oluşuyor.
Bu modelleri yazarken, zamanla bu verileri dönüştürmek için modeller arasında bağımlılıklar oluşturuyorsunuz. dbt kodu yazarken, yavaş yavaş aşağıdakine benzer bir DAG oluşturuyorsunuz.
Tüm dönüşümlerinizi onayladıktan, test ettikten ve belgeledikten sonra, dbt proje çalışmanızı plana göre çalıştırabilirsiniz.
Sonuç olarak, dbt modern veri yığınının T ayağıdır ve ham verilerin dönüştürülmesini sağlar.
Bir sonraki yazıda, BigQuery üzerinde dbt yapılandırmasını ele alacağız. Sağlıcakla!
Kaynaklar:
Son cümleyi yazarken çalıyordu.