dc.description.abstract | Şehirlerdeki hızlı nüfus artışı ile birlikte güçlü, dinamik bir şehir yönetimine duyulan ihtiyaç gittikçe daha büyük bir önem kazanmaktadır. Şehirler büyüdükçe ortaya çıkan sorunların üstesinden gelmek için (ulaşım, kaynak yönetimi, kirlilik, atık bertarafı, vb.) akıllı şehir konsepti öne çıkmaktadır. Akıllı şehir, çeşitli kaynaklardan gelen farklı tipte verileri kullanan, depolama, gözlemleme ve analiz altyapısı sağlayan ve sorunlara ve aktivitelere yönelik çözümler sunan kapsamlı bir sistemdir. Bu tür bir sistemin en önemli girdisi değişik kaynaklardan sürekli olarak gelen ve biriken verilerdir. Farklı veri kaynaklarından ve sensörlerden gelen kesintisiz veri akışı büyük boyutlu ve yapılandırılmamış bir veri havuzu oluşturur. Bu tür veriyi tanımlamak için büyük veri terimi ortaya çıkmıştır. Çeşitli uzmanlık alanları arasında farklı tanımları olmasına rağmen, büyük veriler için en yaygın kullanılan tanımı, geleneksel yöntemlerle kolayca depolanamayan, işlenemeyen veya analiz edilemeyen, çoğunlukla yapılandırılmamış büyük miktarlarda veridir. Büyük verilerin ana özellikleri, hacmi, kendi içinde çeşitliliği, farklı veri türleri ve yaklaşımlarına sahip olması, sürekli bir akış içinde birikmesi ve ortaya çıkarması zor olan yüksek değerler içermesidir. Şehirlerdeki çoklu veri kaynaklarından ve sensörlerden gelen büyük veriler trendler, davranışlar, gerçek zamanlı çözümler vb. hakkında değerli bilgiler içerir, bu sebeple analiz edilmeleri önemli bir konudur. Büyük verilerle ilgili en önemli komplikasyon, verinin işlenmesi ve anlamlı bilgilerin çıkarılması olmuştur. Mevcut geleneksel yaklaşımda, SQL (Structured Querying Language) tabanlı ilişkisel veritabanları yaygın olarak kullanılır. SQL, karmaşık sorgular gerçekleştirme ve sağlam ve istikrarlı bir altyapı oluşturma kapasitesine sahip, güçlü bir sorgulama dilidir. Öte yandan, ilişkisel veritabanlarında veriler önceden oluşturulmuş veritabanı şemasına göre yapılandırılmalıdır, bu durum düzensiz verinin içe aktarımını engellemekte. çeşitli veri türlerini aynı yerde depolanmasını destekleyememekte ve faklı türde verileri ön düzenleme yapmadan birlikte işleyememektedir. Ayrıca performansı donanıma bağlıdır ve bilgisayar kapasitesi güçlendirilerek artırılabilir, ancak yine de donanım özellikleriyle sınırlıdır. Geleneksel SQL veritabanlarının bu tür yetersizlikleri nedeniyle NoSQL (Not Only SQL) veritabanları geliştirilmiştir. Bunlar, geleneksel veritabanı sistemlerinin eksiklikleri olan esneklik ve performans sorunlarını çözümleyecek şekilde tasarlanmıştır. NoSQL veritabanları SQL tabanlı olanlar gibi standart bir sisteme sahip değildir. Her veri tabanı kendi modeline, veri formatına ve sorgulama diline sahiptir ve hepsi farklı amaçlara hizmet edebilir. NoSQL, temel olarak geleneksel tablolar yerine yoğunluklu olarak `anahtar: değer` çiftleri ya da JSON (JavaScript Object Notation) benzeri döküman formatı kullanan, ilişkisel olmayan, düzensiz bir veritabanı sistemidir. Bu, yapılandırılmamış verilerin aynı veri tabanında depolanmasını ve elastik şema yönetimi ile esneklik sağlamaktadır. Performans donanıma daha az bağımlıdır ve yükü dağıtmak için daha fazla sunucu ya da bilgisayar eklenerek performans arttırılabilir, böylece daha büyük veri kümelerini yönetmek mümkündür. JSON benzeri veri formatı sayesinde NoSQL sistemler ilişkisel veritabanı sistemleri tarafından doğru şekilde desteklenmeyen ağaç benzeri hiyerarşik veri depolamayı destekleyebilimektedir. Benzer şekilde, yine klasik ilişkisel veritabanı sistemlerinde uygulanamayan hiyerarşik veri modellerini de desteklenebilmektedir. Bunlarla birlikte, NoSQL sorgulama dilleri standartlaştırılmamıştır, her veritabanının kendi sorgulama dili vardır, dolayısıyla karmaşık sorguları gerçekleştirmek SQL'e göre daha zorludur. Ayrıca, yüksek frekanslı işlemleri desteklemek için kullanılabilse de, NoSQL veritabanları ilişkisel olanlar kadar stabil değildir. Varolan verilerin çoğunluğunun coğrafi olduğu ve coğrafi referanslı verilerin miktarı her yıl ciddi bir şekilde arttığı düşünüldüğünde, bu tür büyük verilerin coğrafi olarak indekslenebilmesi ve işlenebilmesi büyük önem taşımaktadır. Bu sebeple SQL ya da NoSQL, coğrafi özellikli büyük veri işlenecek her veritabanında ölçeklenebilir coğrafi sorgulama ve analiz işlevlerinin olması ve yeterliliği mühim bir kriterdir. Genel olarak SQL ve NoSQL tabanlı veritabanlarını karşılaştıran çalışmalara bakıldığında, NoSQL veritabanları her zaman SQL veritabanlarından daha iyi performans göstermemektedir. Öte yandan, en popüler NoSQL veritabanlarından ikisinin (MongoDB ve Couchbase), birçok açıdan karşılaştırıldıkları SQL veritabanlarından daha üstün performans gösterdiği gözlemlenmiştir. Özel olarak coğrafi sorgulama kapasitelerine bakıldığında ilişkisel veritabanlarının güçlü ve standart SQL tabanlı sorgulama özellikleri dolayısıyla oldukça komplike coğrafi analizler yapabildiği, NoSQL veritabanlarının ise bir kısmının coğrafi indexleme kapasitesiyle beraber temel coğrafi analizleri de yapabildiği ve üçüncü parti yazılımlarla daha da derin analizler koşturulabildiği görülmektedir. Bu çalışmada, coğrafi büyük verileri bir NoSQL veritabanına aktarma olasılıklarını ve metodolojilerini araştırmak ve bu veri tabanının verimliliğini veri işleme, sorgulama, coğrafi fonksiyonlar ve analizler açısından test etmek amaçlanmıştır. Uygulama için Milan şehrinin bir senelik büyük trafik ve hava kirliliği verileri NoSQL veritabanına işlenmiş, ayrıca bu veritabanı tarafından desteklenen bazı temel mekansal işlevler test edilmiştir. Kullanılan trafik verisi, trafikteki araçlardan yaklaşık 30 saniyelik frekansla alınan hız verisidir. Tekil araç bilgisi içerdiği için hassas ve gizli olan bu veri anonimize edilerek kullanılmıştır. Hava kirliliği verisi ise Milan şehri merkezini kapsayan 11 hava gözlem istasyonunda toplanan ve internet üzerinden paylaşılan gözlemlerden alınmıştır. Araştırma yaygın kullanılan, JSON benzeri döküman tabanlı ve ücretsiz bir NoSQL veritabanı olan MongoDB için yapılmıştır. Bu veritabanının tercih edilmesi mekansal indeksleme seçeneğine sahip, büyük veri erişiminde ve sorgulamalarında verimli, esnek ve yaygın kullanımı nedeniyle önemli miktarda dokümantasyona sahip olmasından ötürüdür. Çalışma kapsamında eldeki veri kullanım koşullarına uygun bir şekilde işlenerek MongoDB içine aktarılmış ve temel toplu (aggregate) sorgular, coğrafi fonksiyonlar ve korelasyon analizleri denenerek veritabanı test edilmiştir. Verilerin hazırlanması ve aktarımı python betik dili ile yapılmıştır. Veritabanına erişim ve sorgulamalar için MongoDB Compass ve NoSQLBooster programlarından faydalanılmıştır. Çalışmanın sonuçlarına göre MongoDB bazı veritabanının standart fonksiyonlarına bağlı sınırlamalar (örneğin korelasyon analizinin direk olarak mümkün olmaması) ve mekansal katman birleştirme konusundaki eksiklerinin dışında olumlu bir performans göstermiştir. Bu bağlamda, toplu sorgular ve tek koleksiyonlardaki temel mekansal sorguların MongoDB'nin güçlü yönü olduğu görülmektedir. Fakat karmaşık sorgulama ve mekansal birleştirme fonksiyonlarında zayıflıkları bulunmaktadır. Genel olarak, üçüncü parti yazılımların daha karmaşık analizler yapmak için kullanılabileceği göz önüne alındığında, MongoDB'nin büyük veri yönetimi için tercih edilebilir bir veritabanı olduğu söylenebilmektedir. Bu çalışma MongoDB üzerinde karmaşık mekansal sorguların uygulanma yollarının araştırılmasıyla, daha büyük veri setleri ve ek sunucu kullanımı ile, diğer NoSQL tabanlı sistemler ve destekleyici araçların incelenmesiyle ve elde edilen analiz sonuçlarından şehir yönetimi konusunda faydalanılma olanaklarının tahkik edilmesiyle farklı açılardan daha ileri götürülebilmesi mümkündür. | |
dc.description.abstract | With the rapid population increase in the cities, the need for a powerful, dynamic city management is becoming more crucial. In order to overcome the problems appearing as the cities grow (e.g. transportation, resource management, pollution, waste disposal, ect.), the smart city concept comes into prominence. Smart city is a comprehensive system that utilizes various data coming from different sources, provides storing, monitoring and analyzing infrastructure, and delivers solutions for the problems and activities. The handling of the unstructured data continuously coming from different sources and expanding in size (i.e. big data) is the main struggle. Especially, considering that most of the data is georeferenced, geospatial indexing and processing for that kind of big data is of high importance. Current traditional relational database systems have strong geospatial functionalities in a part of them (e.g. Postgresql), however they have two major limitations. First is the fixed column-based schema structure, which obstructs the unstructured data import, and the second is the hardware dependency on the performance. Therefore, to cover the scalability and flexibility needs of big data management, NoSQL (Not Only SQL) databases are developed. NoSQL databases are non-relational and unstructured, hence can store different types of data altogether. They are horizontally scalable, which means performance can be increased by adding machines into the system. Furthermore, NoSQL data storing functionalities support nested hierarchical data models, which is not available in relational databases. Nevertheless, it is still a discussion if SQL based relational databases can be replaced by NoSQL. Based on the studies comparing these two, not all NoSQL databases perform better than SQL databases. On the other hand, two of the most popular NoSQL databases (i.e. MongoDB and Couchbase) are found to have superior performance than corresponding SQL databases in many aspects. In this study, we aimed to experiment on MongoDB on a single server, by importing a big geolocated traffic data and pollution sensor data, and performing aggregate queries, geospatial functions and correlation analysis on it. Based on the results MongoDB showed a satisfying performance despite few constraints and gaps, especially for applying geospatial joins. This study can be carried further investigating the ways to execute more complex geospatial queryies on MongoDB, and by using larger data sets, additional servers, other NoSQL based systems and/or supportive tools. | en_US |