BiSoft Logo

Hizmetler

Ürünler

Ortaklık

Blog

Turkish

Genel

Pentaho Data Integration ile Eksik Günlerdeki Değerleri Doldurmak

Pentaho Data Integration ile Eksik Tarihleri Doldurma

Pentaho Data Integration ile çalışırken bazı durumlarda eksik günlerdeki değerleri doldurmak gibi bir ihtiyaç olabilir. Bununla ilgili küçük bir tutorial ile bunun nasıl yapılacağını anlatacağım.

Problemi Tanımlayalım

Öncelikle problemi tarif ederek başlayalım. Elimizde sıralı ama aralıklı tarihler içeren bir değer listesi olsun. En basit örnek olarak EVDS API'si üzerinden döviz kurlarını çektiğimizi düşünebiliriz. Bu durumda elimizdeki döviz kurları listesinde hafta sonu ve diğer tatil günleri için kur değeri olmayacaktır.

Bizim amacımız eksik kalan günleri, o günden önceki en son kur ile tamamlayarak eksik gün kalmamasını sağlamak.


Bu örnekte hafta sonları eksik kalan veri açıkça görünüyor

Bu örnekte hafta sonları eksik kalan veri açıkça görünüyor.

Eksik Tarih Aralıklarını Tespit Etme

Öncelikle bir Analytic Query adımı ekleyerek eksik kalan aralıkların tespiti için zemin hazırlıyoruz.

Analytic Query ayarları

Bu noktada öncelikli amacımız eksik kalan tarihler için aralıkları oluşturabilmek.

Aradaki Boş Gün Sayısını Hesaplama

Bir sonraki adımda aradaki boş gün sayılarını hesaplamamız gerekiyor. Bunun için JavaScript Step kullanıyoruz.


JavaScript Step


JavaScript kodu

Bir önceki adımda Analytic Query ile ürettiğimiz date_end alanını kullanarak aradaki gün sayısını hesaplıyoruz ve gap diye isimlendirdiğimiz alana yazıyoruz.

Burada sonucun 1 çıkması arada boş gün olmadığını, 1'den büyük çıkması ise boş gün olduğunu gösteriyor. Bu yüzden en sonda -1 ile küçük bir düzeltme yapıyoruz.

Ayrıca scriptin üst tarafında, en son günden sonra gün olmadığı için de küçük bir düzeltmemiz var.

Eksik Satırları Clone Row ile Oluşturma

Şimdi de satırlarımızı çoğaltarak eksik satırlarımızı tamamlayacağız. Bunun için Clone Row adımını kullanıyoruz.


Clone Row adımı


Clone Row ayarları

Burada püf noktası, bir önceki adımda hesapladığımız gap kadar clone üretmek. Böylece eksik günleri tamamlıyoruz.

Ancak dikkat ederseniz _date alanı eksik günler için kendisini tekrarlıyor ve bu alanda son bir düzeltme yapmak gerekiyor. Preview'deki 5, 6 ve 7 numaralı satırlarda bunu görebilirsiniz.

Bunu yapmak için de bu adımda day_num isimli bir değişken üretiyoruz.

Tarihleri Düzelterek Eksik Günleri Tamamlama

Son düzeltme için bir kez daha JavaScript Step kullanacağız.


Son JavaScript adımı


Tarih düzeltme kodu

_date alanına day_num kadar gün ekleyerek tarihlerdeki düzeltmeyi yapıyoruz ve eksik kalan günler bu şekilde tamamlanmış oluyor.

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

İş büyümesi ve verimliliği için akıllı veri çözümleri

Şirket

Hizmetler

Ürün

Vispeahen

BFM

BFM4Patroni

Daha fazla içerik