İlginizi Çekebilir
  1. Ana Sayfa
  2. Teknoloji

DSMS Nedir? Veri Akışı Yönetim Sistemi

DSMS Nedir? Veri Akışı Yönetim Sistemi
DSMS Nedir? Veri Akışı Yönetim Sistemi
+ - 0

Merhaba, bu yazıda DSMS Nedir? Veri Akışı Yönetim Sistemi, Data stream management system nedir ona bakacağız… Bir veri akışı yönetim sistemi (DSMS), sürekli veri akışlarını yönetmek için bir bilgisayar yazılım sistemidir.

 

DSMS Nedir? Veri Akışı Yönetim Sistemi

DSMS Nedir?

Bir veri akışı yönetim sistemi (DSMS), sürekli veri akışlarını yönetmek için bir bilgisayar yazılım sistemidir. Bununla birlikte, geleneksel veritabanlarındaki statik veriler için tasarlanmış bir veritabanı yönetim sistemine (DBMS) benzer. Bir DBMS ayrıca, ihtiyaç duyulan bilgilerin sorgular kullanılarak ifade edilebilmesi için esnek bir sorgu işleme sunar. Ancak, bir VTYS’nin aksine, bir DSMS yalnızca bir kez gerçekleştirilmeyen, kalıcı olarak kurulan sürekli bir sorgu yürütür. Bu nedenle sorgu, açıkça kaldırılıncaya kadar sürekli olarak yürütülür. Çoğu DSMS veri odaklı olduğundan, sisteme yeni veriler geldiği sürece sürekli bir sorgu yeni sonuçlar üretir. Bu temel kavram, Karmaşık olay işlemeye benzer, böylece her iki teknoloji de kısmen birleşir.

 

İşlevsel İlke

Bir DSMS’nin önemli bir özelliği, ana bellek gibi yalnızca sınırlı kaynaklar olmasına rağmen, aynı anda esnek işleme sunarak potansiyel olarak sonsuz ve hızla değişen veri akışlarını işleme olasılığıdır. Aşağıdaki tablo, çeşitli DSMS ilkelerini sağlar ve bunları geleneksel VTYS ile karşılaştırır.

DSMS Nedir Veri Akışı Yönetim Sistemi

İşleme ve Akış Modelleri

Bir DSMS için en büyük zorluklardan biri, sabit miktarda bellek kullanarak ve verilere rastgele erişim olmadan potansiyel olarak sonsuz veri akışlarını ele almaktır. Tek geçişte veri miktarını sınırlamak için iki sınıfa ayrılabilecek farklı yaklaşımlar vardır. Bir yandan verileri özetlemeye çalışan sıkıştırma teknikleri, diğer yandan verileri (sonlu) parçalara bölmeye çalışan pencere teknikleri vardır.

Özetler

Sıkıştırma tekniklerinin ardındaki fikir, veri akışının tüm (ham) veri noktalarını değil, yalnızca verilerin bir özetini korumaktır. Algoritmalar, örnekleme adı verilen rastgele veri noktalarının seçilmesinden histogramlar, dalgacıklar veya eskiz kullanarak özetlemeye kadar uzanır. Sıkıştırmanın basit bir örneği, bir ortalamanın sürekli hesaplanmasıdır. Her bir veri noktasını ezberlemek yerine, özet yalnızca öğelerin toplamını ve sayısını tutar. Ortalama, toplamı sayıya bölerek hesaplanabilir. Ancak sinopsların verileri tam olarak yansıtmadığını da belirtmek gerekir. Bu nedenle, özetlere dayalı bir işleme, hatalı sonuçlar üretebilir.

Pencereler

Tüm veri akışlarının özelliklerini sıkıştırmak için özetler kullanmak yerine, pencere teknikleri verilerin yalnızca bir kısmına bakar. Bu yaklaşım, yalnızca en son verilerin alakalı olduğu fikriyle motive edilir. Bu nedenle, bir pencere sürekli olarak veri akışının bir bölümünü keser, örn. son on veri akışı öğesi ve yalnızca bu öğeleri işleme sırasında dikkate alır. FIFO listelerine benzeyen sürgülü pencereler veya ayrık parçaları kesen yuvarlanan pencereler gibi farklı türde pencereler vardır. Ayrıca pencereler, örneğin son on öğeyi dikkate almak için öğe tabanlı pencerelere veya örneğin son on saniyelik verileri dikkate almak için zaman tabanlı pencerelere de ayrılabilir. Pencereleri uygulamak için farklı yaklaşımlar da vardır. Örneğin, sistem çapında pencereler için zaman damgaları veya zaman aralıkları veya her bir tek işleme adımı için arabelleğe dayalı pencereler kullanan yaklaşımlar vardır. Kayar pencere sorgu işleme, farklı pencereler arasında ve/veya her pencere kapsamında paralellikten yararlanarak paralel işlemcilerde uygulanmaya da uygundur.

 

Sorgu İşleme

Çok sayıda prototip olduğu için standartlaştırılmış bir mimari yoktur. Bununla birlikte, çoğu DSMS, bir operatör planına çevrilen sorguları ifade etmek için bildirimsel dilleri kullanarak DBMS’de sorgu işlemeye dayanır. Bu planlar optimize edilebilir ve uygulanabilir. Bir sorgu işleme genellikle aşağıdaki adımlardan oluşur.

 

Sürekli Sorguların Formülasyonu

Sorguların formülasyonu çoğunlukla DBMS’deki SQL gibi bildirimsel diller kullanılarak yapılır. Sürekli sorguları ifade etmek için standartlaştırılmış sorgu dilleri olmadığından çok sayıda dil ve varyasyon vardır. Ancak, çoğu Sürekli Sorgu Dili (CQL – Continuous Query Language ), StreamSQL ve ESP gibi SQL’e dayalıdır. Ayrıca her bir işlem adımının bir kutu olduğu ve işlem akışının kutular arasında oklarla ifade edildiği grafiksel yaklaşımlar da vardır.

Dil, büyük ölçüde işleme modeline bağlıdır. Örneğin, işlem için pencereler kullanılıyorsa, bir pencerenin tanımının ifade edilmesi gerekir. StreamSQL’de, son 10 öğe için kayan pencereli bir sorgu aşağıdaki gibi görünür:

 

SELECT AVG(price) FROM examplestream [SIZE 10 ADVANCE 1 TUPLES] WHERE value > 100.0

Bu akış sürekli olarak son 10 grubun “fiyatının” ortalama değerini hesaplar, ancak yalnızca fiyatları 100.0’dan büyük olan grupları dikkate alır.

Bir sonraki adımda, bildirime dayalı sorgu, mantıksal bir sorgu planına çevrilir. Sorgu planı, düğümlerin operatörler olduğu ve kenarların işlem akışını tanımladığı yönlendirilmiş bir grafiktir. Sorgu planındaki her operatör, filtreleme veya toplama gibi belirli bir işlemin anlamını kapsüller. İlişkisel veri akışlarını işleyen DSMS’lerde, operatörler İlişkisel cebirin operatörlerine eşit veya benzerdir, böylece seçim, projeksiyon, birleştirme ve küme işlemleri için operatörler bulunur. Bu operatör konsepti, bir DSMS’nin çok esnek ve çok yönlü işlenmesine izin verir.

 

Sorguların Optimizasyonu

Mantıksal sorgu planı optimize edilebilir, bu da büyük ölçüde akış modeline bağlıdır. Sürekli sorguları optimize etmek için temel kavramlar, veritabanı sistemlerinden gelenlere eşittir. İlişkisel veri akışları varsa ve mantıksal sorgu planı, İlişkisel cebirdeki ilişkisel operatörleri temel alıyorsa, bir sorgu iyileştirici planı optimize etmek için cebirsel denklikleri kullanabilir. Bunlar, örneğin, birleştirme operatörleri gibi hesaplama açısından çok yoğun olmadıklarından, seçim operatörlerini kaynaklara itmek için olabilir.

Ayrıca, farklı eşdeğer sorgu planlarından en düşük maliyetli bir sorgu planının seçildiği DBMS’deki gibi maliyet tabanlı optimizasyon teknikleri de vardır. Bir örnek, iki ardışık birleştirme operatörünün sırasını seçmektir. DBMS’de bu karar çoğunlukla ilgili veritabanlarının belirli istatistikleri tarafından yapılır. Ancak, bir veri akışının verileri önceden bilinmediğinden, bir DGYS’de böyle bir istatistik yoktur. Ancak, bazı istatistikler elde etmek için belirli bir süre boyunca bir veri akışını gözlemlemek mümkündür. Bu istatistikleri kullanarak, sorgu daha sonra da optimize edilebilir. Bu nedenle, bir DBMS‘nin aksine, bazı DSMS, sorguyu çalışma zamanı sırasında bile optimize etmeye izin verir. Bu nedenle, bir DSMS, çalışan bir sorgu planını yenisiyle değiştirmek için bazı plan geçiş stratejilerine ihtiyaç duyar.

 

Sorguların Dönüştürülmesi

Bir mantıksal işleç, bir işlemin yalnızca semantiğinden sorumlu olduğu ve herhangi bir algoritma içermediği için, mantıksal sorgu planının yürütülebilir bir karşılığına dönüştürülmesi gerekir. Buna fiziksel sorgu planı denir. Mantıksal ve fiziksel operatör planı arasındaki ayrım, aynı mantıksal operatör için birden fazla uygulamaya izin verir. Örneğin birleştirme, iç içe döngü birleştirme veya Sıralama birleştirme birleştirme gibi farklı algoritmalar tarafından uygulanabilmesine rağmen mantıksal olarak aynıdır. Dikkat edin, bu algoritmalar aynı zamanda kullanılan akışa ve işleme modeline de büyük ölçüde bağlıdır. Son olarak, sorgu fiziksel bir sorgu planı olarak mevcuttur.

Sorguların Yürütülmesi

Fiziksel sorgu planı yürütülebilir algoritmalardan oluştuğu için doğrudan yürütülebilir. Bunun için fiziksel sorgulama planı sisteme yüklenir. Grafiğin alt kısmı (sorgu planının), sensörlere konektörler gibi her şey olabilen gelen kaynaklara bağlıdır. Grafiğin üst kısmı, örneğin bir görselleştirme olabilen, giden lavabolara bağlıdır. Çoğu DSMS veri odaklı olduğundan, kaynaktan gelen veri öğelerini sorgu planı aracılığıyla havuza iterek bir sorgu yürütülür. Bir veri öğesi bir operatörü her geçtiğinde, operatör veri öğesi üzerinde kendi özel işlemini gerçekleştirir ve sonucu ardışık tüm operatörlere iletir.

 


DSMS Nedir? Veri Akışı Yönetim Sistemi Yazımda bu kadardı.

Discord’a katılmayı unutmayın.

Tüm Üretim ve Yönetim Sistemleri kategorisine ait yazılara da bağlantıya tıklayarak ulaşabilirsiniz.

Tüm Programlama kategorisindeki yazılarıma bağlantıya tıklayarak ulaşabilirsiniz. SQL Eğitim Seti sayfasına bağlantıya tıklayarak ulaşabilirsiniz.

Diğer yazılarımızda görüşmek üzere…

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)