25 Nisan 2013 Perşembe

HDInsight

Selam arkadaşlar,

Microsoft, HortonWorks firmasının da işbirliği ile önceden sadece Linux sistemlerde çalışıyor olan Hadoop Framework'ünü Windows Server'larla ve Windows Azure ile çalışır hale getirmiş ve buna da HDInsight demişler.

Hadoop'a yabancı olanlar için çok kısa bir tanımını yapmak gerekirse, Hadoop'u bir Framework olarak düşünebilirsiniz. Bu Framework altında temel olarak MapReduce (veriyi işleme teknolojisi) ve HDFS (Hadoop File System) ve çeşitli projeler (Pig gibi) var. Hadoop'tan bilgi talep Client'tan geliyor, Master-Slave yapısındaki Cluster'da talebi Master karşılıyor ve verinin işlenme işini Slave'ler arasında paylaştırıyor ve işlenen veri doğrudan Slave'lerden Client'a gidiyor.

Hadoop ile temel olarak hedeflenen şey, çok büyük miktarda ve çeşitlilikte olan verilerin (Big Data) paralel olarak (Slave'ler tarafından) işlenerek, ölçeklenebilir bir sistemde (Cluster'a kaç Slave eklenirse, performans Linear şekilde artıyor), işlemnesinin sağlanması.

Not: Hadoop'u merak eden arkadaşlarım daha fazla ayrıntı için Youtube'dan konu hakkında birçok videoya ulaşabilir.

Ekrem Önsoy

4 Nisan 2013 Perşembe

Hekaton

Merhaba,

Bazılarınız belki duydu, belki ilk defa görüyor; fakat Microsoft şu anda SQL Server için Hekaton adında bir teknoloji üstünde çalışıyor. Bu teknoloji ile ilgili tanıtımlar yapıyor ve bazı firmalarda deneme sürümlerini kullandırtıyor.

Bu teknoloji, bazılarınızın QlickView'den de bileceği gibi, verinin hafızada depolanmasını sağlamak ve erişimin diskten değil de, doğrudan RAM'de yapılmasını sağlamak.

Şimdi SQL Server konusunda tecrübeli olan bazı arkadaşlarımın aklına "SQL Server'da zaten Buffer Pool denen bir şey var ve veriler zaten olabildiğince hafızada tutuluyor ve işlemler bu şekilde gerçekleştiyiro, Hekaton'un farkı ne ki?" diye bilir; şöyle ki, Hekaton belirlediğimiz tabloların ve Stored Procedure'lerin ne kadar sık kullanıldıklarına bakmadan ve durağan olarak hafızada kalmasını sağlıyor. SQL Server'ın Buffer Pool'undaki veriler ise kullanım sıklıklarına göre ve hafızanın büyüklüğüne göre bazen diskten bazen hafızadan okunabiliyor. Ayrıca Hekaton ile hafızada depolanan veriler için hazırlanmış Stored Procedure'ler, hafızada kullanılmak üzere özel olarak derleniyor ve bu şekilde bu özellikten en iyi ve performanslı şekilde yararlanılması sağlanıyor.

İşin en güzel yanı ise, Stored Procedure'lerinizi yine bildiğiniz şekilde T-SQL dilinde yazıyorsunuz. Herhangi bir değişiklik yapmanız gerekmiyor. Aynı şekilde, donanım tarafında da herhangi bir değişiklik yapmanıza şart değil. Varolan donanımınızla da Hekaton'u kullanabileceksiniz.

Hekaton, bildiğimiz SQL Server ürünü ile entegre edilmiş şekilde, yan bir ürün olarak değil, sonraki versiyonlarda karşımıza çıkacak.

Ekrem Önsoy

Idera SQL Compliance Manager - Deneyim 1

Merhaba,

Geçen ay sizlere bu üründen biraz bahsetmiştim. Tekrar çok kısa özetlemek gerekirse ürünün özellikle küçük ve orta ölçekli, SQL Server Standard Edition kullanan ve Veritabanı seviyesinde teftiş (Auditing) yapmak isteyen firmalarda kullanılabileceğini belirtmiştim.

Bir aydır ürünü Production ortamında test ettim. Çeşitli sorunlarla karşılaştım. Tabii bu sayede ürünün nasıl çalıştığı ile ilgili de daha fazla bilgi edinebildim.

Ürün temel olarak, kaynaktaki veritabanından kendi Agent'ı ile aldığı bilgileri (Trace veya doğrudan T-Log dosyasından) sıkıştırarak Collection Service'inin çalıştığı hedef sunucuya gönderiyor ve burada önce sıkıştırılan dosyaları açıyor ve ardından da depo olarak kullandığı veritabanına kaydediyor. Benim sorun yaşadığım kısım işte tam da bu işleme sırasında Parser'ın Parse sorunlarıyla karşılaşmasıyla çıktı. Tabii bu sorun da başka sorunları doğurmuş, sorunun üstünde çalışınca karşılaştığım tüm sorunların bundan kaynaklandığını anladık. Destek Amerika'dan verildiği için aramızda 7 saat fark var, bu nedenle Windows Live Meeting'leri buna göre düzenleyerek, destek mühendisi arkadaşın da yardımıyla sorunu tespit ettik ve hâlâ üstünde çalışmaya devam ediyoruz.

Efendim yolumuza devam etmek için şimdilik bu sorunu geçersek, -çünkü öyle veya böyle uygulama çalışıyor, fakat bazı şeyleri bu Bug yüzünden kaçırıyor diye düşünüyorum- uygulama SQL Server 2000'i dahi destekliyor. Sunucu, veritabanı, kullanıcı, nesne ve alan bazında denetim yapabiliyorsunuz. Biriken veriler veritabanında biriktiği için ve veritabanı da Enterprise Edition olmadığı için haliyle sıkıştırılarak saklanmıyor ve bu da veritabanının gün geçtikçe büyümesine neden oluyor. Herkesin ortamı ve ihtiyaçları farklı elbette, fakat sadece ve sadece fikir vermesi açısından şöyle bir örnek verebilirim, çalıştığım ortamda sadece bir veritabanındaki bir tabloda gerçekleşen DML işlemlerini ve sadece birkaç alan için de SELECT (Selective Columns) işlemlerini denetliyorum ve sadece 2 günde depo olarak SQL Compliance Manager tarafından kullanılan veritabanının boyutu 16,5GB oldu.

SQL Compliance Manager'ın kendi arşivleme sistemi de var. Bunu da en azından ayda bir kere çalıştırılacak şekilde ayarlamam gerekecek ve oluşan veritabanını da sıkıştırarak (sıkıştırarak yedeğini alıp sonra da arşivlenen veritabanını silerek) saklamam gerekecek diye düşünüyorum. Henüz bunu test etmedim, bu da ayrı bir yazının konusu olur.

Şimdilik bu kadar.

Ekrem Önsoy

SQL Server Partition Management

Merhabalar,

Bugün bir dergide okurken gördüm, sizlerle de paylaşmak istedim. Henüz kendi ortamımda kullanma şansım olmadığını baştan vurgulayayım. Hemen paylaşmak isteyişimin nedeni de, bazı şeyleri deneyip öyle paylaşayım derken unutulup kaynayabiliyor.

Öncelikle ürünün adresini vereyim: http://sqlpartitionmgmt.codeplex.com/

Ürün SQL Server Customer Advisory Team'de Grup Yöneticisi olan Stuart Ozer tarafından hazırlanmış. Ücretsiz bir ürün.

Ürün özetle SSIS paketleriyle, otomatize edilmiş bir şekilde Table Partitioning'ten faydalanmanızı sağlıyor.

5 Mart 2013 Salı

Idera SQL Compliance Manager

Selam arkadaşlar,

Çalıştığım ortamlardan birinde, veritabanlarından bazıları, bazı bankalarla çalıştığımız ve bu çalışmaların sonucunda üretilen kritik verileri barındırıyor. Bu nedenle çeşitli bankaların yaptıkları teftişlerde, kritik verilerin kimler tarafından değiştirildiği, bu verilere kimler tarafından ulaşıldığı, bu trafiğin kayıtlarının tutulup tutulmadığı ve raporlanıp raporlanamayacağı gibi sorular sorulup, taleplerde bulunuluyor.

Bahsini ettiğim ortamda kullanılan SQL Server, Standard Edition olduğundan dolayı, yukarıda bahsini ettiğim teftişlerin talep ettiği gereksinimleri Enterprise Edition'ın Database Audit özelliği ile karşılayamıyoruz. Çünkü bildiğiniz gibi Database Audit özelliği SQL Server'ın sadece Enterprise Edition'ında (ve SQL Server 2008 R2 Datacenter Edition) mevcut.

Bu gereksinim ve ortam nedeniyle ben de araştırmaya koyuldum. Birçok uygulama ile karşılaştım, SQL Server (>=2008) Enterprise Edition'ın Database Audit özelliğini taklit edebilen sadece bir uygulama bulabildim. Bu da, yazının başlığını da oluşturan, Idera firmasına ait olan SQL Compliance Manager isimli uygulama.

SQL Compliance Manager, DML işlemlerinin yanı sıra, kendini diğer benzeri ürünlerden SELECT işlemlerini de kayıt altına alarak ayırıyor. Çok ayrıntılı bir şekilde Auditing yapmak mümkün. Tablo ve Alan bazında Audit işlemi yapılabiliyor. Audit yapılacak işlemlerin süzme seçenekleri gayet yeterli. Raporlama ve alarm sistemi oldukça esnek ve zengin. Yapılan işlemlerin öncesini ve sonrasını, sunucunuza fazla yük yüklemeden gerçekleştirebiliyor. En azından teoride ve test ortamında böyle.

Şu anda, bu uygulamanın lisansını satın alma sürecindeyiz. Lisanslama, izlenecek SQL Instance'ı bazında 2.995$ ödenerek yapılıyor. Buna ek olarak, ilk satın alma işleminde bir de zorunlu olarak Maintenance adı altında 599$ tutarında bir ücret ödenmesi bekleniyor. Maintenance ile alınacak hizmet ise, senede ortalama 2-3 çıkan her türlü güncelleştirmeden yararlanma ve 7/24 teknik destek.

Ürünü sadece test sunucusuna kurdum ve denedim, Production sunucumuza kurulumundan sonra da gözlemlerimi sizlerle paylaşmaya çalışırım.

Ekrem Önsoy