24 Jul 2015

Amatörler için In-Memory Veritabanı…




Haziran sayısında Big Data’ya nereden başlasak demiştim. Yapılan anketlere göre kurum dışı veriler yerine kurum içi verilerle, transaction bilgileri, Sistem Logları gibi, yola çıkmanın genel kabul gördüğü ortadaydı. Bir yandan da insanlık olarak çılgınca veri ve bilgi üretmeye devam ediyoruz. Google CEO’su Eric Schmidt’e göre insanlığın sadece iki gün içinde ürettiği bilgi miktarı, uygarlığın başından 2003’e kadar geçen zamanda üretilen miktara eşit. Bir başka tahminse, her yıl üretilen verilerin toplamı, 2020’de 44 zettabyte olacak. (1 ZettaByte = 1 Milyar Terabyte)

Bu tahminler doğru olsa da olmasa da gerçek olan, geleneksel veri tabanlarının ve araçlarının, bu patlayan hacimlerde ki veriyi saklamak ve işlemek için çok da uygun olmayacağı yönünde. Örneğin Hadoop, açık kaynak veri saklama ve işleme mimarisi, sadece birkaç yılda Web 2.0 şirketlerinin giriş mimarisinden, modern kurumsal veri mimarilerine doğru geçiş döneminde.  Ama hep şunu diyoruz ki, saklamak ve işlemek önemli ama değer üretmedikçe, bu değeri de zamanında son kullanıcıya servis edemedikçe, arkadaki mükemmel teknolojinin de önemi değersizleşiyor. Örneğin bir perakende uygulamasında, müşteriye sunulacak hizmet veya katma değerli ürünün zamanında analiz edilip servis edilmemesi rekabet koşullarında olmazsa olmaz.

Hadoop Teknolojileri, büyük miktar veriyi saklamak ve işlemek için ideal olsa da, Real-Time Operation, Real-Time Analytic, Inline Analytic, InDatabase Scoring gibi yükler için uygun değil hala. Bu tarz yükler için yeni bir model gerekiyor ki o da “In-Memory VeriTabanları”

In-Memory VeriTabanları’nın, Geleneksel veritabanları ve Hadoop sistemlerinden ayrılan en önemli farkı, verileri geleneksel dönen başlıklı diskler yerine, dynamic random-access memory (DRAM) üzerinde saklamalarıdır. DRAM üzerinde yapılan I/O işlermleri, diğer diskler üzerine yapılanlardan ciddi oranda daha hızlıdır ki bu da veri merkezli analiz uygulamalarında yüksek performans beklentisinin gereği olarak önümüze konur.

In-memory veritabanları yeni olmamakla birlikte, ana akım kurumsal uygulamalarda gittikçe daha fazla yer alıyor. Bunun en önemli sebebi, son on yılda memory fiatlarının ciddi oranda ucuzlaması ve bütün verilerin DRAM’da saklanarak, In-Memory Database tabanlı uygulamanın fiat/performansının satın alınabilir, uygulanabilir hale gelmesidir. Bununla beraber, Columnar Mimarisi, Data Skipping Teknolojileri, Yüksek-Oranlı veri sıkıştırmaları gibi yetenekler de In-Memory VeriTabanları’nın uygulanabilirliğini arttırmıştır.

In-Memory Veritabanlarının ilk uygulamaları ad-tech işindedir. Örneğin bir ticari web sitesine logon olduğunuzda, size uygun ürünlerin teklif edilmesi veya size uygun reklamların önünüze çıkması ad-tech olarak adlandırılır. Bütün bunlar ancak ışık hızı ile yapılan analiz uygulamaları yani arka planda In-Memory VeriTabanları ile mümkün.

Veritabanı üreticileri de bu gelişmelere kayıtsız kalamayacakları için geleneksel ürünlerine In-Memory Database özellikleri eklemekte ya da yeni ürünler çıkarmaktadır.
 
Gerçek hayatta In-Memory Veritabanları ve Hadoop Platformları birbirlerinin tamamlayıcı olarak karşımıza çıkarlar. Kurumsal Big Data Mimarilerinde denklemin bu iki yanını bir araya getiren işletmeler diğerlerinden bir adım önde olacak.

İlişkisel Model’den, NoSQL’e





Veri Tabanı ile çalışmayan kalmadı. Klasik uğraşı alanları, DBA, Uygulama Programcısı, Veri Modeli Tasarımcılığından, Veri Madenciliği, Veri Bilimcisi gibi yepyeni iş alanlarına kadar türlü çeşit uzmanlık alanı ortaya çıktı. Yazılımla uğraşıp, SQL (Structured Query Language) bilmeyen ve duymayan da kalmamıştır herhalde.

NoSQL’de bu dönem o şekilde. NoSQL yeni bir veritabanı sistemi veya modeli olarak adlandırılabilir. Geleneksel veri tabanı üreticileri (IBM, Oracle, Microsoft vb.) geliştirdikleri veritabanlarıyla (DB2, Oracle, SQLServer) geleneksel veri tiplerini saklamak, yönetmek üzerine tasarlanmış, verinin doğruluğunu, herzaman tutarlı ve kararlı olarak saklanabilmesini, ulaşılabilir olmasını temel kriterleri olarak önceliklendirmişler ve bunlara göre çok sağlam motorlar geliştirmişlerdir. Bu veritabanları yıllar boyunca öncelikle “mission-critical” veri saklanmasını gerektiren bütün alanlarda görevlerini yapmaya devam etmektedirler.

NoSQL olarak adlandırılan model, yukarıdaki geleneksel modelin dışında, veri saklama, veriye ulaşma ve tutarlılığının ikinci planda kaldığı ihtiyaçların daha öne çıkması ile ortaya çıktı. Bu belirleyici faktör özellikle veri modelcilerin bakış açılarını da değiştirmesini gerektiriyor. Ama Nasıl ?

Ölçekleme Modeli
Ölçekleme açısından bakılınca, İlişkisel Model, “scale up” olarak adlandırılan bir teknolojidir. Kapasite eklemek için, gerek depolama ünitesi, gerekse I/O artışı anlamında, daha büyük sunucular almak gerekir, yani dikine büyüme. Yeni Uygulama mimarilerinde ki bakış açısı ise tam tersi olan “scale out”, yani büyüme ihtiyacı olduğunda sunucuyu dikine büyütmek yerine, göreceli olarak daha ucuz sunuculardan eklenti yapmak, sanallaşmak veya bulut hizmeti alarak bütün bu birleşimi bir load-balancer’ın arkasına dizerek sanki “devasa bir sunucu”ymuş gibi hizmet vermektir, yani enine büyüme. “Scale Out” kavramı uygulama sunucularında uzun süredir var olmakla birlikte, veritabanı sunucularında da artık kullanılagelmektedir.

Veri Modeli
Veri Modelleme açısından bakınca, bilindiği üzere, ilişkisel modelde veri tabanına kayıt girilmeden önce, şema ve veri modeli tanımlanır, girilecek veriler bu yapıya uygun olmak zorundadır (veri tipi, veri uzunluğu, vb.). Her kayıt aynı yapıya sahip olmak zorundadır. NoSQL modelinde, kayıt girişinden önce veri modelinin oluşturulması zorunluluğu yoktur. Örneğin:
Bir NoSQL kayıtı aşağıdaki gibi gözükür. Kayıt içindeki elementlerin bir veri tipi olmamakla birlikte, kendi kendilerini açıklayacak istenen isim verilebilir. XML, HTML ve JSON yapıları buna en güzel örneklerdir.

{
“ID”: 1,
“ERR”: “Out of Memory”,
“TIME”: “2004-09-16T23:59:58.75”,
“DC”: “NYC”,
“NUM”: “212-223-2332”
}{
“ID”: 2,
“ERR”: “ECC Error”,
“TIME”: “2004-09-16T23:59:59.00”,
“DC”: “NYC”,
“NUM”: “212-223-2332”
}

Veri denormalize olarak saklanır.

Bu kısacık girişle bile yıllardır ilişkisel veri modeli ile çalışanların nasıl yani der gibi olduğunu duyabiliyorum. 40 yılın alışkanlıklarını kırıp, yeni bir bakış açısı getirmek çok kolay değil. Örneğin NoSQL dünyasında döküman nurması tek ve yeterli Primary Key ve Index. Bu ID genellikle her Database’de bir tane olması yeterli. Halbuki ilişkisel modelde her tablo veya şema için ayrı Primary Key’ler düşünmek gerekiyor.

Sonuç olarak NoSQL veri tabanları bizlere aşağıdaki yeni imkanları sunuyor.
-        
   - Verinin ticari sunuculara dağıtılarak enine büyüme yöntemi ile daha az maaliyetli bir büyüme
      - Uygulamaların yazılmasından önce, kuralları önceden belirlenmiş veri modelleri ve şemaların tanımlanmasına, sonrasında bunlar üzerinde değişiklik yapmak için belirli kesintilerin olmasına imkan vermeden hızlıca kod geliştirilebilmesine imkan verme.
-      - Zengin ve sınırsız veri modelleme imkanları ile karmaşık veri modelleri ve sorgulamayı daha kolay sağlama.

NoSQL mimarisi denormalizasyondan dolayı, daha fazla saklama alanı kullanma ihtiyacı olsa da, performans, ölçeklenebilme ve esneklik konusunda getirdiği yenilikler, veri tasarımcılarını seçim konusunda daha yenilikçi düşünmeye yönlendiriyor.

Veri-Değer zincirini anlamak.





Besin zincirini bilirsiniz. Genel olarak yaşayan canlıların beslenmek için nasıl gıda temin ettiklerini gösteren, aldıkları gıdalarla kendilerini ve aslında birbirlerini nasıl beslediklerini gösteren bir zincirdir. Plantlardan, otlardan başlayan zincir, küçük hayvanlardan, kocaman memelilere kadar devam eder. Bu yazıda, veriden değer üretmek için birbirine bağlı olan ve birinin girdisi diğerinin çıktısı olan bu zincire göz atacağız. 

Peki, yeni veri işleme teknolojilerine neden bukadar çok ilgi var?

Büyük Veri araçlarının esnekliği, büyüyebilmesi değil tek sebep. Veriye bakıp bizi yönlendirmesi, veriyi bir hammadde gibi işleyip, ondan “ürün” elde edilebilmesi en çok da kurumları heyecanlandırıyor.

Veriden değer üretme konusunda kurumları sıkıştıran ve kısıtlayan en önemli bakış açısı BT Merkezli bakış açısı. BT bakış açısında, dünya uygulamalar bütünü olarak görülür ve fonksiyonlarına göre sınıflanmış veriler ve silolar ortaya çıkar. Bu bakış açısı, “İş Merkezli” olarak kullanılmaya kalktığında, birbirinden bağımsız veri siloları, esnek olmayan geçişkenlik ve veri keşfedememe olarak geri döner. İşletme, eski bakış açısı ile işlevini ve büyümesini sürdürebilir ama “gelecek fırsatlar” konusunda, keşif için sıkıntılar başlar. Yıllardır “maliyet-merkezli” bakış açısı ile çalışan kurumların, “değer yaratan” bu yeni bakış açısı ile yeniden düzenlenmeleri çok hızlı ve kolay da olmayacaktır.

Sık kullanılan Veri ve Petrol benzetmesi vardır, bilirsiniz. Ham Petrol örneğinde olduğu gibi veri de eğer farklı uygulamalar tarafından kullanılabilirse ancak, “ham madde” olmaktan çıkar ve değerli bir ürüne dönüşebilir.
Bu kapsam da veri de petrol gibi bir çok farklı aşama ve dönüşümden geçtikten sonra değerli ürün olarak kabul görebilir. Bu adımları anlamak ve uygulamak, modern bir veri mimarisi çıkarmak, kurumu dönüştürür, iş problemlerine hemen çözüm getirebilecek bir imkana ulaştırır.

Veri Değer Zincirine yakından bakalım.
-     
      Discover: Günümüzün sayısal dünyasında, dağınık, farklı platformlarda, farklı formatlarda, kurum içi veya kurum dışında üretilen ve saklanan veriler var. İşiniz ile ilgili bir soruya yanıt ararken bu sorunun doğru yanıtını barındıran, “doğru veri kümesi”ne uygun maliyetle erişmek ve keşfetmek, aranan cevabın bulunabilmesi için birinci adımdır.

-      Ingest : Çok çeşitli kayıt formlarında saklanan veriler ve çok çeşitli ağ erişim metodları var. Bütün bunların sanal olarak tekleşip erişilebilir olmasını saylayabilen teknoloji adımı Ingest olarak düşünülebilir.

-      Process : Bir çok uygulama Ingest aşamasını geçtikten sonra keşfedilen veri kümelerinden ihtiyacı olanı çekip, istediği formata dönüştürüp kullanır ve anlık olarak ihtiyacını görür.

-      Persistency: Uygun maaliyetli dağıtık yüksek yoğunluklu saklama üniteleri bu konuda çok seçenekler sunar. Verinin saklama formatı ve veri tabanı teknolojisinin seçimi (İlişkisel, Hiyerarşik, Merkezi, Dağıtık vb…), veri değer zincirinin diğer halkalarından, özellikle Analiz tarafından etkilenerek belirlenir.

-      Integrate: Big Data’yı değerli kılan durum, çok çeşitli veri kaynaklarını ve formasyonlarını entegre edebilmesinden geçer. Bu adım Veri Değer zincirinin en önemli olmazsa olmaz adımıdır.

-      Analyze: Veri Bilimi konusunun %80’i bu adımda gerçekleşir. Big Data “gösterisinin” parlayan yıldızı, görünen yüzü analiz adımıdır. Veriden değeri üreten, karmaşık analiz araçları bu adımda devreye girer

-      Expose: Analiz sonucunda ortaya konanların, kurum tarafından özümsenmesi, tüketilmesi ve elle dokunulabilir değere, kurumun üretim ve ürünlerine yansıması bu aşama da olur.

Veriden değer üretilmesi yeni bir bakış açısı gerektirir. Silolardan Teknik ve kavramsal olarak kaçmak mümkün değildir. Değişmesi gereken bakış açısı tam olarak şudur:
“Veriye NE YAPILDIĞI”na odaklanmış olan, fonksyonel bakış açısından kurtulup, “Veri ILE NE YAPABILIRIZ”in cevabını arayan iş odaklı bir bakışa geçmek gerekiyor.