Çok Büyük Veri
Merhaba arkadaşlar,
Özellikle tırnak içinde yazmak istediğim “Big Data” kavramı hakkında düşüncelerimi ve geçmiş deneyimlerimi aktarmak istiyorum.
Öncelikle büyük veri için çok kapsamlı ve detaylı internette sayısız bilgiye ulaşabilirsiniz. O yüzden ben burada daha spesifik kısımdan bakıp, gerçek hayattan bir örnek ile ilerleyeceğimi belirtmek isterim.
Sektör bazlı, iş bazlı, şirket büyüklüğü bazlı, verinin yolculuğundaki o anda bulunduğu konum bazlıda büyük veri metrikleri değişebilir. Son alışveriş çılgınlıklarında Trendyol veri büyüklüklerini herkes duydu sanırım. Diğer taraftan merkez bankası verisi, normal bir bankanın verisi, bir sigorta şirketinin, bir oyun firmasının veya endüstri alanında iş yapan firmaların makina verisi bunların hepsini farklı büyüklükleri ve dinamikleri bulunmaktadır. Verinin yolculuğundaki o andaki kısımdan kastım verinin ilgili üretildiği çekirdek sistemdeki ham halinde veri çok büyük olabilir fakat son kullanıcının (veri analisti, veri bilimci …) ulaşımına geldiğinde makul çalışabilir seviyede ve anlamlı şekilde gruplanmış olabilir.
Buradan yola çıkarak büyük veri kavramını ölçek veya boyut açısından değerlendirdiğimizde herkese göre değişkenlik gösterir. Böyle de olması çok normaldir. O yüzden büyük veri tanımını şöyle yapalım: Elinizdeki veri büyüklük açısından inceleyemediğin, işleyemediğin bir hacimde ise o veri senin için büyük veridir. Bu veritabanındaki bir tablo da olabilir veya bir excel dosyası bile olabilir. Eğer excel dosyası açılmıyor ise veya açılsa bile en ufak bir hareketinde bilgisayarın kilitleniyor ise o zaman senin için pekte anlamı kalmıyor.
Excel uygulamasını kullanan bir kişi için sınırlar 1048576 satır ve 16384 kolondan oluşur. Excelin her hücresine 1 sayısını yazsanız ne olur peki? İlk olarak Large Operation uyarısını alırsınız yani bu işlem uzun sürecek emin misin diye size sorar, sonrasında evet yine de yapmak istiyorum dediğinizde yapmaya başlar ama muhtemelen sonuçlanmaz çünkü elinizdeki bilgisayarın ram’i yetmez :). Gerçek hayatta excelin her hücresi doldurulmasa da iş dünyasından gerçekten çok büyük exceller ile çalışma durumları oluşabiliyor. Muhtemelen şuanda birileri de excelin tüm imkanlarını kullanarak bu büyüklükte dosyalarla işlerini sürdürüyorlardır. Excel’in iş hayatı için vazgeçilmezliğine çok girmiyorum bu konuda excel’i büyük veri yönünden ele alacağım biraz.
Perakende sektöründe çalışırken alokasyon departmanında alokasyon uzmanı olarak çalışıyordum. Perakendenin en önemli problemlerinden bir tanesi de mağazadaki satılan ürünü tamamlama diye ifade edebileceğimiz Replenishment problemidir. Aslında bir optimizasyon problemi, mağazanın elindeki sku*(en küçük birim) için mağazaya doğru adette ürünü göndermen gerekir. Tabi ki herhangi bir mağazayı aklınıza getirin ve ne kadar çok çeşit olduğunu düşünün. Kazaklar, pantolonlar, tişörtler, gömlekler, ayakkabılar, kemerler, çoraplar derken bu böyle uzar gider, bunun üzerine bunların renk çeşitleri ve beden çeşitleri ile de çarparsanız ne kadar çok sku detayı olduğunu hayal edebilirsiniz. Mağazayada satılan ürünü yerine göndermek isterken de o sku’dan deponuzda 50 adet olduğunu ve sizin 300 mağazanız olduğunu farzedelim. Her mağazanın satış adeti, stok adedi, metrekaresi, konumu, müşteri profili farklı tabi ki J
Sizin bu kadar çok metriğe dikkat ederek en doğru karar vermeniz gerekiyor , doğru mağazaya doğru adette ve doğru zamanda göndereceksiniz. Amaç mağazada fazla ürün bulundurmayayım ama az ürün bulundurupta satış kaçırmayayım. İşler iyice karıştı dediğinizi duyuyorum.
O zaman bir tane otomatik tamamlama (Auto Replenishment) programı olsun da hepsini takip edip bir algoritmaya veya bir matematiğe göre sistematik olarak bunu yapsın diyebilirsiniz. Çok haklısınız ama işte tüm şirketler buna bütçe ayırmayabiliyor ya da henüz tam sistemini kurmamış olabiliyor. Bu sürede de bu işlemin manuel olarak yapılması gerekiyor. Özel zamanlarda yine manuel dokunuşlar gerekir belki ama en azından bir sistem var ise metrikler üzerinden değiştirilebilir.
Zor zamanlarda insan sınırları zorluyor ve çözüme ulaşıyor. Tam bu nokta da o zamanlar beraber çalıştığımız sevgili Enver Uludemir’in bu yapıyı ayağa kaldırdığı benimde içinde bulunduğum bu sistemden kısaca bahsetmek istiyorum.
Veri tabanı üzerinde gece çalışan batch ile her sku için satış ve stok adetleri diğer özellikler ile birlikte ortak alanda büyükçe bir csv dosyası oluşturuyor. Csv dosyaları ortalama 600-700 mgb dosyalar oluyordu. Yani yukarıda bahsettiğim açmak isteniz açıpta bakamayacağınız büyüklükteler. Bu dosyalar ertesi gün, benim excelin arka mahallesi dediğim excelin farklı yeteneklerinden Power Pivot kullanılarak alınıyor, power pivot üzerinde dax formülleri ile hesaplanan veriler (son 7 günlük satış , son 14 günlük satış, mağaza doluluk oranı, siparişteki adedi, yoldaki adedi) sonrasında Power Query ile de bir takım düzeltmelerden sonra excelin ön yüzüne gelmeyi hakediyorlar. Buraya kadar olan kısmı aslında veri mühendisliği ve veri hazırlığı gibi düşünebilirsiniz. Ön yüze geldikten sonra artık bir engine yapısına ihtiyaç var. Öncelikle depo stoğuna bakacak sonra mağaza stoğuna bakacak, üründeki hesaplanan satış performans metriklerine bakıcak ve verilen tamamlama kuralına göre tüm mağazaların siparişlerini bir öncelik sırasına göre kapatacak bir döngüden bahsediyorum. Tüm bunları excelde yapabilmek için tabi ki makro(VBA) yazmaya ihtiyaç var. Makrodan çıkan sonuçlar ile de ilgili erp üzerinden sisteme sipariş olarak geçilir. Excelde dışında başka bir aracınız olmadığını düşündüğünüz bir ortamda gerçekten iyi dizayn edilmiş ve gerçek faydaya dönüşmüş, şirkete doğrudan finansal fayda ve operasyonel fayda sağlayan bir iş olarak görüyorum.
Artan mağaza sayısı ve artan ürün çeşitliliği ile birlikte artık o csv dosyaları senin elindeki araç ile işleyemeyeceğin bir ölçüye geldiğinde senin içinde artık tam anlamıyla “Big Data” başlamıştır. Bu da farklı araçlar ile farklı çözümlere geçme zorunluluğun bulunmaktadır.
Excelin “küçük veri” çıktığınız dünyada sizi veri tabanı ortamları bekliyor. SQL kullandığınız anda Toad, PL-Sql Developer, Dbeaver gibi araçlar ile büyük veriler küçük olabilir. Tabi ki diğer taraftan SPSS, SAS, Knime, R, Python gibi çözümlerde kullanabilirsiniz. Bunların kendi server ortamları olanı kullanmak ile sadece bilgisayarınızın ram’ini kullanarakta bazı şeyleri yapabilirsiniz.
Verinin sistemdeki tutuluş şekilleri değişebilir. NoSQL veri tabanına geldiğimizde işler biraz daha büyüyor. MongoDB, Apache Cassandra gibi NoSQL veritabanlarına erişim için farklı araçlar ortaya çıkıyor.
Dağıtık sistemler, paralel çalışan bilgisayarlar…
Sahneye artık Apache Spark, Apache Kafka, Apache Storm, Apache Flink, Apache Nifi gibi araçlar geldiğinde başka bir dünyaya açıldığımızı söylebiliriz. Büyük veri araçları dünyası sadece bunlarla sınırlı değil elbette, daha farklı çözümlerde bulunmaktadır. Bu araçların her birinin büyük veri dünyasında ihtiyaca göre farklı kullanım alanları vardır. Büyük veri dünyası gerçekten farklı uzmanlık gerektiren bir alandır. Veri analisti veya veri bilimcisi için detaylarına hakim olmadığı konular çokca olabilir. Bu yüzden de şirketlerde Data Engineer, Big Data Engineer ayrı iş tanımlarında çalışabilmektedir.
Data&AI Landscape 2020 görselini ne kadar fazla araç ve çözüm olduğuna dikkat çekmek için koydum. Yukarıdaki görselin büyüklüğünden dolayı okunmadığının farkındayım. Görsele tıklayarak yakınlaştırma yapacağınız şekilde açabilirsiniz.
Sonuç olarak, büyük veriyi işleyecek çözümler var. Ama hangi iş problemini çözeceksiniz? Hangi noktada bu teknolojiler size fayda sağlayacak? İşte bu soruların cevapları ne kadar net olursa o derecede doğru bir yol haritası çıkartılır ve çözüme ulaşılır.
Büyük veri konusunda uzman olan, Erkan Şirin hocamın detaylı yazılarını okuyabilirsiniz.
- SKU: Ürünün en alt kırılımıdır. Örnek : 123 nolu ürünün kırmızı renginin S bedeni
Görsel Kaynak: https://mattturck.com/data2020/
Kapak Görseli: Photo by fabio on Unsplash