VertiPaq Motoru Nasıl Çalışır?

Herkese merhaba,

DAX’e giriş postumda bahsettiğim VertiPaq Motorun nasıl çalıştığını anlatmak istiyorum ama öncesinde kodlamadan (encoding) bahsetmem gerekir. Encoding genel olarak dataları nasıl sıkıştırıp sakladığınızla alakalı ve VertiPaq’de bu mantıkla çalışmakta. 3 çeşit kodlama şekli mevcut, bunları örneklerle açıklayayım.

  • Value Encoding: Mesela birden fazla şehirde oteliniz var. Herbir otelin database’indeki oda kodlaması: PlakaKodu_00_Kat_00_OdaNumarası şeklinde. Bursa’daki otelin 5. katındaki 19. oda için 160050019 kodunu kullanıyorsunuz. Bu oldukça uzun bir kod ve fazla yer tutuyor. Oda kodlarını bu şekilde saklamak yerine Value Encoding’e göre mümkün en küçük değeri alırsınız (160000000) geri kalan herşeyi delta olarak saklarsınız. Dolayısıyla 9 basamaklı 160050019’un yerine 5 basamaklı 50019 şeklinde saklarım.
  • Dictionary Encoding: Text değerleri için dictionary encoding kullanılır. Örneğin tekrar eden şehir listem var. Bu durumda motor her bir benzersiz değere sayı atar. Bursaya 1, İstanbul’a 2 vermesi gibi.. Buna bilgisayar bilimlerinde dictionary (sözlük) denir. Böylece gerçek değer ile sayısal anahtar arasında kısa bir ilişki kurulur ve yeni şehirler listesi anahtarlarla yeni değerleri alır. Böylece bilgisayarın verileri okuması veya işlemesi daha hızlı olur.

Adsız

  • Run-Lenght Encoding: Özellikle sıralama işleminin gerçekleştiği tekrarlanan değerlerin olduğu kolonlarda kullanılır. Verinin tekrarlanarak fazla yer almasının önüne geçmek için yukarıdaki şehir örneğine geri dönelim ve run-lenght encoding ile yeniden düzenleyelim ve hangi değerin kaç kere tekrar ettiğini saklayalım. Mesela Bursa 3 kere tekrar etmiş ve Bursa, Bursa, Bursa yazmaktansa “Bursa, 3” şeklinde yazıyorum.

Adsız

Görüldüğü gibi encoding ile büyük büyük veriler daha küçük sıkıştırılmış bir şekilde saklanabilir. Aynı mantık DAX’in kolon okuma motoru Vertipaq’de de var. Encoding geneleksel row-based veri depolamayla yapılamıyor, sadece kolon bazlı veri depolamada mevcut. Bu sebeple VertiPaq dataları kolon bazlıda daha hızlı okuyor ve DAX için analitik analizi mantıklı kılıyor.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s