dbt-utils’ın, hazır makrolar, temel özellikler ve pratik kullanım senaryolarıyla dbt’i nasıl geliştirdiğini öğrenin. Adım adım rehberimizle veri dönüşümlerinizi kolaylaştırın.
dbt-utils paketi, veri dönüşüm süreçlerinizi basitleştiren ve geliştiren güçlü bir araç setidir. Bu rehberde, sık kullanılan SQL işlemleri için hazır makrolarıyla iş akışınızı nasıl hızlandırabileceğini göstererek dbt-utils’ı tanıtacağız.
dbt-utils nedir?
dbt-utils paketi
dbt-utils, dbt içinde projelerin işlevselliğini artıran, önceden oluşturulmuş makrolardan oluşan bir araç takımı sağlayan bir pakettir. dbt-utils, soyutlama katmanları ekleyerek karmaşıklığı azaltır; böylece daha verimli ve tutarlı veri dönüşümü sağlar.
Bu yardımcıları kullanmak, topluluk tarafından onaylanmış bir dizi makroyu projelerinize entegre ederek tekerleği yeniden icat etmenizi önler; bakım kolaylığını artırır ve en iyi uygulamalar kültürünü teşvik eder.
Temel özellikler ve işlevler
dbt-utils, veri dönüşümünü daha verimli ve düzenli hale getiren çeşitli özellikler ve işlevler sunar. Bunlar şunları içerir:
1. Standartlaştırılmış makrolar
dbt-utils, Jinja şablonlama kullanarak birleştirme, toplulaştırma, filtreleme ve daha fazlası gibi yaygın SQL işlemleri için geniş bir hazır makro yelpazesi sunar.
Bu makrolar, projeler arasında tutarlılığı sağlamak ve tekrarlayan kodlamaya olan ihtiyacı azaltmak için standartlaştırılmıştır.
date_spine: Belirlenen iki tarih arasında kesintisiz bir tarih dizisi oluşturur; zaman serisi analizi için kullanışlıdır.
pivot: Satırları dinamik olarak sütunlara dönüştürür, çapraz tablo işlemlerini basitleştirir.
star: Modeldeki belirtilen tablolardan tüm alanları, except argümanındakiler hariç olacak şekilde alır.
union_relations: Aynı yapıya sahip birden fazla ilişkideki veriyi union all ile birleştirir.
generate_series: Sayısal bir dizi oluşturur; zaman serisi analizi için pratiktir.
surrogate_key: Birden çok alanı birleştirerek satırlar için benzersiz bir tanımlayıcı üretir.
Bu makrolarla SQL, aksi halde karmaşık ve tekrarlı olan görevleri gerçekleştirebilir.
2. Şema ve dokümantasyon desteği
dbt-utils, veri modelleri içinde şemaları ve dokümantasyonu yönetmek için faydalı araçlar sunar. Bu, değişiklikleri takip etmeyi ve projelerde düzeni korumayı kolaylaştırır.
4. Test etme yetenekleri
dbt-utils ile kullanıcılar, veri dönüşümlerinin doğruluğunu ve kalitesini sağlamak için kolayca testler yazabilir. Bu testler otomatikleştirilebilir ve sürekli entegrasyon süreçlerine entegre edilebilir; böylece daha verimli ve güvenilir veri hatları oluşturulur.
Neden dbt-utils Kullanmalı?
Peki, neden bu paketi kullanmalısınız?
Önce bazı faydalarına bakalım:
Karmaşık SQL’i basitleştirir: Makroların kullanımıyla dbt-utils, karmaşık SQL sorgularının yazılmasını kolaylaştırır. Bu, veri analistleri ve mühendisleri için zaman ve emek tasarrufu sağlar; kodda boğulmak yerine daha üst düzey analizlere odaklanmalarına imkân tanır.
Verimli dokümantasyon: Daha önce belirtildiği gibi, dbt-utils dokümantasyonu otomatik olarak oluşturmaya yardımcı olabilir.
Artan kalite kontrolü: Veri hatlarına test yetenekleri ekleyerek dbt-utils, veri dönüşümlerinin doğruluğunu ve güvenilirliğini sağlamaya yardımcı olur.
Otomatik veri doğrulama: dbt-utils ile veri doğrulama otomatikleştirilebilir ve geliştirme sürecine entegre edilebilir. Bu sayede veri modellerinde yapılan değişiklikler anında doğrulanır ve olası sorunlar erken aşamada yakalanır.
Açık kaynak: dbt-utils açık kaynaklıdır; bu sayede pek çok geliştirici paketin geliştirilmesine katkıda bulunabilir. Bu da paketin sürekli güncelleneceği anlamına gelir.
dbt-utils Kurulumu ve Yapılandırması
Aşağıda dbt-utils paketinin veri iş akışınıza nasıl dahil edilebileceğine bakalım.
Önkoşullar
dbt-utils’ı kullanmadan önce SQL’e aşinalık ve dbt (data build tool) temel prensiplerini anlama zorunludur. Halihazırda başlatılmış ve yapılandırılmış bir dbt projeniz olmalıdır.
Ayrıca, dbt core sürümünüz ile dbt-utils paketi arasında net bir sürüm uyumu gereklidir. Çakışmaları veya kullanım dışı işlevleri önlemek için dbt sürümleri arasındaki uyumluluğu kontrol etmeniz önerilir.
Adım adım kurulum
dbt-utils’ı veri yığınına entegre etmeye başlamak için önce geliştirme ortamınızın doğru şekilde kurulduğundan emin olun.
Adım 1: dbt’yi kurun
Önce, ortamınıza dbt’nin kurulu olduğundan emin olun. dbt’yi pip ile kurabilirsiniz:
Bu komut, packages.yml”a listelenen tüm paketleri kurar.
dbt-utils’ın Temel Yardımcıları ve Uygulamaları
dbt-utils paketi, dbt projelerinde SQL dönüşümlerini kolaylaştıran yaygın yardımcı işlevlerden oluşan bir set sağlar.
Bu işlevler, geliştiricilerin tekrara düşmesini önlemeye ve benzersiz iş mantıklarına odaklanmalarına yardımcı olur.
dbt-utils’taki bazı işlevler şunlardır:
1. SQL üreticileri
dbt-utils’taki SQL üreticileri, modüler SQL kodu oluşturmak için kullanışlıdır.
Örneğin, deduplicate makroları, verinin sırasını korurken yinelenen satırları ortadan kaldırmak için idealdir. Yinelenenler, modellerden, tablolardan ve hatta Common Table Expression (CTE)’lerden kaldırılabilir.
2. Genel testler
Genel testler, bir tablo veya görünümdeki veriyi doğrulamak için kullanılır. Belirli gereksinimlere uyacak şekilde kolayca özelleştirilebilir ve işlenen verinin kalitesi hakkında değerli içgörüler sağlar.
Örneğin, expression_is_true makrosu belirli bir ifadenin doğru olup olmadığını kontrol eder. Bu esnek biçimde şu koşulları doğrulamak için kullanılabilir:
Sütun uzunluğu
Belirli bir temel cebirsel işlemin çıktısı
3. Jinja yardımcıları
Jinja yardımcıları, kullanıcı girdisine veya değişken verilere göre kolayca özelleştirilebilen dinamik SQL sorguları oluşturmak için kullanışlıdır. SQL ifadeleri içinde koşullu mantık ve döngülere izin verirler.
Jinja şablonları, bu makroları tanımlamak ve belirtmek için kullanılır.
Bir örnek, geçerli zaman damgasının bir dizesini döndüren pretty_time makrosudur.
4. Web makroları
Web makroları, Jinja yardımcılarına benzer ancak özellikle web tabanlı projeler için tasarlanmıştır. Dinamik HTML üretimi ve işlenmesine olanak tanır; etkileşimli ve duyarlı web sayfalarını oluşturmayı kolaylaştırır.
Kullanışlı bir makro, URL’nin sayfa yolunu alan get_url_path makrosudur. Sözdizimi şu şekildedir:
İçe dönük makrolar, mevcut kapsam içindeki verilere erişebilen ve onları işleyebilen makrolardır. Bu, dinamik ve verimli veri işleme sağlar; ek işlev veya koda duyulan ihtiyacı azaltır.
Bir örnek, sorgu sonuçlarını bir nesne olarak döndüren get_column_values makrosudur.
dbt-utils’ın Pratik Kullanım Senaryoları
Kullanım senaryosu 1: Karmaşık sorguları basitleştirme
Örnek senaryo: Bir şirketin müşteri bilgileri, işlem verileri ve ürün verilerini içeren büyük bir veri kümesi var. Geçen çeyrekte her ürün kategorisi için toplam satışları gösteren bir rapor oluşturmaları gerekiyor.
Birden fazla tabloyu birleştirmek ve her kategori için satışları hesaplamak için karmaşık SQL sorguları yazmak yerine, ilgili verileri kolayca çıkarmak ve makroları veya modelleri içinde işlemek için dbt-utils kullanabilirler.
Örneğin, ürün verileriyle ilgili yalnızca gerekli sütunları filtrelemek için get_filtered_columns_in_relation kullanılabilir ve ardından her kategori için toplam satışları hesaplamak üzere sum makrosu kullanılabilir.
Bu, süreci basitleştirir ve daha verimli hale getirir; zaman kazandırır ve hataları azaltır.
Kod uygulaması:
Bu çözümü bir örnek veritabanında uygulamak için şu adımları izleyebilirsiniz:
get_filtered_columns_in_relation makrosunu kullanarak ürün verilerinden yalnızca gerekli sütunları filtreleyin. Bu makro, ilgili sütunları verimli bir şekilde seçmenize yardımcı olacaktır.
Ardından, ürün, işlem ve müşteri verilerini birleştiren bir model oluşturun. Sonra, geçen çeyrekte her ürün kategorisi için toplam satışları hesaplamak üzere sum işlevini kullanın.
-- models/total_sales_by_category.sqlwith product_data as(select
{{ dbt_utils.get_filtered_columns_in_relation(
relation=ref('products'),
include=['product_id','category']) }}
from {{ ref('products') }}
),
transaction_data as(select
product_id,
sale_amount,
transaction_date
from {{ ref('transactions') }}
where transaction_date >= date_trunc('quarter',current_date)-interval'1 quarter'),
joined_data as(select
p.category,
t.sale_amount
from product_data p
join transaction_data t
on p.product_id = t.product_id
)select
category,sum(sale_amount)as total_sales
from joined_data
groupby categoryAltyapı:
Modelleri tanımladıktan sonra dönüşümleri çalıştırmak ve raporu oluşturmak için dbt modellerini çalıştırın.
get_filtered_columns_in_relation makrosu, products tablosundan yalnızca gerekli sütunların (product_id ve category) seçilmesine yardımcı olur ve veri setini basitleştirir.
Sonrasında, filtrelenmiş ürün verileri, her ürün için satış tutarlarını elde etmek amacıyla SQL ile işlem verileriyle birleştirilir. Ardından, sum toplulaştırma işlevi kullanılarak son çeyrek içinde her ürün kategorisi için toplam satışlar hesaplanır.
Kullanım senaryosu 2: Genel testlerle veri kalitesini sağlama
Örnek senaryo:
Bu kullanım senaryosunda, Kullanım Senaryosu 1’deki aynı örnek veri kümesiyle çalışmaya devam edeceğiz. Ancak bir rapor oluşturmaktansa, hedefimiz veriye genel testler çalıştırarak veri kalitesini sağlamak olacak.
Kod uygulaması:
Aşağıda bu testleri veri kümeniz için nasıl uygulayacağınıza dair örnekler yer alıyor:
1. Boş değer oranını test etme
Bu genel testte, yalnızca belirlediğimiz boş olmayan oranına uyan değerleri kabul edeceğiz. Bunu not_null_proportion testiyle yapacağız.
Bu örnekte, transactions tablosundaki tüm product_id değerlerinin tablosundaki geçerli kayıtlara karşılık geldiğinden emin oluyoruz. Bu, temel bir ilişki bütünlüğü kontrolüdür.
Birden fazla testi aynı anda birleştirerek çeşitli bütünlük kontrollerini birlikte kapsayabileceğinizi unutmayın.
Tüm testler yaml yapılandırma dosyanızda tanımlandıktan sonra, tanımlı tüm şema testlerini çalıştırmak için dbt test komutunu kullanın.
dbt kullanırken, projenizin verimli ve etkili bir şekilde çalışmasını sağlamak için en iyi uygulamaları takip etmek önemlidir. dbt-utils kullanırken akılda tutulması gereken bazı temel noktalar şunlardır:
Testleri ayrı ayrı tanımlamak yerine birleştirin: Daha önce belirtildiği gibi, birden fazla testi tek bir test ifadesinde birleştirebilirsiniz. Bu, tekrarı azaltır ve projenizin genel performansını iyileştirir.
Vekil anahtarlar oluştururken dbt_utils.surrogate_key makrosunu kullanın: Bu makro, tablonuzdaki diğer sütunlara dayanarak vekil anahtarları otomatik olarak üretir; zamandan ve emekten tasarruf sağlar.
Yaygın tuzaklar ve bunlardan kaçınma yolları
İşte dbt-utils kullanırken kullanıcıların karşılaşabileceği yaygın tuzaklar ve bunlardan kaçınmaya yönelik ipuçları:
Özel makroların doğru yapılandırılmaması: Kendi özel makrolarınızı oluşturuyorsanız, projeye dahil etmeden önce bunların doğru yapılandırıldığından ve test edildiğinden emin olun.
dbt-utils’ın en son sürümüne güncellememek: Yeni özelliklerden ve hata düzeltmelerinden yararlanmak için dbt-utils’ı düzenli olarak en son sürüme güncellemek önemlidir.
Sonuç
dbt-utils, veri modelleme sürecinizde görevleri kolaylaştırmak, test etmek ve otomatikleştirmek için güçlü bir araçtır. dbt kullanımının vazgeçilmez bir parçasıdır ve veri modellerinizi geliştirirken size zaman ve emek kazandırabilir.
Ben Austin, sağlık sektöründe veri bilimci ve veri analisti olarak yıllara dayanan deneyime sahip bir blogger ve teknoloji yazarıyım. Biyoloji geçmişiyle başladığım teknoloji yolculuğumda, şimdi teknoloji blogum aracılığıyla başkalarının da aynı geçişi yapmasına yardımcı oluyorum. Teknolojiye olan tutkum, onlarca SaaS şirketine yazılı katkılar sunmama, başkalarına ilham vermeme ve deneyimlerimi paylaşmama vesile oldu.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Verileri verimli bir şekilde almak, temizlemek, yönetmek, işlem hatlarını planlamak ve izlemek için talep edilen becerileri kazanın ve veri mühendisliği alanında fark yaratın.
dbt-utils paketi, veri dönüşüm süreçlerinizi basitleştiren ve geliştiren güçlü bir araç setidir. Bu rehberde, sık kullanılan SQL işlemleri için hazır makrolarıyla iş akışınızı nasıl hızlandırabileceğini göstererek dbt-utils’ı tanıtacağız.
dbt-utils nedir?
dbt-utils paketi
dbt-utils, dbt içinde projelerin işlevselliğini artıran, önceden oluşturulmuş makrolardan oluşan bir araç takımı sağlayan bir pakettir. dbt-utils, soyutlama katmanları ekleyerek karmaşıklığı azaltır; böylece daha verimli ve tutarlı veri dönüşümü sağlar.
Eğer Python’daki kütüphanelere ve R’deki paketlere aşinaysanız, dbt-utils buna benzer bir yapı sunar.
Sık kullanılan Structured Query Language (SQL) işlemleri için standartlaştırılmış bu makrolar sayesinde tüm dönüşümleri sıfırdan kodlamanın zorluğu ortadan kalkar.
Bu yardımcıları kullanmak, topluluk tarafından onaylanmış bir dizi makroyu projelerinize entegre ederek tekerleği yeniden icat etmenizi önler; bakım kolaylığını artırır ve en iyi uygulamalar kültürünü teşvik eder.
Temel özellikler ve işlevler
dbt-utils, veri dönüşümünü daha verimli ve düzenli hale getiren çeşitli özellikler ve işlevler sunar. Bunlar şunları içerir:
1. Standartlaştırılmış makrolar
dbt-utils, Jinja şablonlama kullanarak birleştirme, toplulaştırma, filtreleme ve daha fazlası gibi yaygın SQL işlemleri için geniş bir hazır makro yelpazesi sunar.
Bu makrolar, projeler arasında tutarlılığı sağlamak ve tekrarlayan kodlamaya olan ihtiyacı azaltmak için standartlaştırılmıştır.
Örneğin, analitik mühendisleri tarafından kullanılan bazı makrolar şunlardır:
date_spine: Belirlenen iki tarih arasında kesintisiz bir tarih dizisi oluşturur; zaman serisi analizi için kullanışlıdır.pivot: Satırları dinamik olarak sütunlara dönüştürür, çapraz tablo işlemlerini basitleştirir.star: Modeldeki belirtilen tablolardan tüm alanları,exceptargümanındakiler hariç olacak şekilde alır.union_relations: Aynı yapıya sahip birden fazla ilişkideki veriyiunion allile birleştirir.generate_series: Sayısal bir dizi oluşturur; zaman serisi analizi için pratiktir.surrogate_key: Birden çok alanı birleştirerek satırlar için benzersiz bir tanımlayıcı üretir.Bu makrolarla SQL, aksi halde karmaşık ve tekrarlı olan görevleri gerçekleştirebilir.
2. Şema ve dokümantasyon desteği
dbt-utils, veri modelleri içinde şemaları ve dokümantasyonu yönetmek için faydalı araçlar sunar. Bu, değişiklikleri takip etmeyi ve projelerde düzeni korumayı kolaylaştırır.
4. Test etme yetenekleri
dbt-utils ile kullanıcılar, veri dönüşümlerinin doğruluğunu ve kalitesini sağlamak için kolayca testler yazabilir. Bu testler otomatikleştirilebilir ve sürekli entegrasyon süreçlerine entegre edilebilir; böylece daha verimli ve güvenilir veri hatları oluşturulur.
Neden dbt-utils Kullanmalı?
Peki, neden bu paketi kullanmalısınız?
Önce bazı faydalarına bakalım:
dbt-utils Kurulumu ve Yapılandırması
Aşağıda dbt-utils paketinin veri iş akışınıza nasıl dahil edilebileceğine bakalım.
Önkoşullar
dbt-utils’ı kullanmadan önce SQL’e aşinalık ve dbt (data build tool) temel prensiplerini anlama zorunludur. Halihazırda başlatılmış ve yapılandırılmış bir dbt projeniz olmalıdır.
Tazeleme ihtiyacınız varsa, Introduction to dbt kursumuza ve dbt öğreticisine göz atabilirsiniz.
Ayrıca, dbt core sürümünüz ile dbt-utils paketi arasında net bir sürüm uyumu gereklidir. Çakışmaları veya kullanım dışı işlevleri önlemek için dbt sürümleri arasındaki uyumluluğu kontrol etmeniz önerilir.
Adım adım kurulum
dbt-utils’ı veri yığınına entegre etmeye başlamak için önce geliştirme ortamınızın doğru şekilde kurulduğundan emin olun.
Adım 1: dbt’yi kurun
Önce, ortamınıza dbt’nin kurulu olduğundan emin olun. dbt’yi pip ile kurabilirsiniz:
Adım 2: dbt-utils’ı dbt projenize ekleyin
dbt-utils’ı kurmak için, dbt proje kök dizininizdeki packages.yml dosyasına aşağıdakileri ekleyin.
Bu dosya yoksa dbt proje kökünde oluşturun ve şunları ekleyin:
Bu yaml dosyasında gerekli paket sürümünü de belirteceksiniz. Kurulu dbt sürümünüzle uyumlu en güncel sürümü kullandığınızdan emin olun.
Adım 3: Paketi kurun
Değişikliklerden sonra kurulum yalnızca bir komut uzağınızda.
Bu komutun başarıyla çalışması dbt-utils’ı indirip kuracak ve gelişmiş işlevler için sizi hazırlayacaktır.
dbt proje dizininizde terminalden şu komutu çalıştırın:
Bu komut, packages.yml”a listelenen tüm paketleri kurar.
dbt-utils’ın Temel Yardımcıları ve Uygulamaları
dbt-utils paketi, dbt projelerinde SQL dönüşümlerini kolaylaştıran yaygın yardımcı işlevlerden oluşan bir set sağlar.
Bu işlevler, geliştiricilerin tekrara düşmesini önlemeye ve benzersiz iş mantıklarına odaklanmalarına yardımcı olur.
dbt-utils’taki bazı işlevler şunlardır:
1. SQL üreticileri
dbt-utils’taki SQL üreticileri, modüler SQL kodu oluşturmak için kullanışlıdır.
Örneğin,
deduplicatemakroları, verinin sırasını korurken yinelenen satırları ortadan kaldırmak için idealdir. Yinelenenler, modellerden, tablolardan ve hatta Common Table Expression (CTE)’lerden kaldırılabilir.2. Genel testler
Genel testler, bir tablo veya görünümdeki veriyi doğrulamak için kullanılır. Belirli gereksinimlere uyacak şekilde kolayca özelleştirilebilir ve işlenen verinin kalitesi hakkında değerli içgörüler sağlar.
Örneğin,
expression_is_truemakrosu belirli bir ifadenin doğru olup olmadığını kontrol eder. Bu esnek biçimde şu koşulları doğrulamak için kullanılabilir:3. Jinja yardımcıları
Jinja yardımcıları, kullanıcı girdisine veya değişken verilere göre kolayca özelleştirilebilen dinamik SQL sorguları oluşturmak için kullanışlıdır. SQL ifadeleri içinde koşullu mantık ve döngülere izin verirler.
Jinja şablonları, bu makroları tanımlamak ve belirtmek için kullanılır.
Bir örnek, geçerli zaman damgasının bir dizesini döndüren
pretty_timemakrosudur.4. Web makroları
Web makroları, Jinja yardımcılarına benzer ancak özellikle web tabanlı projeler için tasarlanmıştır. Dinamik HTML üretimi ve işlenmesine olanak tanır; etkileşimli ve duyarlı web sayfalarını oluşturmayı kolaylaştırır.
Kullanışlı bir makro, URL’nin sayfa yolunu alan
get_url_pathmakrosudur. Sözdizimi şu şekildedir:5. İçe dönük (introspektif) makrolar
İçe dönük makrolar, mevcut kapsam içindeki verilere erişebilen ve onları işleyebilen makrolardır. Bu, dinamik ve verimli veri işleme sağlar; ek işlev veya koda duyulan ihtiyacı azaltır.
Bir örnek, sorgu sonuçlarını bir nesne olarak döndüren
get_column_valuesmakrosudur.dbt-utils’ın Pratik Kullanım Senaryoları
Kullanım senaryosu 1: Karmaşık sorguları basitleştirme
Örnek senaryo: Bir şirketin müşteri bilgileri, işlem verileri ve ürün verilerini içeren büyük bir veri kümesi var. Geçen çeyrekte her ürün kategorisi için toplam satışları gösteren bir rapor oluşturmaları gerekiyor.
Birden fazla tabloyu birleştirmek ve her kategori için satışları hesaplamak için karmaşık SQL sorguları yazmak yerine, ilgili verileri kolayca çıkarmak ve makroları veya modelleri içinde işlemek için dbt-utils kullanabilirler.
Örneğin, ürün verileriyle ilgili yalnızca gerekli sütunları filtrelemek için
get_filtered_columns_in_relationkullanılabilir ve ardından her kategori için toplam satışları hesaplamak üzere sum makrosu kullanılabilir.Bu, süreci basitleştirir ve daha verimli hale getirir; zaman kazandırır ve hataları azaltır.
Kod uygulaması:
Bu çözümü bir örnek veritabanında uygulamak için şu adımları izleyebilirsiniz:
get_filtered_columns_in_relationmakrosunu kullanarak ürün verilerinden yalnızca gerekli sütunları filtreleyin. Bu makro, ilgili sütunları verimli bir şekilde seçmenize yardımcı olacaktır.Ardından, ürün, işlem ve müşteri verilerini birleştiren bir model oluşturun. Sonra, geçen çeyrekte her ürün kategorisi için toplam satışları hesaplamak üzere sum işlevini kullanın.
Modelleri tanımladıktan sonra dönüşümleri çalıştırmak ve raporu oluşturmak için dbt modellerini çalıştırın.
Yukarıdaki kodun açıklaması:
get_filtered_columns_in_relationmakrosu, products tablosundan yalnızca gerekli sütunların (product_id ve category) seçilmesine yardımcı olur ve veri setini basitleştirir.Sonrasında, filtrelenmiş ürün verileri, her ürün için satış tutarlarını elde etmek amacıyla SQL ile işlem verileriyle birleştirilir. Ardından, sum toplulaştırma işlevi kullanılarak son çeyrek içinde her ürün kategorisi için toplam satışlar hesaplanır.
Kullanım senaryosu 2: Genel testlerle veri kalitesini sağlama
Örnek senaryo:
Bu kullanım senaryosunda, Kullanım Senaryosu 1’deki aynı örnek veri kümesiyle çalışmaya devam edeceğiz. Ancak bir rapor oluşturmaktansa, hedefimiz veriye genel testler çalıştırarak veri kalitesini sağlamak olacak.
Kod uygulaması:
Aşağıda bu testleri veri kümeniz için nasıl uygulayacağınıza dair örnekler yer alıyor:
1. Boş değer oranını test etme
Bu genel testte, yalnızca belirlediğimiz boş olmayan oranına uyan değerleri kabul edeceğiz. Bunu
not_null_proportiontestiyle yapacağız.Bu örnekte, boş olmayan oranını en az 0,95 olacak şekilde ayarlamak için isteğe bağlı bir
at_leastargümanı ekledik.2. Boş alanları test etme
Bu örnekte,
product_idalanındaki boş dizeleri kontrol etmek içinnot_empty_stringtestini kullanacağız.3. İlişkisel bütünlüğü test etme
relationships_whereişlevinin kullanılması, transactions tablosundaki herproduct_iddeğerinin products tablosunda bulunduğunu garanti eder.Bu örnekte,
transactionstablosundaki tümproduct_iddeğerlerinin tablosundaki geçerli kayıtlara karşılık geldiğinden emin oluyoruz. Bu, temel bir ilişki bütünlüğü kontrolüdür.Birden fazla testi aynı anda birleştirerek çeşitli bütünlük kontrollerini birlikte kapsayabileceğinizi unutmayın.
Tüm testler yaml yapılandırma dosyanızda tanımlandıktan sonra, tanımlı tüm şema testlerini çalıştırmak için dbt test komutunu kullanın.
dbt-utils En İyi Uygulamalar
dbt-utils’ı verimli biçimde kullanma
dbt kullanırken, projenizin verimli ve etkili bir şekilde çalışmasını sağlamak için en iyi uygulamaları takip etmek önemlidir. dbt-utils kullanırken akılda tutulması gereken bazı temel noktalar şunlardır:
Yaygın tuzaklar ve bunlardan kaçınma yolları
İşte dbt-utils kullanırken kullanıcıların karşılaşabileceği yaygın tuzaklar ve bunlardan kaçınmaya yönelik ipuçları:
Sonuç
dbt-utils, veri modelleme sürecinizde görevleri kolaylaştırmak, test etmek ve otomatikleştirmek için güçlü bir araçtır. dbt kullanımının vazgeçilmez bir parçasıdır ve veri modellerinizi geliştirirken size zaman ve emek kazandırabilir.
Şu dbt öğreticisi veya şu alternatif veri mühendisliği araçları listesi de faydalı olabilir.
dbt ile çalışmaya başlamak istiyor ve daha fazla öğrenme fırsatı arıyorsanız, Introduction to dbt Course kursumuzu da inceleyin!