Etiket Bulutu

Benchmark Convert_IMplicit Database High Availability Database Mirroring datawarehouse dimension table dmv Dynamic Data Masking Execution Execution Plans fact table Failover Cluster Node ekleme Failover Clustering FileStream generate script High Availability Implicit Instant File Initialization index Kinect Linux Live Query Statistics Log Shipping Mirroring object explorer object explorer details ODBC Driver pass performance performance tuning Plan Handle Planü Power View reporting services rol Row Level Security script sql serer 2016 sql server SQL Server 2008 SQL Server 2008 Log Shipping SQL Server 2012 SQL Server 2012 installation SQL Server 2012 Kurulumu SQL Server Backup SQL Server da Backup planı SQL Server da Maintenance Plans oluşturma SQL Server database mirroring SQL Server Disaster Recovery sql server dynamic management views SQL Server Failover Cluster SQL Server High Availability SQL Server Log Shipping SQL Server Maintenace Plans sql server performans SQLDIAG SQLDIAG Troubleshooting T24 Temenos truncate table t-sql unique index performance 1. Dünya savaşı istatistikleri 1456 451 ACID advanced analytics Advanced Data Analytics Affinity algı Alter index Alter table ALTER TABLE .. ALTER COLUMN Altın Oran Always On ALWAYSON AlwaysOnDemoTool amazon web services kinesis AMR analiz analysis service Ankara Antivirus apache kafka Arduino Article Assembly asymmetric audit Authentication Auto Growth Availability Group azure Azure Backup azure event hub partition azure event hubs azure event hubs servisi azure event hubs veri edinme Azure File Share Azure Fiyatlandırma Azure HDInsight Azure Hizmet Modelleri Azure ML Azure New Portal Azure Pricing Azure Queue azure sql database configuration azure sql database kullanımı azure sql database stream veriyi tutma azure sql database table partitioning Azure Storage azure stream analytics azure stream analytics dashboard azure stream analytics ölçeklendirilmesi azure stream analytics servisi Azure Table BA Backup backup encyrption backupset Bakım BASE bellek Best Practice BI Semantic Model Big Data Big User blocking blocking disable trigger blocking enable trigger Buffer Cache buffer pool Buffer Pool Extension bulk logged Buluta Veri Depolama Buluttaki Disk Business Analytics Conference business intelligence Büyük Veri Case Central Management Server certificate changed data capture Cloud Computing Cloud DR CLR Cluster clustered columnstore index Clustered Index Code Snippets Cold Purging collation column store column-level columnstore ColumnStore Indexes Compress ComputerNamePhysicalNetBIOS Concurrency Conditions Contained Database Contained Databases convert CONVERT_IMPLICIT Corruption Credentials cube DAC Dashboard Tasarımı data cleansing Data Compression Data Consistency Model data encryption data matching data mining Data Page data profiling data quality Data Services Data Warehouse Design Database database list Database Management Sistem database master key Database Mirroring Database Snapshot database trigger database-level Data-Ink Ratio datasets datasource DataZen date date dimension db_owner DBA DBCC dbcc dropcleanbuffers dbcc freeproccache DBMS dbo user DDL deadlock debugging DecryptByKey DecryptByPassPhrase deleted bitmap delta store Denali Denali SSAS deny database list deşifre detail index developer DIFFERENTIAL BACKUP DirectQuery Dirty Read Disaster Recovery Distribution Yapılandırma Distributor Distributor Agent dm_server_services DMF DMO DMV document db dosya bazlı şifreleme dqs dr Dynamic Management Function Dynamic Management Object Dynamic Management View ecrypt Effected Report Design Techniques Eğitim EncryptByKey EncryptByPassPhrase encryption endpoint Environment Variable error Error 5030 Error Log Estetik Raporlama Estimated Rows Eş Zamanlılkk Etkili Rapor Tasarlama Teknikleri Etkinlik ETL event Event Viewer except;intersect;sql execution Execution Plan export formats extended events Extended Stored Procedure Facets Failover Failover Cluster fast n execution plan FETCH NEXT FILELISTONLY FILLFACTOR File Table file-level FileStream Filter Pack Filtered Index First_Value Flat File fn_repl_hash_binary Focal Point foreignkey FORMAT Forwarded Record forwarded_record_count ftp task FULL BACKUP Full Recovery Full-Text Search functions Gartner Geocluster Gerçek Zamanlı Dashboard gestalt Golden Ratio görsel duyu group by Güvenlik ha Hadoop hafıza Hash HASHBYTES HEADERONLY headers footers Heap Hekaton hicri High Availability hijr Hiyerarşi Hybrid Cloud IaaS Index Index Scan In-Memory InMemory DW In-Memory DW InMemory OLTP In-Memory OLTP Internet of People Internet of Things IO IOT IoT nedir Isolation Level indeks index inmemory in-memory oltp internet of things isolation level istatistik istatistikler İş zekası İzolasyon Seviyesi Job json json support knowledge base kolon-satır bazlı kurulum küp Lag Lansman latch Lead linked server lock locking locking hints Log Backup Log Reader Agent Log Shipping login Lost-Update LQS Machine Learning Maintenance Management Studio matrix Max Text Replication Size mdx memory Memory Optimization Advisor Memory Optimized Table Memory Optimized Tables merge Merge Agent merge kullanımı Merge Publication Merge Replication merge type 1 slowly changing dimension merge type 1 slowly changing dimension örneği merge type 1 vs type 2 scd merge type 2 slowly changing dimension merge type 2 slowly changing dimension örneği merge type 3 slowly changing dimension merge type 4 slowly changing dimension message Microsoft Advanced Data Analytics Çözümleri microsoft azure Microsoft Bulut Microsoft Sanal Akademi Microsoft SQL Server Microsoft SQL Server 2014 Yenilikleri Microsoft SQL Server 2016 Mirror mirroring missing index Monitoring move Msdb multi_user multiversion concurrency control MVP MVP Roadshow MySnippet Named Pipes Natively Store Procedures Natively Stored Procedures Nesnelerin İnterneti Network Binding Order NoEngine Approaches nonclustered columnstore index Non-Repetable Read NoSQL NoSQL Approaches NoSQL Dünyası object explorer Odak Noktası ODBC Office 365 Offline OFFSET olap OLAP Backup OLE DB OLTP Online Index order attributes Otomatik Büyüme OVER PaaS PAD_INDEX page out page properties PAGE RESTORE PAGEIOLATCH paging parameters partition partitioning PASS PASS Summit PASS Summit 2014 Performance Performance Tuning performans performans tuning Phantom Read pivot Policies Policy Based Management Filtreleme Policy Management Power BI Power BI Dashboard Power BI Rest API power bi power view PowerBI PowerBI for Office 365 powerbi PowerMap PowerPivot PowerQuery powershell powershell ile sql yönetimi PowerView PowerView raporlarının web sayfalarına gömülmesi precon Primary Key primarykey Project Deployment Model Project Variable Protokol Proxy Proxy Account Publisher Purging on Independent Tables QL Server 2014 Yenilikleri Que Reader Agent Query Plan query store R Range Raporlama Raporlama Projeleri için Strateji Belirleme Raporlama Projelerine Hazırlık Read Committed Read Uncommitted RealTime Dashboard Rebuild RECONFIGURE RECONFIGURE WITH OVERRIDE Recovery model Relational Engine relationships Rename SSRS Database Repeatable Read Replication Replication Monitoring replikasyon report manager web site report parts reporting service reporting services reporting servis Resource Governor RESTORE Restore Database Restore Generate Restore Generate Script Restore transaction log rollback rs Rule of Thirds sa user SaaS sayfalama scd 3 demo scd karşılaştırma scd type 4 demo Scheduling Schema Comparison script Security segment elimination select into Self-Service BI Semantic Search Serializable Server Core SERVERPROPERTY Service services shared data sources shared datasets Shared Memory sharepoint Sharepoint 2010 ShowPlan Shrink simple recovery sing_user sliding window Slowly Changing Dimension snapshot Snapshot Agent Snapshot Publication Snapshot Replication Snippet snowflake sorting sp_configure sp_describe_first_result_set sp_server_diagnostics sp_spaceused sql SQL Agent Job SQL Azure sql bilgi yarışması SQL CLR SQL DIAG SQL DIAG Performans verisi toplama SQL endpoint SQL Login SQL Onculeri SQL Öncüleri sql script sql server SQL Server 2005 SQL Server 2008 SQL Server 2011 CTP3 SQL Server 2011 Denali SQL Server 2012 SQL Server 2012 CTP3 SQL Server 2012 RC SQL Server 2012 RC0 SQL Server 2012 ShowPlan Enhancements SQL Server 2012 T-SQL Enhancements SQL Server 2014 Sql Server 2014 Cardinality Estimator SQL Server 2014 Yenilikleri sql server 2016 SQL Server 2016 New Features SQL Server 2016 Yenilikleri sql server agent sql server assembly ekleme SQL Server Authentication sql server cast ve convert sql server clr integration sql server clr kullanımı sql server clr örnek sql server cluster SQL Server Code Name Denali SQL Server da Kullanıcı Yaratma SQL Server Database Project sql server dmv ve dmf sql server execution plan temizleme SQL Server Express Backup sql server fast n option örneği sql server fast n seçeneği SQL Server login sql server management stdio sql server merge into örnek sql server merge komutu sql server merge performnas sql server merge type 1 scd sql server merge type 2 scd sql server merge type 3 scd SQL Server Mobile Report Publisher SQL Server Network Interface SQL Server Onculeri SQL Server Öncüleri SQL Server Öncüleri Ankara SQL Server Performance sql server performans SQL Server Profiler SQL server recovery model SQL Server Reporting Services SQL Server Restore Generate Script SQL Server sa SQL Server Security SQL Server SQL DIAG sql server tarih dönüşüm işlemi sql server tarihsel veriler ile çalışma SQL Server User SQL Server yetki SQL Server yetkilendirme sql servera .net kodu ekleme SQL Serverda yetkilendirme nasıl SQL Serverda yetkilendirme nasıl yapılır sql to oracle linked server sql türkiye SQL User With Password sql yarışma SQLCMD sql'den oracle'a linked server SQLDIAG SQLDIAG Report SQLOS sqlsaturay SQLSaturday SQLSaturday #182 SQLSaturday #359 sqlsaturday #451 sqlserveronculeri ssas SSAS 2012 SSIS SSIS 2012 ssis SSMS SSMS Project SSMS Solution ssrs Stanby Database star schema STOPAT STOPBEFOREMARK STORAGE Storage Engine stored procedure stream analytics job subreports Subscriber Subscription subscriptions symmetric SYS sys.dm_db_index_physical_stats sys.dm_db_index_usage_stats sys.dm_db_missing_index_columns sys.dm_db_missing_index_details sys.dm_db_missing_index_group_stats sys.dm_db_missing_index_groups sys.server_principals sysadmin System Databases System View şifre şifreleme table table difference TableHasClustIndex TableHasIdentity TableHasPrimaryKey Tablet PC Tabular Mode Tabular Model TCP/IP TDE Tempdb time series Transaction Transactional Publication Transactional Replication Transparent Data Encryption trigger Troubleshooting TRY_CONVERT TRY_PARSE tsql t-sql T-SQL 2012 tsql mistakes Undocument union unionall Updatable ColumnStore İndex upgrade Veri ambarı veri edinme seçenekleri Veri Güvenliği Veri Hizmetleri Veri madenciliği Veri Mürekkep Oranı Veri Tabanı Yönetim Sistemleri Veri Tipi Veri Tutarlılık Modelleri Veri Yönetimi Evrimi verinin evrimi Veritabanı oluşturmak VERİTABANI YEDEKLEME STRATEJİLERİ veritabanı yedeklerinin şifrelenmesi Veritabanı Yöneticisi Veritabanı Yönetimi VeritPaq view any database Visual Studio VTYS web services Webcast Windows 7 Windows 8 Windows Authentication Windows Azure Windows Failover Clustering wmi WRITELOG xevents xp_sqlagent_enum_jobs YEDEKLEME STRATEJİLERİ Yedekli Çalışma Yetkilendirme Yiğit Aktan ysfkhvc yusuf kahveci Yüksek Erişilebilirlik Yüksek Süreklilik zip

NoSQL Dünyası - 1 (Veri Yönetiminin Evrimi ve Yeni Cesur Dünya)

Ekleyen: Abdullah Kise Bilge Adam Bilişim Grubu Birim Müdürü - Veri Yönetimi Çözümleri Tarih:07.05.2015 Okunma Sayısı:3142


İnsanoğlu daha rahat düşünme, kendini ifade etme, birbirleri ile haberleşme, bir hatırayı ölümsüzleştirme, bir bölgenin haritasını çıkarma, sanatsal ve kültürel miras aktarma gibi daha birçok ihtiyaca, yüzlerce yıl önce yazı veya çizimlerle cevap verebildiğini fark etmiştir. Olayları ve fikirleri kalıcı hale getirmek için birçok teknik denemiş, talep arttıkça devrimsel değişiklikler yapmaya cesaret bulmuştur. Bilgileri daha uzun süre saklayabilme ve yayma isteği taş duvarlarıkil tabletleri, bitki temelli papirüsü, hayvan derisinden parşömeni ve en son günümüzde yaygın olarak kullanılan selülozdan yapılma kâğıdı kullanmaya sevk etmiştir.
 
 
Eski çağlardan beri kütüphanelerinde yazılı metinlerin çok olduğu bölgelerde daha fazla bilim ve sanat üretilmiş, bu yönetimler daima güçlü olmuşlardır.  Amerika’daki “Library of Congress” ve İngiltere’deki “British Library” kütüphaneleri, bünyesinde barındırdıkları 150 milyon kayıtlı öge ve kabul ettikleri yıllık 1.75 milyon ziyaretçi sayısı ile dünyanın en büyük kütüphaneleri olmuşlardır. Türkiye’nin en iyi kütüphanesi olarak kabul edilen “Atatürk Kitaplığı” kütüphanesinde ise yaklaşık 500 bin yazılı eser bulunmaktadır. Vatikan Kütüphanesi’nde bulunan Osmanlı arşivlerinin elimizdekilerden daha iyi durumda olduğunu da düşünürsek içinde bulunduğumuz dünyanın dinamiklerinin bu şekilde olmasına şaşırmamalıyız.

Elektrik ve elektronik devrimi


Tarihin derinliklerinden gelen daha fazla veri toplama ve analiz edip anlam çıkarma çabası 1940’larda kullanılan ve bugünkü bilgisayarlar ile benzer mantıkta çalışan 30 tonluk ENIAC’ı üretmeyi de tetiklemiştir. İlk olarak Amerika tarafından savaşta kullanılması planlanan bu alet, topu topu hafızasında 200 sayı saklayabiliyor, saniyede 385 adet çarpma işlemi yapabiliyor, 60 saniye yol alan bir savaş topunun menzilini 20 saatlik bir çalışma ile hesaplayabiliyordu. Yine de devrim niteliğinde bir veri depolama ve işleme aracı olarak kabul gördü, geliştirildi ve bu sayede günümüzde çok yüksek işlem gücüne sahip bilgisayarlar üretilebildi.
 
Bilgisayarlar ilk üretildiklerinden bu yana veri depolama ve işleme konusunda bir hayli önemli noktalarda konumlandırıldı.Bilginin bir güç olduğunu çok önceden fark eden insan, doğal olarak daha fazla bilgi depolama ihtiyacı hissetti. Bu sebepleverinin tutarlılığının korunması, belli bir düzende olması, kolay ve hızlı erişim sağlanabilmesi, gerektiğinde zahmetsizcebakımının yapılabilmesi, karar vermeyi kolaylaştıracak şekilde sonuçlar üretilebilmesi ve güvenlik altında olması için çeşitli veri yönetim sistemleri geliştirildi.
 

Veri yönetim sistemleri neler?

 
1960’lardan bu yana birçok veritabanı yönetim sistemi (DBMS) kullanıldı ve kısmen veya tamamen terkedildi. Bazen veriler bir ağaç yapısında hiyerarşik (HDBMS) olarak, bazen bir ağ mantığında birbirleri ile ilişkilendirilerek (NDBMS), bazen de bağımsız varlıklar (entity) ve aralarındaki özel ilişkiler şeklinde (RDBMS) depolandı. Gerçek dünyanın nesne yönelimli (Object Oriented) programlama yaklaşımı ile rahatça ifade edilebildiğine karar verildiği dönemlerde, aynı sistem veritanları için de kullanılmaya çalışıldı (ODBMS - ORDBMS). Tüm bu sistemler bir dönem popüler olsa da en çok talep gören ve standartları oturmuş olan ilişkisel veritabanı yönetim sistemi yani RDBMS oldu.
 
 
 
 

İlişkisel veritabanı yönetim sistemi nasıl çalışır?

 
Uzun zamandır en fazla kabul gören ilişkisel veritabanı yönetim sistemi, MSSQLORACLEMySQL gibi ürünlerin mimarisini oluşturmaktadır. Bu sistem gereği veriler satır ve sütunlar halinde tablo dediğimiz yapılarda tutulur, tablolar arası ilişkiler primary ve foreign key olarak isimlendirilen anahtarlar yardımıyla ifade edilir ve verilere hızlı erişim için indeksler dediğimiz çeşitli ağaç yapıları kullanılır. İstemciler RDBMS’de belirli yapıda tutulan verileri ANSI/ISO standartları ile geliştirilip korunan SQL dili ile çağırır. Bununla birlikte karar yapıları, döngüler gibi programatik çalışmalar ise tercih edilen ürünün SQL temelli genişletilmiş hali (T-SQL, PL/SQL, SQL – PL ) ile gerçekleştirilir.
 
RDBMS verinin bütünlüğünü, sağlamlığını, tutarlılığını, güvenliğini sürdürme konusunda çok güçlüdür. Birden fazla istemcinin aynı kaynağa erişmesi sırasında çıkabilecek tutarsızlıkları en aza indirmek için sistem ACID (Atomicity, Consistency, Isolation, Durability) özelliklerini sağlamakla yükümlüdür. Bu özellikler bazen bir satır kaydı bazen komple veritabanını kilitaltına alarak diğer istemcilerin mantıksız bir işlem yapmasını engelleme eğilimindedir. Bununla birlikte yıllarca veri girişi sırasında gerçekleşen insan hataları sebebiyle çeşitli anomaliler oluşsa da bunun sebebi sistem değil sistemden yeterince faydalanamamak olmuştur. Neyse ki veritabanlarını ekleme, silme, güncelleme konusunda en uygun hale getirmek için çeşitli fikirler ortaya atılmış ve bu fikirler tasarımcılar tarafından benimsenmiştir. Bunlara normalizasyon kuralları denir. Tüm bu sistemsel yaklaşımlar RDBMS’in güçlü yanını oluşturur. Tabi aynı zamanda en zayıf yanını da.
 

Depolanan verilerden nasıl kolayca fayda üretebilirim?

 
Verileri işe yarar şekilde depolayabilmek için geliştirilen sistemler ve tutarlılığını sağlayabilmek için ortaya konulan bir nevi etik kurallar, belli yapıdaki verileri saklama problemlerini neredeyse çözmüştür. Tabi bu durum insanları başka bir ihtiyaca cevap aramaya yönlendirmiştir. Verileri daha kolay nasıl analiz edebilirim ve yolumu belirlemek için sonuçları nasıl birleştirebilirim? Bu ihtiyaca cevap bulabilmek için geleneksel veritabanlarına farklı bir bakış açısı ile yaklaşılmış veveriambarları doğmuştur. Veriambarı temel olarak günlük hayatta sayısal konular üzerinde düşünürken aklımızdan geçirdiklerimize bakılarak ortaya konulmuş bir modeldir. Basitçe bir biri ile alakalı sayısal ağırlıklı veriler bir tabloda (Fact – örneğin satış), o sayısal verileri incelemek istediğimizde kullandığımız metinsel ağırlıklı veriler diğer tablolarda (Dimension – örneğin müşteri, bölge, zaman) tutulur ve bunlar arasında sayısal tablolardan konu odaklı metinsel ağırlıklı tablolara ilişkilerkurulur. Bu yaklaşım sayesinde veri giriş etkinliğini arttırmak için normalizasyon kurallarını uyguladığımız OLTP modelden çok daha hızlı analiz yapma imkânı veren denormalize OLAP model doğdu.
 
Özellikle firmalar arasında giderek artan rekabet yüzünden birim zamanda verilecek karar miktarı da arttı. Dolayısıyla insanüstü bu ihtiyaç karşısında karar vermeyi kolaylaştıracak sistemlere daha fazla kafa yorulur oldu (iş zekâsının doğuşu). Bu uğraş nihayet veriambarı mantığında çalışan ancak bazı hesapların önceden yapılıp içerisinde saklandığı yapıları, yaniOLAP küplerinin (Cube) hayatımıza girmesini sağladı. OLAP küpleri sayesinde muhtemel soruların cevapları önceden hazırolduğu için geleneksel sistemlerden çok daha fazla analiz performansı ve esnekliği sağlanmaktadır.
 

Acaba her şey bu kadar mı?

 
Buraya kadar konuştuğumuz yolda çeşitli safhalarda yeni yaklaşımlar geliştirilmeye devam ediliyor. Ortaya atılan tüm bu sistemler birçok açıdan güvenilir ve tutarlı olduğu için kabul gördü ve yaygın olarak kullanıldı. Ancak artık göz ardı edilemeyecek kadar büyüyen ve kuruluşların kararlarını doğrudan etkileyebilecek güce sahip dünyaya açılan başka bir yol daha var. Nihayet kuruluşlar bu dünyayı görüp ciddiye alınması gerektiğine ikna oldular ve merakları sayesinde temelleri 2000’lerde atılan yeni veritabanı yönetim sistemlerinin (NoSQL, NewSQL) geliştirilmesine motivasyon oluşturdular.
 
Bu yeni cesur dünyada verileri RDBMS’te olduğu gibi belli kalıptaki satır ve sütunlara sahip tablolarda tutmak bazen mümkün olmaz. Farklı gruptaki veriler arasında ilişki kurmak veya verilerin doğruluğunu, tutarlılığını sağlamak için kilit mekanizması kullanarak erişimi kısıtlamak işimize gelmez. Veriler bazen o kadar hızlı üretilir ki onu yakalayıp saklamak yerine o anda bir şeye karar vermek isteyebiliriz.
 

Yeni cesur dünyada neler var?

 
Bu yeni dünyada daha fazla veri (Big Data), çok daha fazla kullanıcı (Big User), çok çeşitli veri türleri (structed, semi-structered, unstructured), bulut tabanlı hizmetler ve sadece bir birleriyle konuşarak kararlar alabilen geveze akıllı cihazlar yer alır (IoT). Mobil cihazlar, televizyonlar, SMS/MMS, GPS cihazları, log üreten yazılımlar ve cihazlar, sensorlar, konuşmayı metne çeviren yazılımlar, Web uygulamaları, bulut hizmetleri, video ve fotoğraf üreten dijital kamera teknolojileri, sosyal iletişim araçları, bilgisayar oyunları devasa miktarda veri üretir. 64 KB’lık belleğe sahip bir bilgisayar desteğiyle aya çıkan insanoğluartık sıradan bir günde sadece Twitter’da 1 terabayt mesaj üretmektedir.
 

 
IDC'nin bir araştırmasına göre 3 milyar insan 2013-2014 yıllarında aylık olarak 35 milyar saat internet ortamında vakit geçirmektedir. Bu popülasyonun 1.75 milyarı akıllı telefon kullanıcıları olarak tespit edilmiştir. Bu araştırma sonucundainternete bağlı 20 milyar cihazın 2014 yılında 4.4 Zetabayt (1 zetabayt = 1 milyar terabayt) veri ürettiği gözlenmiş ve bu sayıların 2020 yılına kadar 44 zetabayt veriye ve 32 milyar internete bağlı cihaza erişeceği ön görülmüştür.
 
 
 
Bu kadar büyük veriyi ve hızla değişen istemci talebini yönetebilmek için sisteminizi iki farklı modelde ölçeklendirebilirsiniz:
 
Dikey Ölçeklendirme (Vertical Scaling – Scale Up): Tek bir cihaza donanım yatırımı yapmak manasına gelir. Örneğin CPU, Memory, Disk artırımı yapmak bu kapsamdadır. Sanallaştırma ile bu yöntem daha pratik hale gelmiş olsa da donanım yatırımı yapmak pahalı ve riskli olabilmektedir.
 
Yatay Ölçeklendirme (Horizontal Scaling – Scale Out): Daha ucuz cihazları birleştirerek güçlü bir sistem oluşturma esasına dayanır. Böyle bir sistemi büyütüp küçültmek daha az maliyetli ve daha az risklidir.
 
 
 

Aslında her şey yolunda gidiyor gibiydi.

 
Cihazları güçlendirmek veya sisteme yeni bir cihaz eklemek yeni dünyanın getirilerine kısmen cevap verebilmektedir. Kısmen diyoruz çünkü mesele sadece çok veri (Big Data) veya çok kullanıcı (Big User) değil. İşi daha da zorlu hale getiren, veriyi yazma-okuma işlemlerinde belirli bir kalıpla sınırlanmama ve yüksek hızda cevap alma tutkusudur. Geleneksel veri tiplerinin yanı sıra, bir belge, koordinat, hiyerarşik bir düzen, bölgesel türde bilgi, grafiksel gösterim veya bir video saklanmak istenebilir. Hatta her bir kayıt bir birinden farklı özelliğe de sahip olabilir. Örneğin en basiti müşteriler hakkında bilgi toplamak istediğinizde bazı müşteriler için bir, bazı müşteriler için birden fazla telefon numarası ile karşılaşırsınız. Bununla birlikte bazı müşterileriniz telefon numarası vermeyip e-posta veya fiziksel adres bilgilerini sizlerle paylaşmak isteyebilir. Belki sadecekoordinat bilgilerini tutmak zorunda kalacağınız müşterileriniz bile olabilir. Kim bilir belki de bazı müşteriler ile iletişime geçmek için bir prosedürle ilerlemeniz gerekebilir. Bu durumda gerekli belgeleri müşteri bilgileri ile birlikte tutmak isteyebilirsiniz. RDBMS yapısal verileri (Structured) yani bir tabloda tutulmaya uygun verileri yönetme konusunda uzmandır. Ancak etrafımıza baktığımızda birçok kaynak yapısal olmayan (unstructured) türden verileri üretmektedir. Buna cevap olarak NoSQL çözümlerinde veri girişi için bir şema zorunluluğu bulunmamaktadır (elbette kurallar var). Yapısal olmayan veriler için en uygun ortamı NoSQL çözümleri sağlamaktadır.
 

Geleneksel sistemlerde yeni dünya için çözümler üretildi mi?

 
Microsoft SQL Server yıllar içerisinde yeni yetenekler kazandı ve yapısal olan veya olmayan veriyi binary da olsa tutma becerisine kavuştu. Compression, Partition, FileStream, FileTable, InMemory OLTP, ColumnStore, Buffer Pool Extention, AlwaysOn gibi yenilikler ile bir yere kadar ihtiyaçlara cevaplar üretilebildi. RDBMS ürünleri yeni dünya ihtiyaçlarına cevap verme konusunda çokça çabalasa da yeterince tatmin etmiştir diyemeyiz. Çünkü RDBMS ürünleri verilerin tutarlı olması konusuna (Consistency) odaklanmış durumdadır ve ACID özelliklerini sağlama konusunda son derece yeteneklidir. Bu yetenekler daha az makinenin daha fazla kısıtla çalışmasına veya tek bir süper makinenin saniyeler içerisinde inanılmaz boyutlara ulaşan taleplerin altında ezilmesine sebebiyet vermektedir.
 

Peki, nasıl mücadele edilebiliyor?

 
Bu hız tutkusu bazı tavizler vermeyi zorunlu hale getirmiştir. Yeni dünya tutarlılıktan (Consistency) daha çok erişebilirliğe (Availability) önem vermektedir. Bu eğilime cevap vermek için ortaya atılan NoSQL çözümleri tek bir makinenin sınırlarından kurtulup binlerce makinenin birlikte çalışmasına olanak vermiştir. Tutarlılık derdi ön planda olmayan NoSQL çözümleri geleneksel veritabanlarındaki kilit mekanizmasına benzer bir mekanizmayı kullanmayıp eşzamanlı çalışma imkânısunmaktadır. Zaten CAP Teoremi gereği dağıtık sistemler birlikte çalışabilmesi için tutarlılık (Consistency), erişebilirlik (Availability) ve sistemin bir kısmı zarar gördüğünde işleyişin devam etmesine olanak tanıyan parça toleransı (Partition Tolerance) özelliklerinden en fazla ikisini sağlayabilmektedir. Verileri bu türden yönetme yaklaşımına BASE(Basically Available Soft-state services with Eventual-consistency) adı verilmektedir. Bir sonraki yazımızda bu konulara odaklanacağımız için bu kısmı özet bir ifade ile geçmek istiyorum; RDBMS ürünlerindeki ACID yaklaşımı veri tutarlılığına odaklanırken, NoSQL ürünlerindeki BASE yaklaşımı daha çok erişebilirliğe odaklanmaktadır. Mesela Facebook’ta bir arkadaşlık isteğini kabul ettiğinizde başka bir bilgisayarda henüz kabul edilmemiş olarak göründüğünü fark etmişsinizdir. Tabi ki iş yüküne bağlı olarak güncel bilgiler diğer makinelere de bir süre sonra yansımaktadır.
 

Artık tamamen NoSQL çözümlerine mi yönelmeliyiz?

 
Yeni dünyada ihtiyaca özel çözümlerin bir arada kullanılması fikri ön plana çıkmaktadır. RDBMS ürünleri verinin tutarlılığının kritik olduğu yerlerde (mesela finans) tercih edilmesi gereken ve genelde ücretli ürünlere ait bir sistem olarak karşımıza çıkarken, NoSQL ise işlemlerin sürekli devam etmesi gereken durumlarda (mesela sosyal medya) tercih edilen ve genelde ücretsiz ürünlere ait sistemler olarak kaşımıza çıkmaktadır.
 

Bu yazımızda bazı safhaları baypas eder verinin evrimine odaklandık. Büyüyen veriye, yüksek hız tutkusuna, daha fazla paydaşın olduğuna ve veri türlerinin çeşitliliğine vurgu yaptık. Geleneksel veritabanlarının yıllar içerisinde tutarlılığı sağlama konusunda çok güçlü hale geldiğine fakat yeni dünyada bu gücü besleyen yeteneklerin dezavantaj oluşturduğuna değindik. Hız için tutarlılıktan taviz vermek ve değişen talebe ayak uydurmak için dağıtık mimarinin avantajlı olduğunu ifade ettik. Bir sonraki yazımızda dağıtık mimariler hakkında ortaya atılan ve NoSQL çözümlerini doğrudan etkileyen CAP teoremine ve BASE-ACID yaklaşımlarına odaklanacağız.


yorum yaz

Üye Girişi

Kullanıcı Adınız

Şifreniz

Şifremi Unuttum

Arkadaşına Tavsiye Et

Tavsiye edebilmek için siteye giriş yapmalısınız