İnternette İstediğiniz Gibi Çevrimiçi Para Kazanma!

Gerçek dünyadan örneklerle dbt (veri oluşturma aracı) eğitimi

Şu yazıyı okuyorsunuz: gerçek dünyadan örneklerle dbt (veri oluşturma aracı) eğitimi

dbt (veri oluşturma aracı), veri dönüşümü için en yaygın kullanılan geliştirme çerçevelerinden biri haline geldi. Ancak çoğu insan gerçekten anlamıyor Ne, neden ve nasıl parçası dbt. Bu kılavuzda, esas olarak dbt nedir? konusuna odaklanarak dbt’nin temellerini ele alacağız. ve gerçek dünyadaki bir proje örneğine uyduğu yer. Yavaş yavaş ETL sürecinden ELT’ye geçiş yapacağız ve sonunda dbt’nin tam kullanım durumunu anlayacağız. Veri analizi ve gerçek dünya veri analizi ile ilgili birçok konuyu öğrenmek için bu makalenin sonuna kadar mutlaka okuyun.

dbt nedir?

Diyelim ki büyük miktarda ham veriniz var. Yeni başlayanlar için ham veriler, farklı kaynaklardan toplanan her türlü veri olabilir ve URL’ler, ödeme ayrıntıları, sipariş bilgileri vb. gibi çeşitli bilgileri içerebilir. Tahmin edebileceğiniz gibi bu veriler boş değerler, kopyalar ve benzeri temizlenmemiş satırlar içerebilir. Şimdi, bu ham verilerle, raporlarınız için bazı veri analizleri yapmak istiyorsunuz veya bu veriler, bir makine öğrenimi modeline beslenebilir, vb.!

Dolayısıyla dbt, basit SELECT sorgularını kullanarak bu ham verileri veritabanı tabloları, görünümler vb. gibi anlamlı veri nesnelerine dönüştürmenize yardımcı olan bir geliştirme çerçevesidir.

Artık bu veri nesnelerini hazırladıktan sonra bunları kendi ölçümlerinizi, makine öğrenimi modellerinizi veya başka herhangi bir veri analizinizi oluşturmak için kullanabilirsiniz. Bunu yapmak için dbt ile tüm veri dönüştürme değişikliklerini geliştirebilir, test edebilir, belgeleyebilir ve dağıtabilirsiniz.

Belki hala tam olarak anlamadınız! Gerçek dünyadan bir örnek alalım.

dbt Gerçek dünya örneği

Amazon, Shopify veya başka bir çevrimiçi mağaza gibi bir e-ticaret web sitesi işlettiğinizi düşünün. Şimdi işler gayet iyi gidiyordu ta ki bir gün, aniden müşterilerinden “Hey!” diyen bir sürü şikayet almaya başladı. Zamanında teslim edilen siparişleri alamıyoruz. Peki, bu ciddi bir sorun!! Neler olduğunu anlamak için bu siparişlerin neden zamanında teslim edilmediğinin temel nedenini daha derinlemesine incelemek istiyorsunuz. Yani şöyle basit bir metrik oluşturmak istiyorsunuz:

Tahmini sürede teslim edilmeyen siparişlerin sayısı nedir ve gecikmenin nedeni nedir?

Temel olarak order_id, trace_id ve Reason_for_delay gibi alanları içeren bir rapor oluşturmaya çalışıyoruz ama bu oldukça kolay gibi görünüyor değil mi? Ancak gelin bunun nasıl karmaşık hale gelebileceğine bir göz atalım.

ETL veri hattı

Bu sorunu geniş ölçekte çözmek için öncelikle ETL’nin ne olduğunu anlamaya çalışalım!

Örneğimizde yapacağınız ilk şey, bu bilgiyi bir şekilde ortak bir yere çıkarmak olabilir. Basit olması açısından, bu verileri iki tabloda (siparişler tablosu (veri kaynağı 1) ve izleme tablosu) aldığınızı varsayalım.

Müşterilerimiz web sitemiz üzerinden sipariş verebildikleri için sipariş_numarası, sipariş_tarihi, takip_numarası gibi bazı bilgileri kendi veritabanı tablolarımızda tutabiliyoruz.

Şimdi, bu siparişlerin fiili teslimatı için, siparişleri müşterilere teslim etmek için üçüncü taraf bir tedarikçiye (federex veya ups gibi) güvendiğimizi varsayalım ki bu, gerçek dünyada çok yaygın bir kullanım durumudur.

Bu durumda teslimat_durumu, teslimat_süresi, gecikme_için_nedeni gibi sipariş takip bilgileri üçüncü taraf tedarikçinin sağındaki farklı bir veri kaynağında mevcut olabilir. Ve verileri JSON, CSV, veritabanı, kuyruklar vb. gibi farklı formatlarda sağlayabilmeleri bir komplikasyon daha olabilir.

Gördüğünüz gibi veriler çeşitli yerlere dağılmış olabilir ve eğer metriğimizi oluşturmamız gerekiyorsa, çeşitli kaynaklardan gelen bu verileri birleştirerek veri modellerimizi oluşturmamız gerekir. Bu durumda tüm kaynaklarda ortak bir alan olarak trace_id’ye sahibiz.

Yani yapmamız gereken ilk şey bir şekilde bu bilgiyi ortak bir yere çıkarmak. Basitlik açısından, bu verileri iki tabloya, yani siparişler tablosu (veri kaynağı 1) ve izleme tablosuna (veri kaynağı 2) ayrıştırıp çıkardığımızı varsayalım.

ETL veri dönüşümü

Artık veriler farklı kaynaklardan gelebileceğinden ve olaylar bizim kontrolümüz altında olmadığından, verileri temizleyip doğrulamamız gerekiyor! Böylece, temizleme, doğrulama, veri işleme gibi çeşitli işlemleri gerçekleştirirsiniz, bazı ara tabloları (bazen hazırlama tabloları olarak da adlandırılır) kullanarak farklı iş mantığı uygularsınız ve sonunda verileri birleştiren tek bir tablo elde edersiniz.

ETL veri yükleme

Bu veriler çok büyük olabileceğinden, yalnızca gerekli bilgilerle önceden hesaplar ve veri ambarına yükleyerek kullanıcıların kullanımına sunar. Bu, önceden seçilmiş verilerin bir listesi gibi olduğundan, bundan metrik raporlar, ml modeller oluşturmak daha kolay hale gelir. Bu adım ETL’nin yükleme kısmıdır.

Veri dünyasında bu sürece şöyle diyorlar: ETL (Çıkart, Dönüştür, Yükle) . Birinci kısım veri çıkarma olarak adlandırılırken, ikinci kısım veri dönüştürme ve üçüncü kısım ise veri yüklemedir.

Durun, bunda hala dbt’yi göremiyorum!

Bunu anlamak için perde arkasında olup bitenlere biraz daha yakından bakalım. Dönüştür parça. Ham verilerinizi anlamlı bir şeye dönüştürmek için veri temizleme, veri doğrulama vb. çeşitli işlemler uygulayarak verilerinizi dönüştürün. Bazı hızlı örnekler arasında kopyaların kaldırılması, boş değerlerin kontrol edilmesi, birincil anahtarların, yabancı anahtarların ve para birimi dönüştürme gibi özel iş kurallarının kontrol edilmesi vb. yer alabilir. Bu kuralları uygulamak için

  1. Ham verileri farklı SELECT sorgularıyla sorgulama
  2. Farklı veri kuralları uygulama
  3. Yalnızca gerekli verileri seçin
  4. Günlük olarak kullanmak istediğiniz son veriler için bunları ayrı tablolarda saklayın. Bu verileri her gün oluşturmanız gerektiğinden, veri hatları, yinelenen işler oluşturursunuz ve son olarak bu hesaplanan verileri daha sonra kullanmak üzere veri ambarınızda saklarsınız. Geliştirme açısından bakıldığında, bu veri hatlarını oluşturmak çok fazla çaba gerektirir. Bu değişikliklerin geliştirilmesini, test edilmesini, belgelenmesini ve uygulanmasını içerir.

Veri akışıma yeni bir metrik eklemem gerekirse ne olur? Hiçbir şeyi kırmadan bu borunun bakımını nasıl yapabilirsiniz?

Veri mühendislerinin devreye girdiği yer burasıdır. Veri analizi gerçekleştirmek için bu veri boru hatlarının oluşturulmasına yardımcı olurlar. Ancak tüm bu süreç karmaşık görünmüyor mu? Veriyi başlı başına yararlı bir şeye dönüştürmek çok sıkıcı bir süreç gibi görünüyor.

Ya tüm bu veri dönüştürme süreci basitleştirilebilirse? Tüm bu veri dönüştürme görevlerini basit yapılandırmalar ve SELECT sorgularıyla gerçekleştirebilecek bir dizi aracımız varsa ne olur?

İşte tam da bu noktada dbt devreye giriyor.

Dbt ile tüm bu veri dönüştürme sürecini basit yapılandırmalar ve SELECT sorgularıyla kolaylaştırabilirsiniz. Hatta bu veri dönüştürme mantıklarını modüler bir yaklaşımla geliştirmenize, test etmenize, belgelemenize ve uygulamanıza bile yardımcı olabilir.

Tekrar ediyorum, dbt sadece bir veri dönüştürme aracıdır. Veri çıkarma veya yükleme işlemlerini gerçekleştirmez.

Gelin dbt ile işlerin nasıl değiştiğine bakalım

Dbt ile iş akışı ETL’den çok ELT’ye benzer. Şimdi ELT’nin ne olduğuna bakalım.

ETL’de öncelikle verinin çıkarıldığını, dönüştürüldüğünü ve depoya yüklendiğini gördük.

Ancak ELT ile bu iş akışı biraz değişiyor. E kısmı aynı kalıyor.

  1. Çeşitli kaynaklardan veri alıyoruz
  2. Artık bu ham veriler herhangi bir dönüşüm yapılmadan doğrudan veri ambarına yükleniyor. (En önemli fark, ETL verilerinin işlenip daha sonra ambarlara yüklenmesidir. Ancak ELT verilerinde ham veriler, işlenmeden doğrudan veri ambarına yüklenir.)
  3. Ham verileri yükledikten sonra dbt etkinleştirilir.

dbt doğrudan veri deponuza bağlanır ve tüm veri okuma ve yazma işlemleriyle arayüz oluşturabilir. Eğer veri analizi yapmak istiyorsanız, örneğin metrik oluşturmak istiyorsanız, tek yapmamız gereken ham veri tablosuna basit SELECT sorguları yazmak. SELECT sorgunuzu yazıp çalıştırdığınızda, dbt otomatik olarak verileri getirme, tüm farklı doğrulamaları ve mantığı uygulama ve verileri deposuna geri yazma işlerini üstlenir.

Dbt’nin gerçek avantajları

Buradaki asıl avantajın ne olduğunu düşünüyor olabilirsiniz, değil mi? Pek çok şey var. Eski veri akışınızı dbt tabanlı akışla karşılaştırırsanız,

  1. Ham verilerle doğrudan etkileşimde bulunuyorsunuz ve yalnızca SELECT sorguları yazmayı önemsiyorsunuz.
  2. Bu SELECT sorgularını geliştirmenin, test etmenin ve belgelemenin karmaşıklığı, bu kursun bir parçası olarak inceleyeceğimiz dbt modüllerinde açıkça modüler hale getirilmiştir.
  3. Yeni verilerin dağıtılması ve eklenmesi doğrudan veri analizi iş akışına entegre edilir. Dolayısıyla, yeni bir metrik oluşturmak istiyorsanız, yalnızca değiştirmeniz, dbt’ye yeni bir SELECT sorgusu eklemeniz yeterlidir, gerisi halledilir.

Artık biraz bilgi sahibi olduğunuza göre, getdbt adresinde dbt hakkında daha fazla bilgi edinebilirsiniz.

Bu nedenle, dbt kullanılarak veri mühendisleri ve veri analistleri, analitik mühendisleri adı verilen tek bir rolde birleştirilebilir.

Veri Analitiği + Veri Mühendisleri = Analitik Mühendisleri

Bu nedenle, analiz mühendisleriniz, daha hızlı veri analizi için doğrudan etkileşim kurabilecekleri ve veri hatlarını değiştirebilecekleri için yazılım mühendisleri gibi hareket edebilirler.

Bu rollerin ne olduğunu bilmiyorsanız veya verilerle yeni oynamaya başlıyorsanız, dbt sertifikası almak için buradan dbt kursuna kaydolmayı unutmayın.

yıldızYeni başlayanlar için pratik projelerle bir dbt kursu başlatıyoruz. Kursa kayıt yaptıran ilk 20 kişi kursu ücretsiz, sonraki 30 kişi ise %50 indirimli alacaktır. Buraya kayıt olduğunuzdan emin olun.

  • İpucu: dbt hiçbir zaman büyük harfle yazılmaz.

Umarım bu yazı dbt hakkında bazı şeyleri açıklığa kavuşturur. Bir sonraki derste bunun hakkında konuşacağız.

  • dbt Cloud ve ilk dbt bulut projenizi kurmak için adım adım eğitim.

Posta listemize abone olarak ve bizi Twitter’da (@thetipseason) takip ederek web sitemize abone olmayı unutmayın.

Önerilen makaleler:

Google Carbon Programlama Dili Eğitimi

PostgreSQL ve MySQL Sözdizimi: Karşılaştırma ve Örneklerle Postgres ve MySQL Kullanımına İlişkin Yeni Başlayanlar Kılavuzu

Vitess + planetscale ile dbt (veri oluşturma aracı) mysql

2022’nin en sevilen 10 programlama dili ve hangi şirketlerin bunları kullandığı

Bu yazıyı beğeneceğinizi umuyoruz. Herhangi bir sorunuz veya öneriniz varsa veya başka ek bilgiye ihtiyacınız varsa lütfen aşağıya yorum yapın.

Diğer ilginç konular: