li³kisel Veri Taban Sistemlerinde Çoklu Oturum ve ³lem Yönetimi NoSQL Veri Taban Sistemlerinde Büyük Verinin Saklanmas



Benzer belgeler
Epay, Turkcell MobilÖdeme Altyaps

System Center Operations Manager 2007 Kurulum,Client Discovery ve Performans İzlemesi

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

NoSql ve MongoDB. Saygın Topatan

Swing ve JDBC ile Database Erişimi

Büyük Veri de Türkiye den Uygulama Örnekleri Dr. Güven Fidan

VER TABANI VE STANDART DOSYA PLANI KURULUM KLAVUZU

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

Analiz aşaması sıralayıcı olurusa proje yapımında daha kolay ilerlemek mümkün olacaktır.

ÖZEL GÜVEN TIP MERKEZİ

Tasarım Raporu. Grup İsmi. Yasemin ÇALIK, Fatih KAÇAK. Kısa Özet

Veri Tabanı-I 1.Hafta

TS7200 PLATFORMU ÜZERİNDE SERİ PORT-ETHERNET DÖNÜŞTÜRÜCÜ UYGULAMASI

Veritabanı. Ders 2 VERİTABANI

Cebir II 2008 Bahar

Xerox ConnectKey Teknolojisine sahip Çok Fonksiyonlu Yazıcılarla (MFP'ler) Kullanım İçin

Spring Framework Eğitimi

İşletim Sisteminin Katmanları

I. EIPA Lüksemburg ile İşbirliği Kapsamında 2010 Yılında Gerçekleştirilen Faaliyetler

İnternet Programcılığı

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

Man In The Middle Attack Ve ARP Poisoning

TMS TMS THE MUSEUM SYSTEM. Neden TMS. SAYISAL GRAFİK TM Dünyanın Lider Koleksiyon Yönetimi Yazılımı

SÜRE BİLİŞİM TEKNOLOJİLERİ ÜNİTE 1: : BİLGİ VE TEKNOLOJİ DERS SAATİ: 7

Üst Düzey Programlama

Veri Taban ve Visual Basic

Tom PROBERT MapInfo Pro Global Üretim Müdürü. Büyük Veri ve (potansiyel) etkiler

KDU (Kazanım Değerlendirme Uygulaması) nedir?

Kişisel Bilgiler ve Kişisel olmayan bilgiler Kişisel bilgiler sizi bir birey olarak tanımlayan veya tanımlanmanızı sağlayan bilgilerdir.

Bölüm 8 Ön Ürün ve Hzl Uygulama Gelitirme. 8lk Kullanc Tepkileri. Dört Çeit Ön Ürün. Ana Konular. Yamal Ön Ürün. Ön Ürün Gelitirme

1 Temel Kavramlar. Veritabanı 1

PostgreSQL ve JBoss ile Java Kurumsal Çözümler. Nicolai Tufar

Internet Programlama (ISE 311) Ders Detayları

VERİ TABANI UYGULAMALARI

ÖZGÜR YAZILIMLAR İLE J2EE

MSSQL Server 2000 Kurulumu

VAKA ANALİZİ İNCELEMESİ. Hepsiburada, Kişiselleştirilmiş ve Hedefe Yönelik Pazarlamayı Optimize Etmek İçin Büyük Veriler Kullanıyor

4. B LG LEM MÜDÜRLÜ Ü. Görev Tan m : Bilgisayar Donan mlar Bak m ve Geli tirme

kili ve Çoklu Kar³la³trmalar

AB Mevzuatının Uygulanmasına Yönelik Teknik Desteğin Müzakere Edilmesi

Strateji Geliştirme Daire Başkanlığı İÇ KONTROL

SÜRE BĠLĠġĠM TEKNOLOJĠLERĠ ÜNĠTE 1: ĠLETĠġĠM DERS SAATĠ: 1. Gelecekteki bilişim teknoloji

BİLGİ TEKNOLOJİLERİ VE İLETİŞİM KURULU KARARI

2 Temel Kavramlar (Devam) Veritabanı 1

Semantik Ağ ve Üst Veri Sistemleri İçin Yeni Nesil Veri Tabanı Yönetim Modeli: NoSQL. R. Orçun Madran Atılım Üniversitesi.

T.C. YALOVA ÜNİVERSİTESİ Strateji Geliştirme Daire Başkanlığı. İÇ KONTROL ve RİSK YÖNETİMİ 1 İÇ İÇ KONTROL

VERİ TABANI PROGRAMCILIĞI DALI

KURUL GÖRÜ Ü. TFRS 2 Hisse Bazl Ödemeler. Görü ü Talep Eden Kurum : Güreli Yeminli Mali Mü avirlik ve Ba ms z Denetim Hizmetleri A..

AĞ ÜZERİNDEN YAZICI ve TARAYICI TANIMLAMA KLAVUZU

VERİ TABANI YÖNETİM SİSTEMLERİ

G =< V,E> burada; m(i, t); i V,t Tarih. kd(i, j); i, j V. kd(i, j) 1. i V : j ayrßt(i,j)

DENEY 2: PROTOBOARD TANITIMI VE DEVRE KURMA

Veri Yönetiminde Son Nokta. Sedat Zencirci, Teknoloji Satış Danışmanlığı Direktörü, Orta Asya ve Türkiye

Yapısal Olmayan Verinin Potansiyelini Açığa Çıkarın

Özgür Yazılımlar ile VoIP Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı


Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

MUŞ ALPARSLAN ÜNİVERSİTESİ UZAKTAN EĞİTİM UYGULAMA VE ARAŞTIRMA MERKEZİ YÖNETMELİĞİ

Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları

İMZALAMA ARACI. Kullanım Kılavuzu. Nisan 2016 ANKARA. İmzalama Aracı Kullanım Kılavuzu Nisan 2016 Versiyon : 1.0 1/15

ÇELK KUMA PANELLERNN ISINMA DAVRANILARI

İngilizce Öğretmenlerinin Bilgisayar Beceri, Kullanım ve Pedagojik İçerik Bilgi Özdeğerlendirmeleri: e-inset NET. Betül Arap 1 Fidel Çakmak 2

HACILAR BELEDİYESİ MECLİS TOPLANTISI TUTANAĞI

ELEKTRİK PİYASALARI 2015 YILI VERİLERİ PİYASA OPERASYONLARI DİREKTÖRLÜĞÜ

S = {T Y, X S T T, S S} (9.1)

Yedi Karat Kullanım Klavuzu. Yedi Karat nedir? Neden Karat?

BİLGİ TEKNOLOJİLERİ VE İLETİŞİM KURULU KARARI

1. Yapılan ayarları kontrol etmek 2. Hataların doğru anlaşıldığından emin olmak 3. Donanıma uygun işletim sistemini belirlemek İŞLEM ANALİZ FORMU

QR Kodu Tarayıcısı / Okuyucusuna Uygun Uygulamalarda Kullanım İçin

BEYOĞLU HİZMET MERKEZİ KIYI EMNİYETİ GENEL MÜDÜRLÜĞÜ. Son Başvuru Tarihi : 16 Mayıs Yayınlanma Tarihi : 05 Mayıs 2016

BİT ini Kullanarak Bilgiye Ulaşma ve Biçimlendirme (web tarayıcıları, eklentiler, arama motorları, ansiklopediler, çevrimiçi kütüphaneler ve sanal

İstemci Yönetimi ve Mobile Printing (Mobil Baskı) Çözümleri

ULAKBİM Danışma Hizmetlerinde Yeni Uygulamalar: Makale İstek Sistemi ve WOS Atıf İndeksleri Yayın Sayıları Tarama Robotu

(ÇEKAP) Çevresel Kapasitemiz Gelişiyor

1.1 FET Çal³ma Bölgeleri. Elektronik-I Laboratuvar 6. Deney. Ad-Soyad: mza: Grup No: JFET; jonksiyon FET. MOSFET; metal-oksit yar iletken FET

D-Link DSL-2640U Kablosuz N ADSL2+ Router (D-SmartNet Kullan c lar için) KOLAY KURULUM KILAVUZU

MEVCUT OTOMATĐK KONTROL SĐSTEMLERĐNĐN BĐNA OTOMASYON SĐSTEMĐ ĐLE REVĐZYONU VE ENERJĐ TASARRUFU

DEĞERLENDİRME NOTU: Mehmet Buğra AHLATCI Mevlana Kalkınma Ajansı, Araştırma Etüt ve Planlama Birimi Uzmanı, Sosyolog

Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş

ARCHİ DANIŞMANLIK VE GAYRİMENKUL DEĞERLEME A.Ş. KALİTE GÜVENCE SİSTEMİ, GÖZDEN GEÇİRME RAPORU. Sayfa 1 / 7

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Özet şeklinde bilgiler

Yeni web iletişim yöntemi Websocket protokolünün geleneksel yöntemlerle karşılaştırılması

Topoloji değişik ağ teknolojilerinin yapısını ve çalışma şekillerini anlamada başlangıç noktasıdır.

Türkiye Ekonomi Politikaları Araştırma Vakfı Değerlendirme Notu Sayfa1

B E Y K E N T Ü N İ V E R S İ T E S İ S O S Y A L B İ L İ M L E R E N S T İ T Ü S Ü İ Ş L E T M E Y Ö N E T İ M İ D O K T O R A P R O G R A M I

10 yıllık sektör deneyimimiz ve yazılım teknolojileri alanında uzmanlaşmış eğitmen kadromuzla, size, ekibinize ve yazılım kültürünüze değer katacak

1. Konu. 2. Basitle tirilmi Tedbirler Basitle tirilmi Tedbirlerin Mahiyeti ve S n rlar

Microsoft.NET Vizyonunun İncelenmesi ve Bilgisayar Teknolojisi ve Programlama Eğitimi ile Entegrasyonu İçin Bir Rehber Çalışması

Yazılım Güncelleştirme, Yedekleme ve Kurtarma. Belge Bölüm Numarası:

1 Milyon Kullanıcıya Nasıl Hizmet Veriyoruz? CloudLMS Teknik Alt Yapı ve Mimarimiz

Genel bilgiler Windows gezgini Kes Kopyala Yapıştır komutları. 4 Bilinen Dosya Uzantıları


BİLGİSAYAR DESTEKLİ BİR DİL PROGRAMI -Türkçe Konuşma - Tanıma Sistemi-

Hackerlar'ın Gözünden Flash Uygulamaları

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

OTAM AYLIK BÜLTEN İÇİNDEKİLER

LG BİREYSEL AKILLI TELEFON KAMPANYA TAAHHÜTNAMESİ

ANKARA EMEKLİLİK A.Ş GELİR AMAÇLI ULUSLARARASI BORÇLANMA ARAÇLARI EMEKLİLİK YATIRIM FONU ÜÇÜNCÜ 3 AYLIK RAPOR

Bellek Analizi ile Zararlı Yazılım Analizi

Transkript:

li³kisel Veri Taban Sistemlerinde Çoklu Oturum ve ³lem Yönetimi NoSQL Veri Taban Sistemlerinde Büyük Verinin Saklanmas S. Said Aydo an 12, Esat E. Demirel 12, Utku Ketenci 2, Mehmet S. Aktas 1,Ihsan Helvacioglu 2, Oya Kalipsiz 1 1 Bilgisayar Mühendisli i Bölümü, Elektrik-Elektronik Fakültesi Yldz Teknik Üniversitesi, stanbul 2 Ar-Ge Merkezi, Cybersoft, stanbul utku.ketenci@cs.com.tr Kurumlar tarafndan barndrlan veri ve bu verilere eri³im skl gittikçe artmaktadr. Artan veri boyutuyla analiz i³lemleri de karma³k hale gelmektedir. Günümüzde birden çok veri taban ayn amaca yönelik i³lemlerde beraber kullanlabilmektedir. Veri tabanlarnn ortak kullanmlarnda ba lant problemleri, hangi tablonun hangi veri tabanndan geldi inin bilinememesi, i³leme (commit) ve geri alma (rollback) mekanizmalarnn yeterli düzeyde sa lanamamas gibi sorunlar meydana çkabilmektedir. Bu çal³ma, birden çok veri tabannn bulundu u sistemlerde bahsedilen problemlere bir çözüm sunmaktadr. Bu çözümle birlikte geni³ ölçekte kullanlan Oracle, MySQL, MSSQL, DB2 ve Sybase gibi veri tabanlar için ortak bir eri³im katman olu³turulmaktadr. Bununla birlikte, birden çok veri tabanndan elde edilen büyük hacimli verinin muhafaza edilmesi ve analiz i³lemlerinde kullanlabilmesi için kolon tabanl büyük veri i³leme platformlar da kullanlmaktadr. Bu platformlardan yaygn olarak kullanlan, açk-kaynakl, HBase ve Hadoop mimarileri, büyük verinin muhafazas ve istenildi inde eri³ilmesi amaçlaryla kullanlm³tr. Gerçekle³tirilen araçla farkl ili³kisel veri taban sistemleri ile i³lemlerin (transaction) sorunsuz bir ³ekilde yönetilebilmesi ve bu veri tabanlarndan alnan verinin büyük veri i³leme platformuna ta³nmas sa lanabilmi³tir. Geli³tirilen çözümün kullanlabilirli ini ve performansn ortaya koymak adna, i³levsel ve ba³arm testleri gerçekle³tirilmi³ ve olumlu sonuçlar elde edilmi³tir. Anahtar Kelimeler: Veri Taban Sistemleri, ³lem Yönetimi, Büyük Veri Platformlar, Da tk Sistemler Bu çal³ma Yldz Teknik Üniversitesi Yazlm Kalite Ara³trma Grubu ve Cybersoft rmas Ar-Ge birimlerinin i³birli i çerçevesinde gerçekle³tirilmi³tir. Yazarlar, Cybersoft rmasna sa lanan çal³ma ortam için; Cybersoft Ar-Ge Müdürü Umut Orçun Turgut'a ve Cybersoft çal³anlarndan ek Temel'e de katklar için te³ekkür etmektedir. Bu çal³ma ayn zamanda, Yldz Teknik Üniversitesi BAP Projesi (Proje No: 2013-04-01-KAP03) kapsamnda gerçekle³tirilmi³tir.

1 Giri³ Gün içinde insanlar tarafndan gerçekle³tirilen pek çok i³lem, çe³itli veri taban sistemleri aracl yla, farkl tipteki veri kaynaklarna kaydedilmektedir. Bu durum, sürekli artan ve farkl tipteki veri taban sistemlerinde bulunan verinin yönetimi ve birle³tirilmesi için, bir ihtiyaç olarak ortaya çkmaktadr. Kaydedilen bu veriler ile yaplacak raporlama ve analiz çal³malarnda kullanlmak üzere, bütün bu veritaban sistemleri ile tek bir noktadan ileti³ime geçebilecek bir altyap kurulabilmektedir. Bu noktadaki zorluklar her sistemin kendine has bir altyapya sahip olmas ve bu sistemler ile ileti³im kurma metotlarnn farkl olmasdr. Veri tabanlarnn ortak kullanmlarnda ba lant problemleri, hangi tablonun hangi veri tabanndan geldi inin bilinememesi, i³leme (commit) ve geri alma (rollback) mekanizmalarnn yeterli düzeyde sa lanamamas gibi sorunlar meydana çkabilmektedir. Bu çal³mann amaçlarndan biri, birden çok veri tabannn bulundu u sistemlerde bahsedilen problemlere bir çözüm sunmaktadr. Bu çözümle birlikte geni³ ölçekte kullanlan Oracle, MySQL, MSSQL, DB2 ve Sybase gibi veri tabanlar için ortak bir eri³im katman olu³turulmaktadr. Birden çok veri kayna na sahip bu sistemlerde, veri kayna ndan gelen verilerin i³lenerek kullan³l bilgiye çevrilmesi gerekmektedir. Yüksek hacimli bu veriler i³lenmek istendi inde da tk çal³abilen NoSQL veri tabanlarnda muhafaza edilebilirler. Google, ili³kisel veri taban yönetim sistemlerinin büyük verileri mevcut dosya sisteminde kontrol etme ve verileri efektif kullanma konusundaki sorunuyla yüzle³mi³tir. Bunun neticesinde geli³tirdikleri Google File System (GFS) [6], BigTable, Map/Reduce paralel i³leme platformu ile sorunlara en efektif çözümleri bulurken Apache Hadoop ve Apache HBase projelerine ilham kayna olmu³lardr. Hadoop, Map/Reduce i³lem özelli i olan Hadoop Distributed File System (HDFS) üzerine kurulmu³ paralel programlama platformudur [9]. HBase ise HDFS üzerinde çal³an bir veri yönetim sistemidir [5]. Çal³mann bir di er amac da, HBase NoSQL veri taban kullanlarak, farkl ili³kisel veri tabanlarnda bulunan bilgilerin tek bir kaynakta depolanmasn sa lamaktr. Bu bildiride; birden çok veri taban i³letim sistemi aracl ile kayt edilmi³ verilerin okunarak i³lenmeye hazr hale getirilmesi, farkl veri taban sistemlerinden gelebilecek i³lemsel istisnalarn (transactional exception) Spring Framework kullanlarak gerçekle³tirilen i³lem yöneticisi (transaction manager) aracl ile yönetiminin yaplmas ve analizi yaplan verinin da tk olarak çal³an sunucularda bulunan Hadoop da tk dosyalama sistemine ve HBase veri taban sistemine ta³nmasnn deneyimlerinin sonuçlar payla³lmaktadr. Bu bildirinin geri kalannda srasyla; testlerde kullanlan ili³kisel ve ili³kisel olmayan veri tabanlar ve NoSQL hakknda genel bilgiler verilecektir; bir sonraki a³amada, genel sistem mimarisi anlatlacaktr; en son bölümde de testler ve sonuçlar payla³lacaktr. 2 li³kisel ve NoSQL Veri Tabanlar li³kisel veri taban sistemleri 1960'l yllarda General Electric laboratuvarlarnda ortaya çkm³tr [1]. Bu tarihten önce veriler dosya yaps içerisinde saklanrken,

ortaya çkan bu yeni yap ile dosyalar yerlerini ili³kisel veri taban tablolarna brakm³lardr. Artan veri büyüklü ü ile ili³kisel veri tabanlar ile çal³mann zorluklarnn belirgin bir ³ekilde ortaya çkmaya ba³lad 2010 ba³larnda NoSQL veri tabanlar popülerlik kazanmaya ba³lam³tr. li³kisel veri taban sistemlerine göre yüksek ölçeklenebilirlik, kümeleme, veri e³leyebilme, veri modelinin sabit olmamas ve karma³k sorgulara kar³t olma gibi özellikleri ile [7][8] NoSQL veri taban sistemleri farkllk yaratmaktadr. li³kisel veri tabanlar ACID (Atomik Atomicity, Tutarllk Consistency, Yaltm Isolation, Süreklilik - Durability) ³artlarnn hepsini sa larken, No- SQL veri tabanlar bu ³artlar tamamen sa lamamaktadr. Bunun yerine da tk sistemdeki herhangi bir küme elemannda sorun oldu unda çal³maya devam edebilmesi ve verinin bütünlü ünü koruyabilmesi ³artlarn en ön srada tutmaktadrlar. li³kisel veri tabanlarnn aksine NoSQL veri tabanlarnda, verilere tekil anahtar üzerinden eri³ilmekte, fakat verilere eri³im SQL yapsndaki kadar kolay olmamaktadr. Bu bildiri hazrlanrken popüler olarak kullanlan ili³kisel veri taban sistemleri ve HBase NoSQL veri taban sistemi incelenmi³tir. li³kisel veritabanlar arasnda, Oracle, yaygn kullanlan, popüler bir veri taban yönetim sistemidir [2][4]. Birden çok programlama dili deste i mevcuttur [3]. MySQL ise dünya çapnda en çok kullanlan açk kaynak kodlu veri taban yönetim sistemidir. MySQL ile kurumsal ve kurumsal olmayan binlerce uygulama geli³tirilmi³tir. Ayrca Windows ve Unix/Linux i³letim sistemlerini desteklemektedir [3]. Microsoft SQL Server, Windows i³letim sistemine sahip bilgisayarlar üzerinde çal³abilen modern ve popüler veri taban sistemlerindendir. Yaygn kullanm özellikle.net uygulamalar ile olmaktadr. DB2, IBM tarafndan; Sybase, SAP tarafndan geli³tirilen popüler veri taban sistemlerindendir. HBase, kolon temelli NoSQL veri taban olarak snandrlr. Kolon ailesi (column family) yaps ile ayn satra (row) ait farkl kolon aileleri olu³turularak verilere eri³imin hzlandrlmas mümkündür. Bir kolon ailesindeki veriye eri³im, ba³ka bir kolon ailesindeki veriye eri³imi performans anlamnda etkilememektedir. Ba³ka bir deyi³le kolon temelli yap veri aktarm esnasnda satrn tamamen kilitlenmesine sebep olmamaktadr. Kolon temelli veri tabanlar d³nda Anahtar-De er (Key-Value), doküman temelli ve çizge temelli gibi NoSQL veri taban tipleri de bulunmaktadr. HBase di er NoSQL veri taban sistemlerinden, HDFS alt yapsn kullanmas ile fark yaratmaktadr. Kendine ait ve tam performansla çal³abilece i da tk bir dosyalama sisteminin varl HBase'i elastik ve ölçeklenebilir klmaktadr. Bununla birlikte, rastlantsal okuma ve yazma konusunda etkili olmas HBase'in di er NoSQL veri taban sistemlerine göre avantaj sa lad ba³ka bir noktadr. Facebook Messages'n da tercih etti i ve yaptklar testlerde en iyi sonuçlar veren veri taban sistemi NoSQL olmu³tur [8]. 3 Sistem Mimarisi Gerçekle³tirilen çal³ma esnasnda, farkl veri tabanlarna ba lanmak için Spring Çats (Framework) ve MyBatis Sürerlik Çats (Persistence Framework) kullanlm³tr. Genel sistem mimarisi ekil 1'de gösterilmektedir.

Spring, bir uygulamann gerçekle³tirilmesi esnasnda gerekecek birçok modülü içinde barndran bir uygulama çatsdr. Bu çal³mada Spring'in i³lem yöneticisi (Transaction Manager) modülüne yer verilmi³tir. ekil 1: Genel Sistem Tasarm. MyBatis Sürerlik Çats, ili³ki nesne modellerinden (ORM) farkl olarak sakl yordamlarn (stored procedure) nesne olarak Java ortamnda tutulmasna veya SQL cümlelerinin birer Java metotu olarak kullanlmasna olanak vermektedir. MyBatis, kullanld projelerde, genel olarak, tek bir veri taban kaynak olarak kullanlmaktadr. Spring Application-Context modülü i³lem yöneticisini barndrmaktadr. My- Batis modülü, e³leyicileri (mapper) tutmaktadr ve SQL ifadeleri aracl ile veri tabanndaki verinin çekilmesini sa lamaktadr. ³lem yöneticisi SQL cümleciklerinin çal³trlmas esnasnda do abilecek istisnalar do rultusunda i³lemleri (Commit ve Rollback) yönetmektedir Çal³ma prensibi a³a da maddeler halinde verilmektedir: 1. Kullanlacak veri taban sisteminin bilgileri (ör: Veri taban tipi, IP de eri, port, uid, parola, vb.) ile SqlSessionFactory (MyBatis snf) olu³turulmaktadr. 2. MyBatis'te veri taban i³lemleri (ör: create, update, insert, vb.) servisler aracl ile gerçekle³tirilmektedir. Bu servisler veri taban yapsndaki tablo modellerine uygun ³ekilde çal³maktadrlar. Servislerle modeller arasndaki etkile³im e³leyiciler (mapper) aracl ile sa lanmaktadr. Servislerin çal³abilmesi için bir önceki a³amada yaratlan SqlSessionFactory kullanlarak veri taban oturumu olu³turulmaktadr.

3. Bu a³amada istemci, e³leyicilerde tanmlanan fonksiyonlar aracl yla veri tabanndaki modele eri³imini sa layabilmektedir. 4. Veri tabannda istenilen de i³iklik veya görüntüleme yapldktan sonra, istemci tarafndaki veri taban oturumu yine istemci tarafndan kapatlmaktadr. Bu çal³mann hedeedi i gereksinimlerinden biri olan farkl veri tabanlarna ba lanma ve i³lem yönetimi Bölüm 3.1'de, verilerin HBase'e aktarm ve eri³imi Bölüm 3.2'de anlatlmaktadr. 3.1 Farkl li³kisel Veri Taban Sistemlerine Ba lanabilme ve ³lemlerin Yönetilmesi Bu projede Oracle, MSSQL, MySQL, Sybase ve DB2 veri taban sistemlerinin hepsi birden veri kayna olarak kullanmak istenmektedir. Bunun bir sonucu olarak yukarda anlatlan MyBatis çal³ma prensibi Spring'in özellikleri kullanlarak geli³tirilmi³tir. MyBatis-Spring Kütüphanesi aracl ile Spring'in MyBatis ile entegrasyonu gerçekle³tirilmi³tir (Bknz. ekil 2). Entegrasyonun sonucunda ortaya çkan yap ³u ³ekilde çal³maktadr: 1. Spring, Application-Context Container modülü içinde servis yönetimini gerçekle³tirir. Bu modül içerisindeki i³levsel nesnelerden biri olan Datasource Bean, proje kapsamnda kullanlacak farkl veri taban sistemlerine ait bilgilere eri³imi sa lamaktadr (XML, Veri taban, Metin Belgesi veya Hard coded ³ekilde verilmi³ olan). Datasource Bean, bu bilgileri kullanarak, i³lem yaplacak veri taban sisteminde ba lant (connection) açmaktadr. 2. Bir di er i³levsel nesne olan SqlSession Bean, Datasource Bean'in olu³turdu u ba lanty kullanarak veri taban oturumunu açmaktadr. 3. Veri taban üzerindeki i³lemleri gerçekle³tirmek amacyla kullanlan MyBatis servisleri birer Bean nesnesi olarak Container içerisinde yazlmc tarafndan tanmlanmaktadr. Bu servisler olu³turulurken bir önceki admda yaratlan SqlSession enjekte edilmektedir. Ba mllk enjeksiyonu (Dependency Injection) diye de adlandrlan bu yap sayesinde enjekte edilen oturum bilgisine göre servis, farkl veri taban sistemi ile etkile³ebilmektedir. 4. Aktif olan veri tabannda i³lem yaptktan sonra ba³ka bir veri tabanyla etkile³ime geçilmek istenebilir. Bu durumda, Datasource Bean'inin kulland aktif veri taban bilgileri bu veri tabannn bilgileri ile de i³tirilir. Bu de i- ³im bir metot ya da arayüzden gelen bir istek ile gerçekle³tirilebilir. De i³im tamamlandktan sonra Container yenilenir. Servisler yeni oturum bilgileri ile güncellenir ve etkile³ime hazr hale getirilir. Farkl veri tabanlarna ba lant ve sorgulama amac ile kurulan sistem a³a- daki srada i³lemleri gerçekle³tirmektedir. 1. Veri taban de i³ikli i istemi gönderilir. 2. Ba lanlacak veri tabanna ait bilgiler Spring ApplicationContext Container'a iletilir.

3. Ba lant Açlr. 4. SqlSession Bean ba lanty sa lar. 5. Veri tabannda oturum açlr. 6. Oturum Service Bean'e enjekte edilir. 7. Veri tabanndaki i³lemi gerçekle³tirilecek servis ça rlr. 8. Servis, Mapper'n gerekli metodunu ça rr. 9. Mapper ça rlan metota uygun SQL cümleci ini bulur. 10. Ba³langçta karar verilmi³ olan veri taban ile etkile³ime geçerek SQL cümleci i ko³turulur. 11. Sorgu sonucu Service Bean'e ula³trlr. 12. Kullanc tarafna servis ça rsnn cevab ula³trlr. ekil 2: Çoklu Veri taban Eri³imi Farkl veri tabanlar ile çal³rken kar³la³lan bir sknt da istisnalarn (exception) yönetimidir. Bu noktada da Spring Framework'ün sa lad i³lem yönetimi (Transaction Management) modülü kullanlmaktadr. Servislerin içerisindeki metotlardan i³lemsel olanlar (Transactional notasyonuna sahip olanlar) istisna ile kar³la³lan durumlarda geri alma (Rollback) yapabilme özelli ine sahip olurlar. Detayl anlatm örnek üzerinde Bölüm 4.1.'de yaplacaktr. Veri tabanlar üzerinde kullanc tarafndan yaratlacak olan sorgular için ilgili ³emada hangi tablolarn bulundu u bilgisine ihtiyaç duyulmaktadr. Her veri

tabannn farkl bir yapya sahip olmasndan dolay bu tablolar listeleyebilmek probleme neden olmaktadr. Projede bu probleme çözüm için Java'nn veri taban tablo isim listesi, view isim listesi gibi meta data bilgilerini getiren java.sql paketi içindeki DatabaseMetaData snf kullanlmaktadr. Bu snf birçok veri taban tasarmcs kurulu³ ile ortak olu³turulmu³tur ve veri taban ile ilgili yapsal bütün bilgileri bize sunabilmektedir. 3.2 Büyük Veri Taban Sistemlerine Veri Aktarm HBase, Hadoop ile en verimli ³ekilde çal³maktadr. Hadoop'un da tk mimarisi HBase'in performans ve sa lamlk açsndan optimum düzeyde çal³masn sa lamaktadr. Bu sebepten çal³mamzda ilk a³ama olarak Hadoop kurulumu gerçekle³mi³tir. Bu a³amada Hadoop'un kurulacak olan versiyonunu seçerken, çal³lmaya karar verilmi³ olan HBase versiyonu ile uyumlulu una dikkat edilmi³tir. Gerçekle³tirilen çal³mada HBase 0.98.9-Hadoop2 versiyonu ve buna uyumlu olan Hadoop 2.5.2 kurulmu³tur. Kurulumumuzda 3 tane i³çi (slave) ve 1 tane üstat (master) dü ümleri bulunmaktadr. Kurulum srasnda, makinalar Centos 6.5 i³letim sistemine sahiptir. Bu makinalar hepsinin üstüne Hadoop kurulumu gerçekle³tirilirken i³letim sistemine ve Hadoop'a ait hosts, core-site.xml ve hdfs-site.xml dosyalar üzerinde ayarlarn yaplmas gerekmektedir. Bu dosyalar Hadoop'un temel 3 süreci (process) olan Namenode (veri a ac yapsn saklar cluster içinde hangi verinin nerede tutuldu unun kaydn barndrr), Datanode (verileri saklar) ve SecondaryNamenode'un (Namenode'un yede idir) çal³masnda temel olmaktadr. Bir master makinada Namenode tutulurken i³çi makinalarda Datanode çal³maktadr. SecondaryNamenode, Namenode'dan ba³ka bir makinada tutulmaktadr. Bu sayede Namenode'un çökmesi durumunda SecondaryNamenode'daki bilgiler kullanlarak sistem aya a kaldrlabilir. Hosts, core-site.xml ve hdfs-site.xml dosyalar master ve slave makinalarn her biri için ayarlanmaldr. Hadoop kurulumu ve kongürasyonu tamamlandktan sonra HBase kurulumu gerçekle³tirilir. HBase'in temel süreçleri HMaster (Namenode'un ko³turuldu u makinada ko³turulur metadatalar saklar.), HRegionServer (Datanode'larn çal³trld makinalarda çal³trlr, verilerin tablo yaps altnda saklanmasn sa - lar.) ve HQuorumPeer (Hmaster ve Hregionserverlar arasnda bilgi al³veri³inin yaplmasn sa lar. stemci tarafndan gelen istekleri yönetir.)'dir. HBase kurulurken hbase-site.xml kongüre edilmektedir. HDFS'nin yordam (HDFS Path) burada belirtilmektedir. Yaplan kongürasyon HBase'in tablolarn HDFS yaps altnda tutmasn sa lamaktadr. Ayrca, Hadoop'un çal³ma moduna göre (Fully Distributed, Pseudo Distributed, Single Node) HBase'in çal³ma modu bu dosyada belirlenmektedir. Bu çal³mada single node (tek makina) ve fully distributed (tamamen da tk) modlar testlerde kullanlmaktadr. HBase'in tablo yaps kolon aileleri (Column Family) içermektedir. Ayrca, veriyi baytlar halinde tuttu undan dolay kayt edilen verinin baytlara çevirilerek kayt edilmesi gerekmektedir. JSON kaydedilecek verinin snf yapsnda

baytlara çevrilerek kaydedilmesini sa lamaktadr. Yaplacak testlerde kolon aileleri kullanlarak veri kayt edilmesi ve verinin JSON objesine çevrilerek kayt edilmesi ayr ayr incelenmektedir. Bir sonraki bölümde gerçekle³tirilen testler incelenecek ve sonuçlar payla³lacaktr. 4 Gerçekle³tirilen Testler ve Sonuçlar Sistem gereksinimleri dahilinde 5 farkl veri taban i³letim sistemine eri³im performans testleri ve i³lem yöneticisi fonksiyonalite testleri gerçekle³tirilmi³tir. Bunlarla birlikte HBase veri taban üzerinde büyük veri yazma ve okuma testleri yaplm³tr. Bölüm 4.1'de ili³kisel veri tabanlar üzerinde yaplan testler, Bölüm 4.2'de HBase üzerinde gerçekle³tirilen testler detaylandrlacaktr. 4.1 Çoklu ili³kisel veri taban sistemlerine eri³im testleri li³kisel veri taban sistemlerine eri³im testleri 3.4 GHz i7 i³lemciye, 8Gb RAM'e sahip bir makina üzerinde gerçekle³tirilmi³tir. li³kisel veri tabanna yönelik fonksiyonel testler olarak, ba lant kontrolü ve i³lem yönetimi testleri gerçekle³tirilmi³tir. Ba lant kontrolünde ( ekil 2'de detaylandrlan), veri tabanlarna ba lant ve oturum açma kontrolü bahsi geçen tüm veri tabanlar için gerçekle³tirilmi³tir. Bu test srasnda veri tabanlarndan sadece veri getirme amacyla kullanlan (select sorgular içeren) servisler ça rlm³tr. Servis ça rlarnn sonucunda her veri tabannn kendisine ait olan veriyi eksiksiz bir ³ekilde getirdi i görülmü³tür. Farkl veri taban i³letim sistemlerinde bulunan, index içermeyen ve 8 kolonluk varchar bilgi saklayan tablolardan 5000 satrn getirilmesi (select) ile gerçekle³tirilen testlerin sonuçlar Tablo 1'de gösterilmektedir. MyBatis-Spring kütüphanesi ile geli³tirilen ili³kisel veri taban eri³imi testlerinin sonuçlar Tablo 1'in ilk satrnda, JDBC ile gerçekle³tirilen testlerin sonuçlar tablonun ikinci satrnda gösterilmektedir. Test sonuçlarna göre MyBatis-Spring kütüphanesi ile olu³turulan sistemin sonuçlar JDBC ba lantsna göre her veri taban için daha iyi sonuçlar vermektedir. Tablo 1: 5000 satrn okunmas (Saniye) MySQL MSSQL ORACLE SYBASE DB2 JDBC 2,01 2,06 2,14 2,32 2,45 MyBatis-Spring 0,55 1,19 2,12 1,50 2,36 ³lem yönetimi testinde, Cybersoft tarafndan kullanlan hatasz çal³mas beklenen servisler kullanlmaktadr. Örne in baz durumlarda, kullancnn web uygulamas üzerinde oturum açp, i³ledi i veriyi kaydetmek için ilgili servisi ça- rmas gerekmektedir. ekil 1'de gösterildi i üzere Application Context içerisinde bulunan ilgili servis, aktif olan veri taban oturumu kullanlarak çal³trlr.

Böylelikle, kayt i³lemlerini kendisine enjekte edilmi³ oturum üzerinden gerçekle³tirebilmektedir. E er metot i³lemselse yani @transactional notasyonuna sahip ise; Application Context içerisinde yer alan i³lem yönetimi (transaction manager) aracl yla istisnalar yönetebilmektedir. Metot içerisinde istisna (exception) ortaya çkarsa yaplan i³lemin geri alnmasn (rollback) ya da istisna olu³mam³sa metottan dönüldü ü srada i³lemin onaylanmasnn (commit) sa lamas gerçekle³mektedir. Bahsedilen örnek için kayt srasnda istisna çkaran durum ve çkarmayan durum ayr ayr test edilmi³tir. ³lem yönetimi fonksiyonalite testleri sonucunda, istisna meydana geldi inde kaydetme i³leminin gerçekle³medi i, istisna olmad durumda ise kullancnn belirtti i veri taban üzerinde kaytlarn olu³tu u görülmü³tür. ³lem yönetiminin zamansal olarak yükünü gözlemlemek amacyla gerçekle³tirilen performans testleri sonucu Tablo 2'de sergilenmektedir. Ekleme i³leminde kullanlan veri 8 kolonlu varchar içeren 1000 satrdan olu³maktadr. li³kisel veri tabanlarna eklenmesi önceden yaratlm³ üzerinde index bulunmayan bir tablo yaps kullanlarak gerçekle³tirilmi³tir. Tablo 2'de ilk satr @transactional noyasyonuna sahip, ikinci satr ise sahip olmayan metotlarn sonucunu göstermektedir. Görülece i üzere i³lemsellik dü³ük seviyede fazla yük yaratmaktadr. Bununla birlikte, sebep oldu u küçük dezavantaja ra men sistemi hataya kar³ daha sa - lam klan (commit ve rollback) mekanizmalar içerdi inden ötürü kullanlmas fayda sa lamaktadr. Tablo 2: 1000 satrn eklenmesi (Saniye) MySQL MSSQL ORACLE SYBASE DB2 ³lemsel 14 16 55 15 17 ³lemsel de il 10 13 54 10 14 4.2 HBase veri taban performans testleri HBase ve Hadoop, tek makina ve tam da tk ³ekilde Cybersoft'a ait sunucular üzerinde gerçekle³tirilmi³tir. Tek makina tipindeki kurulum 2GB RAM, 3 GHz tek çekirdek i³lemciye sahip bir sunucuda çal³trlm³tr. Tam da tk modda, master makina 2 GB Ram ve 3 GHz çift çekirde e sahip iken, slave makinalar her biri 1 gb RAM ve 3GHz tek çekirdek i³lemciye sahip 2 makina üzerinde kurulmu³tur. HBase yaps altnda verilerin eklenmesi ve okunmas zamansal etki açsndan incelenmi³tir. A³a da sonuçlar sunulan testler, UCI Yapay Ö renme Veri kayna ndan (http://archive.ics.uci.edu/ml/datasets/poker+hand) çekilen 1025010 satr ve 11 kolon içeren veri kümesi ile gerçekle³tirilmi³tir.

Tablo 3'te tek makina ve tam da tk kongürasyonlar üzerinde sral (synchronous) ve toplu (batch) veri ekleme sonuçlar gösterilmektedir. Toplu olarak veri ekleme sonuçlar beklendi i gibi daha iyi sonuç vermektedir (30 kat daha iyi). Tam da tk yaplandrmada ise toplu veri ekleme sonuçlar beklenildi i gibi tek makinadan daha iyi sonuç vermektedir. Tablo 3: 1 milyon satrn eklenmesi (Saniye) Senkron Toplu Tek Makina 1865 66 Tam da tk 2129 26 Tablo 4'te tek makina ve tam da tk kongürasyonlar üzerinde JSON'a çevirilerek ve kolon ailelerine bölünerek veri ekleme sonuçlar gösterilmektedir. Snf yapsna sahip JSON objeleri ile tek bir kolon ailesi üzerinden yaplan testlerin çoklu kolon ailesi yaps ile gerçekle³tirilen testlere göre daha iyi sonuç verdi i saptanm³tr. Tablo 4: 1 milyon satrn farkl yaplarda eklenmesi (Saniye) JSON Kolon Ailesi Tek Makina 37 111 Tam da tk 25 97 Tablo 5'te tek makina ve tam da tk yaplandrmalar üzerinde okuma i³lemlerinin sonuçlar gösterilmektedir. HBase yaps ile tek makina (3 GHz i³lemci ve 2 GB RAM) üzerinde yaplan testlerin sonucunda 1025010 satrn okunmas 44 saniye sürmü³tür. u ana kadar gerçekle³tirdi imiz testlerde ili³kisel veri taban sistemlerinden bu seviyede bir veri okumas gerçekle³tirilememi³tir (3.4 GHz i7 i³lemciye, 8Gb RAM'e sahip bir makina üzerinde). Basit bir hesapla 5000 satrlk verinin okunmas en iyi ihtimalle (MySQL) 0,55 sn sürdü üne göre 1 milyon satrlk verinin okunmas 0,55*200=110 sn sürecektir. Tablo 5: 1 milyon satrn okunmas (Saniye) Okuma Tek Makina 44 Tam da tk 45

Elde edilen sonuçlara dayal olarak, HBase' in 3 kat daha hzl veri döndü ü saptanm³tr. Veri okunmas ksmnda tam da tk yaplandrmada verinin her bir makinadan toplanarak getirilmesi söz konusu oldu undan dolay tek makine ve tam da tk yaplandrma arasnda belirgin bir süre farkna rastlanmam³tr. 5 Sonuç ve Gelecekteki Çal³malar Bu çal³ma kapsamnda, birden fazla veri tabannn ortak kullanmnn oldu u sistemlerde kar³la³lan problemlere bir çözüm geli³tirilmektedir. Bu problemler arasnda, ba lant problemleri, hangi tablonun hangi veri tabanndan geldi inin bilinememesi, i³leme ve geri alma mekanizmalarnn yeterli düzeyde sa lanamamas yer almaktadr. Önerilen çözüm, Oracle, MySQL, MSSQL, DB2 ve Sybase gibi veri tabanlar için ortak bir eri³im katman olu³turmakta ve bu farkl veri tabanlarndan elde edilen büyük hacimli verinin muhafaza edilmesi ve analiz i³lemlerinde kullanlabilmesi için kolon tabanl büyük veri i³leme platformlarn kullanmaktadr. Çözümün kullanlabilirli i test etmek amacyla, 5 farkl veri tabanna eri³im performans testleri ve i³lem yöneticisi fonksiyonalite testleri gerçekle³tirilmi³tir. Bunlarla birlikte HBase veri taban üzerinde büyük veri yazma ve okuma testleri de yaplm³tr. Testler sonucunda elde edilen sonuçlar, önerilen yakla³mn, i³lemsellik açsnda dü³ük seviyede ek yük yaratt n göstermektedir. Bununla birlikte, sebep oldu u küçük dezavantaja ra men sistemi hataya kar³ daha sa - lam klan commit ve rollback mekanizmalar sayesinde faydalar sa lamaktadr. Yine elde edilen, test sonuçlarna göre, çözümde kullanlan MyBatis ve Spring kütüphaneleri ile olu³turulan sistemin sonuçlar JDBC ba lantsna göre her veri taban için daha iyi sonuçlar vermektedir. Toplu olarak veri ekleme sonuçlar ise beklendi i gibi daha iyi sonuç vermi³tir. Gelecek çal³malar arasnda, önerdi imiz çözümün daha farkl veri tabanlar üzerinde test edilmesi ve daha kapsaml performans ve yük testlerinin yaplmas yer almaktadr. Kaynaklar 1. Database management systems. http://db-engines.com/en/systems, note= Ula³m: 09.01.2015, key= 0 2. Db-engines ranking. http://db-engines.com/en/ranking, note= Ula³m: 09.01.2015, key= 1 3. Oracle system properties. http://db-engines.com/en/system/oracle, note= Ula³m: 09.01.2015, key= 2 4. Alapati, S.R.: Expert Oracle Database 11G Administration. Apress, Berkely, CA, USA, new edn. (2008) 5. George, L.: HBase: the denitive guide. " O'Reilly Media, Inc." (2011) 6. Ghemawat, S., Gobio, H., Leung, S.T.: The google le system. In: ACM SIGOPS operating systems review. vol. 37, pp. 2943. ACM (2003) 7. Leavitt, N.: Will nosql databases live up to their promise? Computer 43(2), 1214 (2010)

8. Muthukkaruppan, K.: Storage infrastructure behind facebook messages. Proceedings of HPTS 11 (2011) 9. White, T.: Hadoop: The denitive guide. " O'Reilly Media, Inc." (2012)