Bellek İçi Raporlama Sistemleri İçin Denormalizasyon Uygulaması



Benzer belgeler
Kurumsal Raporlama Çözümlerinde Bellek İçi Veritabanı Kullanımı

Kurumsal Raporlama Çözümlerinde Bellek İçi Veritabanı Kullanımı

Hybrid Software Veritabanı ve Sistem 7x24 Destek &Danışmanlık Hizmetleri Veritabanı ve Sistem 7x24 Destek & Danışmanlık Hizmetleri

Veritabanı. Ders 2 VERİTABANI

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

Web Server Sunucu Loglarının K-Komşu Algoritması ile İ ncelenmesi

SİSTEM İHTİYAÇLARI (Tiger Enterprise / Tiger 3 Enterprise)

SİSTEM İHTİYAÇLARI (Tiger Plus / Tiger 3)

inde Sepet Analizi Uygulamaları Market Basket Analysis for Data Mining

Web Madenciliği (Web Mining)

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

PARALEL VERİ MADENCİLİĞİ ALGORİTMALARI. BAŞARIM 09, Nisan 2009, ODTÜ, Ankara

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

NoSql ve MongoDB. Saygın Topatan

VIERO ARAÇ SAYIM SİSTEMİ

YENİ NESİL 720 SÜRÜMÜ GENEL DEĞİŞİKLİKLER

HP Yazılım Zirvesi - İstanbul 20 May Wyndham Grand Levent Erdem Alaşehir / Finansbank Güvenlik Olay Korelasyonunda Büyük Veri Kullanımı

Bilgi ve Olay Yönetim Sistemi

APRIORI ALGORİTMASI İLE ÖĞRENCİ BAŞARISI ANALİZİ

Dicle Üniversitesi Bilgi İşlem Online Talep Takip Sistemi

JetSMS Direct Çözümü

VIERO, görüntü tabanlı analiz sayesinde, ortalama araç hızı bilgisi üretmekte ve araç yoğunluğunu da ölçmektedir. VIERO Araç Sayım Sistemi

"SQL Server Management Studio" yazılımını yüklemek için alttaki resmi sitesinden 180 günlük deneme sürümünü indirebilirsiniz.

TLife Warehouse Management System365 Cloud

PERFORMANCE COMPARISON OF KARATSUBA AND NIKHILAM MULTIPLICATION ALGORITHMS FOR DIFFERENT BIT LENGTHS

PERSONEL TAKİP SİSTEMİ

Kets DocPlace LOGO Entegrasyonu

BAŞARI HİKAYESİ. AVM Kişi Sayım ve Raporlama Yönetim Paneli

POSTGRESQL'de İleri Seviyede Veri Kurtarma ve Yedekleme

30 Mayıs ETASQLMNG Programına giriş

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

İnternet Programcılığı

İLİŞKİSEL VERİTABANLARI

Bilgi ve Olay Yönetim Sistemi

Bulanık Mantık Tabanlı Uçak Modeli Tespiti

Doküman No.: P510 Revizyon No: 00

Karar Destek Sistemi

Üniversitesi. {g.karatas, Library, Science Direct ve Wiley veri içerisinde

Copyright 2012 EMC Corporation. All rights reserved.

VERİTABANI VERİTABANIN AVANTAJLARI ÖZET

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

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

Ö Z G E Ç M İ Ş. 1. Adı Soyadı: Mustafa GÖÇKEN. 2. Doğum Tarihi: 12 Haziran Unvanı: Yrd. Doç. Dr. 4. Öğrenim Durumu: Ph.D.

UNIVERSAL BİLGİ TEKNOLOJİLERİ

Coslat Monitor (Raporcu)

ANKARA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ DÖNEM PROJESİ TAŞINMAZ DEĞERLEMEDE HEDONİK REGRESYON ÇÖZÜMLEMESİ. Duygu ÖZÇALIK

SİGORTACILIKTA PERFORMANS: WEBLOGIC COHERENCE, EXADATA

DESTEK DOKÜMANI. Ürün : Tiger Enterprise/ Tiger Plus/ Go Plus/Go Bölüm : Kurulum İşlemleri

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

VERİ TABANI UYGULAMALARI

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

SIRA NO SORUMLU BİRİM FAALİYET SORUMLU DURUM AÇIKLAMA

Gezgin Satıcı Probleminin Benzetilmiş Tavlama Yöntemiyle Çözümünde Paralel Hesaplamanın Kullanılması

1-Veritabanı Yönetim Sistemleri /Tanım

Ahmet Demirhan. 07 Haziran İstanbul

Yazılım Mühendisliğine Giriş 2018 GÜZ

Novartis İş Zekası Çözümü. 7 Kasım 2012, İstanbul Kaan Marangoz, Novartis

HASTA TAKİP SİSTEMLERİNDE RFID UYGULAMASI

BT İşyükü Otomasyonu Çözümleri.

2 Temel Kavramlar (Devam) Veritabanı 1

Kurumsal Yönetim Sistemleri Sistemleri

ANET YAZILIM LOG YÖNETİMİ. Karşılaştırma Tablosu ANET YAZILIM

HAKKIMIZDA. Misyonumuz; Vizyonumuz;

UZAKTAN EĞİTİM MERKEZİ

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

Devlet Demiryolları için Maliyet Tabanlı Rekabetçi Fiyatlandırma Sistemi (MATRİS) Selim Çetiner Serhan Turhan - 9 Aralık 2014, Salı

@6 SERİSİ ÜRÜN KURULUMU

Q-Biz İş Zekası Versiyon Yenilikleri

LOGO NETSİS 3 STANDARD FİYAT LİSTESİ 5 Nisan 2016 tarihinden itibaren geçerlidir.

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

EFe Event Management System

Bulut Bilişim. Ege Üniversitesi Bilgisayar Mühendisliği Web Servisleri

İRİSTEN KİMLİK TANIMA SİSTEMİ

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

Kurulum Dökümanı. v

Apriori Algoritması ile Teknik Seçmeli Ders Seçim Analizi

İŞLETİM SİSTEMLERİ. (Operating Systems)

Advanced Oracle SQL Tuning

SAP İNOVASYON FORUM Eski Köye Yeni Adet

Veri Tabanı-I 1.Hafta

Lojistik Bilişim Çözümleri. ÇÖZÜM Bilgisayar ve Yazılım

Veri Ambarından Veri Madenciliğine

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Bilecik Üniversitesi Mühendislik Fakültesi Moodle Uzaktan Öğretim Sistemi

License. Veri Tabanı Sistemleri. Konular büyük miktarda verinin etkin biçimde tutulması ve işlenmesi. Problem Kayıt Dosyaları

Borsa Bilgi Sistemi TEKLİF DOSYASI

BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI. 1-Bilgisayar, donanım ve yazılım kavramları 2-Bilgisayar çeşitleri 3-Bilgisayarlar arsındaki farklılıklar

BM-311 Bilgisayar Mimarisi

AKADEMEDYA YAZILIM BİLGİSAYAR EĞİTİM VE DANIŞMANLIK TİC. SAN. LTD. ŞTİ Kocaeli Üniversitesi Yeniköy Teknopark Yerleşkesi Başiskele / Kocaeli Tel Faks

BioAffix Ones Technology nin tescilli markasıdır.

CHAOS TM Dinamik Kavşak Kontrol Sistemi

GEOPORTAL SİSTEMLERİNDE GRID VE CLOUD COMPUTING TEKNOLOJİLERİNİN KULLANILABİLİRLİĞİNİN ARAŞTIRILMASI

FABREKA YAZILIM ELEKTRONİK DANIŞMANLIK TİC. LTD. ŞTİ.

ANET YAZILIM LOG YÖNETİMİ. Karşılaştırma Tablosu ANET YAZILIM

KANTAR UYGULAMASI Kurulum Kılavuzu

CloudPro Server Backup. Güçlü bir Veri Yedekleme Çözümü ile İş Sürekliliğinizde Devamlılığın Anahtarı

1 Temel Kavramlar. Veritabanı 1

BioAffix Ones Technology nin tescilli markasıdır.

Transkript:

Bellek İçi Raporlama Sistemleri İçin Denormalizasyon Uygulaması Mehmet Yasin Akpınar 1, Erdem Orman 1, Mehmetcan Gayberi 2 1 İdea Teknoloji Çözümleri, İstanbul mehmet.akpinar@ideateknoloji.com.tr, erdem.orman@ideateknoloji.com.tr 2 İstanbul Teknik Üniversitesi, Bilgisayar Mühendisliği Bölümü, İstanbul gayberi@itu.edu.tr Özet: Veri hacminin artışına bağlı olarak geleneksel veritabanlarının yetersiz kaldığı bilinmektedir. Bu problemi çözmek amacıyla bellek içi veritabanlarından faydalanılmaktadır. Ayrıca denormalizasyon çalışmalarıyla da performansta artış elde edilebilmektedir. Ancak bellek içi veritabanları veri saklamaya elverişli değildir. Bu sebeple disk bazlı yedeklemeye başvurulmaktadır. Bu çalışmada bu yöntemlerin hepsini birlikte barındıran bir metod önerilmiştir ve gerçek veriler üzerinde testler yapılarak önerilen metodun eski sistemle performans açısından karşılaştırması yapılmıştır. Anahtar Sözcükler: Bellek İçi Veritabanı, Birliktelik Kuralı Analizi, Denormalizasyon, Geleneksel Veritabanı. A Denormalization Framework for Reporting Applications in Main Memory Databases Abstract: It is known that traditional databases are becoming insufficient due to the increase in data. To overcome this problem, main memory databases are made use of. Additionally, a performance increase can be achieved thanks to denormalization operations. On the other hand, main memory databases are not compatible for data storage. For that reason, traditional databases are utilized. In this study, a method combining all these procedures is proposed and a performance comparison is presented by testing on actual data. Keywords: Association Rule Analysis, Denormalization, Main Memory Database, Traditional Database. 1. Giriş Ürün takiplerinin elektronik ortama taşınmasıyla birlikte şirket veritabanlarındaki veri hacmi artışı beraberinde birçok problem ortaya çıkarmıştır. Bu problemlerin en önemlilerinden bir tanesi veri yönetiminin zorlaşması ve donanımın yetersiz kalarak performans düşüşü yaşanmasıdır. Bu nedenle veritabanı yönetim sistemlerinde yapılan çalışmalar büyük veri hacmine sahip şirketler için hayati önem taşımaktadır. Bu çalışmalar kapsamında geleneksel disk tabanlı veritabanı sistemlerinin yetersiz kaldığı durumlarda bellekiçi veritabanları tercih edilmektedir. Bununla birlikte veritabanında bulunan yapı analiz edilip denormalizasyon yoluna gidilerek performans artışı sağlanabilmektedir. Bunların dışında bellek içi veritabanı ve geleneksel disk tabanlı sistemler arasında bir kanal oluşturularak veri aktarımının sağlanması ve bu verinin güncelliğinin korunması gerekmektedir.

Yapılan araştırmalarda yukarıda bulunan 3 yöntemi aynı anda bulunduran bir uygulama görülmemiştir. Bu bildiride, sayılan 3 yöntem bazı modifikasyonlarla birlikte bir çatı altında toplanmış ve kurumsal raporlama çözümlerinde yüksek performanslı bir sistem elde edilmeye çalışılmıştır. Çalışmanın esas hedefi, raporlama sürecinde hız kazanmak ve mevcut sitem ile raporlanması mümkün olmayan verilerin önerilen yöntem ile raporlanabilmesini sağlamaktır. Giriş Bölümü nde çalışmanın ortaya çıkmasında etkili problemler, amaçlar ve kapsama ait bilgiler verilmiştir. İkinci bölüm olan İlgili Çalışmalarda ise literatür araştırmasında elde edilen bilgiler paylaşılmıştır. Üçüncü Bölüm de önerilen yöntem detaylarıyla anlatılmakta olup, Dördüncü Bölüm de bu yöntemin gerçeklenmesiyle elde edilen karşılaştırmalı sonuçlara yer verilmektedir. Son Bölüm olan Sonuç Bölüm ünde ise çalışmadan elde edilen sonuçlar özetlenmektedir. 2. İlgili Çalışmalar Veri odaklı çözümlerin birçoğunda uzun yıllardır disk tabanlı veritabanları kullanılmaktadır. Bu tip sistemlerde ana bileşen sabit disktir ve veri disk üzerinde depolanır. Ancak sabit disklerin hızı düşük olduğu için genellikle önbellek yapısından destek almaktadır. Buna rağmen önbelleklerinin kısıtlı olması nedeniyle işlenecek veri hacminin artışına bağlı olarak performansları düşmektedir. Teknolojideki gelişme ve değişimler bellek donanımlarına hız artışı ve maliyet düşüşü olarak yansımıştır. Bununla birlikte eskiden yüksek maliyetli olan bellek içi veritabanı kullanımı yaygınlaşmaya başlamıştır. 2011 yılında yapılan bir çalışmada bellek içi veritabanı sistemlerinin performans odaklı sistemlerdeki payının ciddi şekilde yükseldiği, bu sistemlerin yüksek hızda veri işlemeye olanak sağladığı, çoklu kullanıcılı sistemlerde kullanılabildiği ve önbelleğe duyulan gereksinimi ortadan kaldırdığı tespit edilmiştir [1]. 2012 yılında yapılan bir çalışmada ise, özellikle 64-bit sunucuların gelişmesiyle bellek içi veritabanlarının kapasitelerinin yükselerek, daha kullanışlı hale geldikleri anlatılmaktadır [2]. Ancak bellek içi veritabanları beraberinde yedekleme problemini de getirmektedir. Fakat bu problem disk bazlı anlık yedekleme ile çözülebilmektedir. Bu alanda yapılan bir çalışmada farklı algoritmalar kullanılarak, hızlı ve az maliyetli bellek içi veritabanı yedekleme ile uğraşılmıştır [3]. Öte yandan geleneksel disk tabanlı sistemlerle birlikte bellek içi tabanlı sistemlerin birlikte kullanıldığı hibrid ilişkisel veritabanı sistemleri de mevcuttur. 2011 de yapılan bir çalışmada bu tip bir sistem üzerinde çeşitli çalışmalarla ciddi performans artışları sağlanmıştır [4]. Yapılan çalışmalar sadece donanımla kısıtlı kalmamış, yazılımla da performans artışı üzerine çalışılmıştır. Rapor sorgularında zaman açısından JOIN ve UNION yapıları oldukça yüksek maliyete neden olduğu için denormalizasyon yoluna gidilmiş ve bazı tablolar önceden birleştirilerek bu maliyetten kurtulmak istenmiştir. Bu şekilde bir performans artışı sağlanabilmesi için veritabanındaki verinin analiz edilip, ilişkilerin çıkarılması gerekmektedir. 2001 yılında yapılan bir çalışmada çeşitli denormalizasyon teknikleri detaylı bir şekilde ele alınmıştır [5]. 2009 yılında yapılan bir başka çalışmada ise sistematik bir veritabanı denormalizasyon yöntemi üretilmiş ve örnek sorgular üzerinden açıklanmıştır [6]. 3. Önerilen Yöntem Bu bölümde önerilen yöntem detaylı bir şekilde alt başlıklar halinde anlatılacaktır. Her alt başlıkta bulunan akış diyagramları bölümün sonunda birleştirilmiş olarak da mevcuttur.

3.1 Mevcut Veritabanındaki Verilerin Analiz Edilmesi Veritabanındaki verilerin analizi birçok konuda bilgi edinilmesini sağlamaktadır. Çalışma kapsamında bu analiz için Log Parser (Kayıt Ayrıştırıcı) uygulaması yazılmıştır. Böylece raporların çekilme sıklıkları, cevap süreleri ve istek zamanları elde edilmiştir. Bu çıktı kullanılarak raporların günlük, haftalık ve aylık histogramları çıkarılmıştır. Bununla birlikte cevap süresi uzun olan ve sistem üzerinde yük oluşturan raporlar tespit edilip, bellek içi veritabanından çekilecek raporlara karar verilmiştir. Ayrıca tablo içeriklerindeki değişiklikler (ekleme, güncelleme, silme) incelenerek, bu değişiklerin günün hangi zaman diliminde yoğunlaştığı öğrenilmiştir. 3.3 Birliktelik Kuralı Analizi Log Parser uygulaması aracılığıyla bellek içi veritabanından çekilmesi kararlaştırılan raporların sorguları SQL Parser aracılığıyla ayrıştırıldıktan sonra birliktelik kuralı analiziyle raporlarda birlikte en çok kullanılan JOIN yapıları elde edilmeye çalışılmıştır. Agrawal, Imieliński ve Swami nin [7] çalışmasını baz alan bu adımda market sepetlerindeki ürünler yerine rapor sorgularında bulunan JOIN yapıları kullanılarak bu yapıları işlenmiş olarak bulunduran ekstra tablolar yaratılmıştır. 2 veya daha fazla tablonun JOIN kuralları çerçevesinde birleşimiyle oluşan bu tablolar küp tablo olarak adlandırılmıştır. Şekil 1: Mevcut Veritabanı Analizi 3.2 Rapor Sorgularının Ayrıştırılması Mevcut veritabanındaki verilerin analizinden sonra kararlaştırılan raporların SQL sorguları yazılan SQL Parser uygulaması aracılığıyla ayrıştırılmıştır. Çıktı olarak TABLO, KOLON, FONKSIYON ve JOIN yapıları elde edilmiştir. Bu bilgiler aracılığıyla mevcut veritabanı yapısından bellek içi veritabanına aktarılması istenilen veriye ulaşılmıştır. Bu adımın sağladığı en büyük yarar bellek içi veritabanına kopyalanacak veri içinde gereksiz bilgilerin bulunmaması dolayısıyla yeni yaratılacak veritabanı boyutunun minimum tutulmasıdır. Şekil 3: Birliktelik Kuralı Analizi 3.4 Boyut Tahmini Çalışmaları Bellek içi veritabanına aktarılacak olan veri ve yaratılacak küp tablolar belirlendikten sonra mevcut veritabanındaki veri tipi, boyutları ve tablolardaki satır sayıları kullanılarak bellek içi veritabanında yer alacak verinin toplam boyutu yaklaşık olarak hesaplanmıştır. Bu hesaplama yapılırken bellek içi veritabanı ürününün sunduğu kolon sıkıştırma özelliği de göz önüne alınmıştır. Böylece oluşturulacak veritabanının donanım gereksinimi elde edilmiştir. Şekil 2: SQL Parser ile Ayrıştırma Şekil 4: Boyut Tahmini Hesaplamaları

3.5 Güncelleme Modülü Çalışmaları Mevcut veritabanı ve bellek içi veritabanı sistemleri arasında veri ve dolayısıyla rapor güncelliği sağlanması için bir güncelleme modülü gerekmektedir. Bu işlem birden fazla yöntemle sağlanabildiği için bu yöntemlerin kıyaslanması ve en uygun olanın seçilmesi gerekmektedir. 4. Deneysel Sonuçlar Şekil 5: Genel Akış Bu bölümde bir önceki bölümde anlatılan adımlar takip edilerek algoritmalarda kullanılan parametreler ve elde edilen çıktılar sayısal olarak paylaşılmıştır. Çalışma kapsamında üzerinde çalışılan test sunucusunun özellikleri şu şekildedir; 4 Intel(R) Xeon(R) CPU E7-4820 @ 2.00 GHz işlemci, 240 GB bellek ve 300 GB disk. Sunucu üzerinde kurulu işletim sistemi ise Windows Server 2008 R2 dir. Hazırlanan test sunucusunda geleneksel disk tabanlı veritabanı ürünü olarak Oracle 11g (Release 2) veritabanı sistemi ürünü, bellek içi veritabanı olarak Oracle TimesTen (11.2.2 x64) ürünü kullanılmıştır. Bu ürünün seçiminde farklı bellek içi veritabanı sistemlerinin performanslarının karşılaştırıldığı bildiriden faydalanılmıştır [8]. 4.1 Mevcut Veritabanından Elde Edilen Bulgular Mevcut veritabanı analizinin ilk aşamasında Log Parser uygulaması örnek müşteri verilerinden oluşturulan alt küme üzerinde kullanılarak 2013 Eylül - 2014 Şubat periyodundaki rapor kayıtları (logları) incelenmiştir. Bu çıktıdan daha doğru cevap süresi ortalamaları elde edebilmek amacıyla, sonuçlar üzerinde tek yönlü budanmış ortalama (one-sided trimmed mean) yöntemi kullanılmıştır. Bu yöntemle her raporun en yavaş %1 lik kesimde yer alan kısmı ortalama hesabından çıkarılarak bazı bağlantı veya kullanıcı kaynaklı hataların sonucu etkilememesi amaçlanmıştır. Tek yönlü budanmış çalışma hızı ortalamaları 10 saniyenin üzerinde olan raporların bellek içi veritabanında çalıştırılması uygun görülmüştür. Ayrıca rapor istek frekansları da göz önünde bulundurulmuştur. Raporların istek frekanslarının bütün rapor istekleri içindeki yüzdeleri hesaplanıp değerleri %3 ün üzerindeki raporlar seçilmiştir. Bu iki özelliğe aynı anda sahip olan rapor sayısının 5 olduğu görülmüştür ve performans testlerinde bu alt küme ve raporlar kullanılmıştır. Yine Log Parser dan elde edilen çıktı kullanılarak 4 farklı histogram üretilmiştir. Şekil 6 da bu histogramlar mevcuttur. Veritabanı analizinin ikinci aşamasında ise tablo içeriklerindeki değişiklikler ele alınmıştır. Şekil 7 de verilen sonuçlar ışığında değişiklik miktarlarında sabah 08:00-10:00 arasında bir yoğunluk yaşandığına, ancak asıl yoğunluğun 16:00-20:00 arasında olduğuna ulaşılmıştır. Bu bilgiler daha sonra periyodik güncelleme zamanları belirlenirken kullanılmıştır.

Şekil 6: Rapor İsteklerinin Çeşitli Histogramları Şekil 7: Büyük Veriye Sahip Tablo İçeriklerinin Günün Saatlerine Göre Değişimleri

4.2 Rapor Sorgularının Ayrıştırılması Rapor kayıtları incelemesiyle bellek içi veritabanından çekilmesi kararlaştırılan 5 raporun sorgularının SQL Parser aracılığıyla ayrıştırılması sonucu yeni yaratılacak veritabanına aktarılması gereken verinin 19 tabloda yer aldığı saptanmıştır. Ayrıca bu 5 raporun sorgularında bulunan JOIN yapıları da birliktelik kuralı analizi için kaydedilmiştir. 4.3 Birliktelik Kuralı Çalışmaları Çalışmanın bu aşamasında en çok bilinen ve uygulaması en kolay birliktelik kuralı algoritmalarından biri olan Apriori Algoritması gerçeklenmiştir. Bununla birlikte rapor sorgularından elde edilen JOIN yapılarıyla birlikte rapor frekansları kullanılarak apriori algoritması için bir girdi dosyası hazırlanmıştır. Apriori Algoritmasında kullanılan terim ve formüller Tan, Steinbach ve Kumar ın kitaplarından alınmıştır [9]. Algoritma gerçeklenirken birçok farklı parametre denenmiştir. Bu parametreler içinden veritabanı uzmanı ile birlikte en doğru sonuçların support=0,33 ve confidence=0,01 parametreleriyle elde edildiği görülmüştür. Bir başka deyişle raporların en az 1/3 ünde yer alan JOIN ilişkilerinin küp tablo halinde saklanması gerektiği sonucuna varılmıştır. Bu parametreler doğrultusunda elde edilen çıktı filtrelenmiştir. Bu adımda amaçlanan mümkün olan en çok JOIN ilişkisini bir arada bulunduran küp tablolar yaratabilmektir. Bunu sağlamak için bir başka kuralın alt kümesi olan kurallar elenmiştir ve geriye sadece 4 küp tablo önerisi kalmıştır. 4.4 Boyut Tahmini Çalışmaları Rapor sorgularının ayrıştırılmasından elde edilen 19 tablo ve birliktelik kuralı analiziyle elde edilen kurallar doğrultusunda bu tablolardan yaratılacak olan 4 küp tablonun toplam boyutu 26GB olarak hesaplanmıştır. Bu hesaplamada kullanılan formül Şekil 8 de verilmiştir. int row_size = 0; int size = 0; for each column in table_columns { } If (data_type == "NVARCHAR2" && character _length > 64) size = 2 * avg_column_length + 24; Else If (data_type == "NVARCHAR2" && character _length <= 64) size = 2 * character_length + 8; Else If (data_type == "DATE") size = 7; Else If (data_type == "NUMBER") size = data_precision + data_scale; row_size += size; double table_size = row_count * row_size; // in bytes table_size = table_size/1048576; // in megabytes Şekil 8: Boyut tahmini formülü Formülde yer alan avg_column_length, character _length, data_precision, data_scale, data_type değişkenleri Oracle Veritabanı ürününden çekilen bilgilerdir. Bu adımdan sonra bellek içi veritabanı yaratılmıştır. Çalışma kapsamında yazılan aktarım modülüyle mevcut veritabanından bellek içi veritabanına veri aktarımı otomatik olarak gerçekleştirilmiştir ve bu veriler kullanılarak küp tabloların bellek içi veritabanında yaratılması sağlanmıştır. Bu modül girdi olarak 4.2 ve 4.3 numaralı bölümlerde elde edilen bilgileri içeren bir XML dosyası kullanmaktadır. Aktarım işlemi yalnızca bir defa sistem kurulurken çalıştırılmıştır. Sonrasında ise verinin güncelliğini sağlamak için güncelleme modülünden faydalanılmıştır. Ayrıca Timesten ürününün bize sunduğu bir özellik olan kolon bazlı sıkıştırma tablolar yaratılırken uygulanarak 26GB olarak belirlenen veri boyutunun veri aktarımı

sonrasında 18GB seviyesine düşürülmesi sağlanmıştır. 4.5 Güncelleme Modülü Çalışmaları Önerilen Yöntem Bölümü nde bahsedildiği üzere bu işlem algoritmik, anlık ve periyodik olmak üzere 3 farklı şekilde yapılabilmektedir. Bu 3 yöntemin güçlü ve zayıf yönleri yapılan deneylerde saptanmış ve Tablo 1 de gösterilmiştir: Tablo 1: Çeşitli Güncelleme Yöntemlerinin Karşılaştırmaları Algoritmik Güncelleme Anlık Güncelleme Periyodik Güncelleme Anlık Bilgi Doğruluğu Sistem Yükü Çalışma kapsamında amaçlanan hedeflerden bir tanesinin sistem üzerindeki yükü azaltmak olması ile algoritmik ve anlık güncelleme yöntemleri çelişmektedir. Ayrıca karmaşıklığı düşük olan periyodik güncelleme yüksek hızı ile de öne çıkmaktadır. Bu noktalar göz önüne alındığında periyodik güncelleme en uygun yöntem olarak seçilmiştir. Bununla birlikte mevcut veritabanı analizinde elde edilen tablo içeriklerinin günün saatlerine göre değişimi ele alınarak periyodik güncelleme zamanlarına karar verilmiş ve anlık bilgi doğruluğunun en yüksek seviyede tutulması hedeflenmiştir. Bütün işlemler tamamlandığında windows servis halinde yazılan güncelleme modülü ile istenilen periyotlarda güncellemenin otomatik olarak yapılması sağlanmıştır. Bu modül yine aktarım modülünde olduğu gibi bir XML girdisi kullanarak mevcut veritabanındaki içeriklerinde değişiklik olan tabloların bellek içi veritabanına aktarımından ve küp tabloların yeniden oluşturulmasından sorumludur. 4.6 Performans Testleri Karmaşıklık Hız ORTA YÜKSEK YÜKSEK ORTA YÜKSEK YÜKSEK DÜŞÜK ORTA ORTA DÜŞÜK DÜŞÜK YÜKSEK Son olarak önerilen sistem ve geleneksel sistem arasında bir performans kıyaslaması yapabilmek için seçilen 5 raporun SQL sorguları bellek içi veritabanında çalışacak şekilde yeniden düzenlenmiştir. İki sistem üzerinden de çalıştırılan sorguların doğruluğu onaylandıktan sonra Tablo 2 deki bulgulara ulaşılmıştır: Tablo 2: Performans Testi Sonuçları Raporlar Veritabanı Süre Hızlanma Seçimi (sn.) katsayısı Rapor 1 Disk 1,99 Bellek İçi 0,53 3,75 x Disk 8,08 Rapor 2 Rapor 3 Rapor 4 Rapor 5 5. Sonuç Bellek İçi 0,25 32,32 x Bellek İçi + Küp Tablolar 0,2 40,40 x Disk 111,08 Bellek İçi 7,97 13,94 x Disk 12,78 Bellek İçi 0,09 142 x Bellek İçi + Küp Tablolar 0,06 213 x Disk 19,59 Bellek İçi 0,78 25,11 x Yapılan deneylerde de görüldüğü üzere, büyük veri hacmine sahip raporlama sistemlerinde bellek içi veritabanı performans açısından olumlu sonuçlar göstermektedir. Ayrıca rapor isteklerinin derinlik ve karmaşıklığına göre geleneksel ve bellek içi veritabanı sistemlerine ayrıştırılması ile disk tabanlı sisteme de katkı sağlamaktadır. Bununla birlikte cevap sürelerinde yaşanan azalma da sistem üzerindeki yükün azalması konusunda önemli bir fayda sağlamaktadır. Bellek içi veritabanı sistemi üzerinde çalışacak raporların ve yaratılacak küp tabloların seçiminde verinin yapısı ve kullanıcı yorumu etkilidir. Ancak yüksek frekansta ve yüksek karmaşıklıkta olan rapor isteklerinin bellek içi veritabanı sistemine iletilmesi, diğer daha düşük frekans ve düşük karmaşıklıktaki rapor isteklerinin ise geleneksel sistem üzerinden cevaplanması daha uygun görülmektedir. Sonuç olarak, büyük veri üzerinde çalışmakta olan raporlama ve benzeri çözümlerde, bellek

içi veritabanı destekli bir yapının hem performans hem de sistem kaynak kullanımı açısından ciddi bir yararı olduğu saptanmıştır. Ayrıca karmaşıklığı yüksek olan sorgular içeren bir sistemde denormalizasyon yoluyla maliyeti yüksek bazı işlemlerin önceden yapılarak her sorguda tekrar çalıştırılmasının önüne geçilmiş ve büyük veri üzerinde çalışmayı kolaylaştırdığı ortaya konulmuştur. 6. Teşekkür Bu bildirideki çalışmalar "Idea Teknoloji ve Bilgisayar Çözümleri Ltd. Sti." kurumu tarafından 3120961 numaralı TEYDEB projesi kapsamında desteklenmiştir. 7. Kaynaklar [1] Francesco Pagano, Davide Pagano: Using In-Memory Encrypted Databases on the Cloud. Securing Services on the Cloud (IWSSC), 2011 1st International Workshop. 30-37 (2011) [6] Yma Pinto: A Framework for Systematic Database Denormalization. Global Journal of Computer Science and Technology, Vol 9, No 4. 44-52 (2009) [7] Agrawal, R.; Imieliński, T.; Swami, A: Mining association rules between sets of items in large databases. Proceedings of the 1993 ACM SIGMOD international conference on Management of data - SIGMOD 93. 207 (1993) [8] Şule Gündüz Öğüdücü, Mehmetcan Gayberi, Erhan Akpınar, Hakan Kutluay: A Study for Performance Comparison of Different In-Memory Databases. Application of Information and Communication Technologies (AICT), 2013. 7th IEEE International Conference. 91-96 (2013) [9] Pang-Ning Tan, Michael Steinbach, Vipin Kumar: Introduction to Data Mining. Addison-Wesley. 329-337 (2005) [2] Sansar Choinyambuu: In Memory Database:Performance evaluation based on query time. Seminar Database Systems. (2012) [3] Lasaro Camargos, Fernando Pedone, Rodrigo Schmidt: A Primary-Backup Protocol for In-Memory Database Replication. Network Computing and Applications, 2006. NCA 2006. Fifth IEEE International Symposium. 30-37 (2006) [4] Joan Guisado Gamez: In-memory and Ondisk Hybrid Relational Database Management System. Bitirme Tezi. (2011) [5] G. Lawrence Sanders, Seungkyoon Shin: Denormalization Effects on Performance of RDBMS. Proceedings of the 34th Annual Hawaii International Conference on System Sciences, 2001. 3-6 (2001)