Daha önceki yazılarımda KNIME ile ilgili ürünün kullanım alanları ve sertifikasyon sürecinden bahsetmiştim. Çalıştığımız kurumsal firmalarda ne zaman bir ürün kullanımı gündeme gelse ücretsiz bile olsa öncelikle governance, güvenlik,performans ve yetkilendirme konuları ön plana çıkmaktadır. Bu kadar kapsamlı ve çeşitli entegrasyonlar sağlayabildiğiniz bir ürün olunca da haliyle sadece desktop bir uygulama ile bu süreçleri yönetmek mümkün mü detaylarıyla incelemek istedim.
KNIME Analytics Platform, ücretsiz olarak indirilebilen bir desktop uygulamasıdır. Veri bilimi başlığı altında yer alan veri hazırlama, modelleme ve görselleştirme süreçlerini akış olarak tasarlayabileceğiniz bir platformdur.
KNIME Server, tasarlanan akışların ortak bir sunucuya taşınması ile birlikte yönetimi,izlenmesi ve başka uygulamalardan verinin sorgulanmasını amaçlamaktadır.
Genelde bu tip yazılım ürünlerinde bazı özelliklerin kısıtlı olduğunu görürüz ve kurumsal bir uygulamada kullanma ihtiyacınız olduğunda en gerekli özellikleri kullanılamadığından sizi yatırım yapmaya mecbur bırakır. Ancak KNIME Analytics Platform kullanırken böyle bir deneyim yaşamıyorsunuz, tüm özellikler açık ve herhangi bir son kullanım tarihi bulunmuyor. KNIME gelir modelini sadece eğitim, danışmanlık ve KNIME Server lisanslaması olarak konumlandırmış.
Aşağıdaki maddelerde de neden Analytics Platform kullanırken neden Server yatırımı yapmak gerektiği konusunda detaylı yorumlarıma yer verdim.
1- Takım Çalışması
KNIME Server ile birlikte hayatımızda değişen ilk şey takım çalışması/iş birliği olarak belirtiliyor. Server ile birlikte aslında klasik kurumsal uygulamalardaki paylaşım süreçleri hizmet olarak sunuluyor. Yani burada birim veya proje bazlı oluşturduğunuz akışlarınız artık kişisel bilgisayarlarınız yerine bir sunucuda tutulur hale gelmiş oluyor. (Yazılımcılar için TFS, iş birimleri içinse network sharing folder gibi düşünebiliriz.) Bu sayede kurumunuzdaki işler birimler arası paylaşıma mümkün hale gelmiş oluyor. Ayrıca bir sunucu üzerinde süreçleri yönetmenin yedekleme ve versiyonlama açısından da daha sağlıklı olacağı unutulmamalıdır.
2- Otomatizasyon
Veri hazırlığı ve raporlama süreçlerinde otomatikleştirme(scheduling) konusu olmazsa olmaz diyebiliriz. KNIME kullanıyorsanız ve tasarlamış olduğunuz akışınızın belirli periyotlarda çalışmasını bekliyorsanız bunun farklı opsiyonları olsa da ben en yaygın 2 yöntemi paylaşacağım.
Birincisi, KNIME web sitesindeki sıkça sorulan sorular ve stackoverflow aramalarında denk geldiğim bir yöntem. Windows task scheduler kullanarak tasarlamış olduğunuz akışınızı tanımlı bir zamanda tekrar tekrar çalıştırabilirsiniz. Bu yöntemi ücretsiz ve herhangi bir sunucuya ihtiyaç duymadan uygulayabilirsiniz. Burada sadece her gün çalışsın gibi bir beklentiniz var ise kendi bilgisayarınızın da o saatler çalıştığından emin olmalısınız !
knime.exe -consoleLog -noexit -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION -workflowDir="workspace/Knime_project"
İkinci yöntem ise KNIME server satın aldığınızda web portal aracılığı ile sunucuya yüklediğiniz akışlarınızı akış adı ve periyot tanımlayarak hızlı ve kolay olarak uygulayabilirsiniz.
İlk yöntem biraz daha araştırma veya eğitim amaçlı daha bireysel bir kullanım için konumlandırılabilir. Biraz daha merkezi bir uygulama ve kompleks yapılar kurgulamaya ihtiyaç duyduğunuzda ise yönetim anlamındaki ihtiyaçlar ve operasyonel risklerin azaltılması için önerilen yöntem KNIME server üzerinde bu süreci yönetmek olacaktır.
3- Görselleştirme
Veri ile ilgili yapılan her projede günün sonunda görsel çıktılara ulaşmak yapılan işin okunurluğunu ve izlenmesini sağlamaktadır. Benim kişisel olarak beklentim klasik grafikleri çizsin yeterken, inceledikçe aslında iyi seviyede çıktılara kolayca ulaşmanın mümkün olduğunu gördüm. Ayrıca kod seviyesinde de size Javascript ve CSS olarak müdahale ettirdiğinden dolayı yapacağınız işin sınırı size kalmış denebilir.
Server olmadan da yukarıdaki çıktılara benzer grafikleri kendi bilgisayarınızda oluşturabilirsiniz. Ancak paylaşım konusunda herkes günlük/haftalık periyotlarla yenilen grafiklere bir portalden erişsin beklentiniz olursa sunucuya ihtiyaç duyacaksınız. Diğer türlü bu çıktıları alıp e-posta yoluyla göndermek de bir tercih olabilir.
4- Performans
Performans, neden bir server yatırımı yapalım konusunda bence en güçlü nedenlerden biri. Verilerinizi kurumunuzun veritabanlarından erişerek aldınız ancak analitik ihtiyaçlarınıza özel Knime komponentleri kullanma ihtiyacınız var. Verilerinizin boyutları da milyonlar seviyesine ulaşıyorsa burada kendi bilgisayarınıza büyük iş düşüyor, çoğu zamanda memory hataları almanıza neden olacaktır. Yani özetle hem kompleks hesaplamalar yapacağım hem de kullanmış olduğunuz veri seti kişisel bir bilgisayarda işlemek için çok büyük boyutlarda diyorsanız, server yatırımı yapmanız performans gibi bir kaygıdan sizi kurtaracaktır. Hele ki hızlı cevap almak istediğiniz ve anlık çalışsın diye düşündüğünüz ihtiyaçlarınız için konumlandırmak istiyorsanız, sunucu olmazsa olmaz diyebilirim. (Örn: Fraud Detection, Recommendation Engine vb.)
5- Entegrasyon
Sunucu yatırımı yapmak için en önemli nedenlerden biri de entegrasyon diyebiliriz. KNIME Server’a yüklediğiniz akışlarınıza artık REST API ile erişebilir hale geliyorsunuz. Bu özellik size farklı uygulamalar ile entegrasyon kurabilmenizi ve tasarladığınız süreçleri dış dünyaya açabilmenizi sağlıyor. Yukarıda örnek verdiğim Fraud Detection için bir model kurdunuz ve bunu transaction anında uygulamanızda kullanmak istiyorsunuz. Transaction anında ilgili Knime akışını tetikleyip işlemin fraud olup olmadığı bilgisini model sonucunuza göre sorgulama yapabilirsiniz.
Ayrıca sunucudaki bir çok farklı konuda da dışarıdan API ile erişim sağlayarak çözüm bulabilirsiniz. Örnek olarak
6- İzleme ve Yönetim
Ürün üzerinde farklı süreçler tasarlayıp genel kullanıma yaygınlaştırılmak istendiğinde hem izleme hem yönetim iki önemli madde diyebiliriz. İzleme altında sunucuda çalışan işlerin durumunu, sunucunun sağlığını izlenmesi gibi konular önem arz etmeye başlıyor. Yönetim başlığı altında ise ilk olarak yetkilendirme konusu hayatımıza giriyor. Çalışan işleri kimler tasarlayabilir,görebilir ya da çalıştırabilir yetkilerinin düzenlenmesi, farklı ekipler arasındaki ortak süreçlerin tasarlanması gibi ihtiyaçlar da yetkilendirme yetenekleri ile süreçlerinizi yönetebilirsiniz.
Bir sunucu kurulumu yaptığınızda da KNIME tarafından hazırlanmış Admin akışları default tanımlı olarak sunucuda yer almaktadır.
7- Metadata Analizi
Genelde bu tip ürünlerde kullanıcıların yaptıkları çalışmalar repository veritabanlarında tutulmaktadır. KNIME alışılanın aksine hazırladığınız her akış için bir knwf adında bir dosyada oluşturmaktadır ve herhangi bir databasede çalışamlarınızın detaylarını kaydetmemektedir. Bu dosyalar yine bir akış içerisinde XML formatına çevrilerek, workflowlar içerisinde kullanılan database objeleri nelerdir, hangi nodelar kullanılmış, çıktı olarak sonuçlar nelerdir gibi analizler çıkarmak mümkün hale gelmektedir. Ancak herkesin kişisel bilgisayarında Analytics Platform kullandığı bir senaryo düşünürsek böyle bir analizi yapmak mümkün olamayacaktı. Bu konuyla ilgili araştırma yaparken KNIME Hub’da denk geldiğim iki örneğe de aşağıda yer vermek istedim.
Data Lineage via KNIME WebPortal
Collect Workflow Information from KNIME Server REST API
Özet
Aslında yukarıda saydığım maddeler “enterprise” ihtiyaçlar ortaya çıktığında akla ilk gelen konular diyebiliriz. Burada ürünün öne çıkan özelliği, herhangi bir satın alma yapmadan ürünün ihtiyaçlarınıza cevap verip veremeyeceğini test edebileceğiniz bir ortam sağlamasıdır. Kendi deneyimlerim ve araştırmalarım sonucunda, desktop uygulaması olan Analytics Platform bireysel olarak inceleme ve analizleriniz için yeterli olacaktır ama daha yaygın bir kullanım planlıyorsanız KNIME Server almak en akılcı karar olacaktır.
KNIME üzerinde farklı denemeler yapmaya devam ediyorum, merak edenler olursa seve seve destek olabilirim. Ayrıca KNIME Forum‘a da yazarsanız büyük ihtimalle aynı gün probleminize ya da sorunuza cevap alabilirsiniz. Geçen haftalarda yapılan “Fall Summit 2020” de Level-2 sertifikasını da almaya hak kazandım. Sınav ile ilgili değerlendirmelerimi de ayrıca yazmayı planlıyorum.