280 likes | 551 Views
Oracle Spatial ve Veri Kalitesi. Murat HANÇEROĞLU. Ajanda. Oracle Spatial Nedir? Neden Oracle Spatial ? Kullanım Alanları Nelerdir? Teknik Analizi Sdo_geometry MDSYS Şeması Sorgulama ve Indexleme Diğer Yetenekler 10g-11g performans karşılaştırma Veri Kalitesine Etkisi.
E N D
OracleSpatial ve Veri Kalitesi Murat HANÇEROĞLU TROUG
Ajanda • OracleSpatial Nedir? • Neden OracleSpatial? • Kullanım Alanları Nelerdir? • Teknik Analizi • Sdo_geometry • MDSYS Şeması • Sorgulama ve Indexleme • Diğer Yetenekler • 10g-11g performans karşılaştırma • Veri Kalitesine Etkisi TROUG
OracleSpatial Nedir? • Spatial kelime anlamı olarak mekan,mekana ait anlamına gelmektedir. • OracleSpatialOracleRDBMS’emekansal veri kaydetme, sorgulama,işleme ve analiz etme yeteneklerini kazandıran, Oracle Enterprise Edition ile birlikte ayrı lisanslanan bir pakettir. • SpatialData Neler İçerir? • Ada,parsel, adres gibi kadastro datası, orman,göl,ırmak gibi doğal yapıları, • Elektrik, doğalgaz,su, fiber optik gibi altyapıyı ilgilendiren bilgiler, • Araç takip sistemleri, • Önemli Noktalar(Restoran,hastane,taksi vb..) • Müşteri konumu, baz istasyonu vs.. gibi Konum ile ilişkilendirilebilecek tüm verileri TROUG
OracleSpatial Nedir? • Oracleveritabanlarının tüm versiyonlarında mekansal veriyi kaydetmeye,sorgulama ve işleme yeneteklerine sahip OracleLocatorversinyonu bulunmaktadır. TROUG
OracleSpatial Nedir? Locater Spatial • Tüm Geometri tiplerini destekler(line,polyline,polygon..) • 2 boyutlu data • Tüm spatial sorgulamalar(inside,anyinteractetc..) • Utility, tuning ve validation işlemleri • Tüm koordinat sistemlerini Tüm locater yeteneklerini ve • Spatial veri işlemleri(birleştirme, fark,kesişim vs.) • Geocoder Engine • Linear Referencing • Network Data Model • PartitionedSpatial Index • Routing engine • GeoRaster • Topology Data Model • Özel 3D types (LIDAR,TINS) • OGC Web Services (WFS, OpenLS) TROUG
Neler Yapılabilir? • Tüm mekansal sorgulamalar(inside,nearestneighbour, touch,intersectetc..) • İki nokta arasındaki en kısa yol, en hızlı yol, yada tüm olası yolların hesaplanması (Navigasyonvs) • Geometriler arası topolojik bağlantıların Oluşturulması • 2D objeler 3D ye çevrilebilir ve 3D Sorgulamalar yapılabilir. • Diğer veri tabanı yönetim sistemleri ile entegrasyon sağlayabilir (Open GeoSpatialConsersium standartlarında Veri üretir) TROUG
Neler Yapılabilir? • Raster görüntüleri kaydedip, sorgulayabilir ve işleyebilir • AugmentedRealityuygulamaları • OracleFusionMiddleware ile tam entegre ederek Map Viewer ile Haritaların görüntülemesi Ve entegrasyonların gerçeklenmesi • LinearReferencing işlemleri TROUG
Neden OracleSpatial? • Neden Spatial sorusunun cevabını bulmak için geçmişten bugüne konum bazlı uygulamalarının geçmişten bugüne evrimine bakabiliriz • 1990 başlarında • 2000 lere doğru • Bugün Standalone GIS Apps Application Traditional DBMS Spatial MiddleWare CustomAPIS Application Spatial DBMS Mapping Server Open APIs Application TROUG
Neden OracleSpatial? • Big data konseptinin hayatımıza girmesiyle büyük veri kitlerinin kaydedilmesi ve analiz ihtiyaçlarının giderek artması • Veri güvenliği, kalitesi, arşivlenmesi sağlaması, client tarafında platform bağımsızlığını sağlaması, bulk işlemler, online bakım gibi klasik veritabanı için yapılan tüm yetkinliklerin spatial veri için de yapılabilmesini sağlaması • Konum bazlı analizlere dayalı kullanıcı taleplerinin hızla artması ve bu yönde hızla büyüyen Pazar.(Google Earth,Forsquare vb..) TROUG
Spatial – Teknik Genel Bakış • VeritabanındaSpatail ve Locater durumu nedir? • select comp_id, comp_name, version, statusfrom dba_registrywhere comp_id in ('SDO', 'ORDIM'); COMP_ID COMP_NAME VERSION STATUS ------- ------------------ ----------- ------ SDO Spatial 11.2.0.1.0 VALID ORDIM Oracle Multimedia 11.2.0.1.0 VALID TROUG
Spatial – Teknik Genel Bakış • Spatial sorgulama yapabilmek için; • Konum bilgilerini Mdsys.sdo_geomtry veri tipi İle kaydedilmesi • User_sdo_geom_metadate altına tüm sdo_geomtry kolonları için metadata bilgisini oluşturulması • CreateTable, Createsequence hakları • Sorgulama yapılacak kolon üzerinde spatialindex oluşturulması(Zorunlu) TROUG
Sdo_Geometry • OracleSpatial için kullanılan temel veri tipidir. • Mdsys şeması altındadır. • CREATE TYPE sdo_geometry AS OBJECT (SDO_GTYPE NUMBER SDO_SRID NUMBER SDO_POINT SDO_POINT_TYPE SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY SDO_ORDINATES SDO_ORDINATE_ARRAY); TROUG
Sdo_Geometry • Sdo_gtype • Number • Geometrinin tipini belirler TROUG
Sdo_Geometry • Number • Sdo_Geomtry.Srid • Verinin hangi koordinat sistemine ait olduğu bilgisini tutar. • MDSYS.CS_SRS bulunmak zorundadır. • Sdo_geomtry.sdo_point Point datalara ait x,y,z koordinatlarını içerir. • Point data tipleri için optimizasyon sağlar TROUG
Sdo_Geometry • Sdo_geometry.sdo_odinates • VARRAY OF NUMBER • Geometriyi oluşturan noktaların kaydedildiği ildir. • select * from table(select a.geom.sdo_ordinates Fromscott.us_states a where rownum=1) TROUG
Sdo_Geometry • Sdo_geomtry.Sdo_elem_info • VARRAY (1048576) OF NUMBER • Geometrinin nasıl bir obje olduğunu tarif eder. TROUG
Sdo_Geometry • Sdo_geomtry.Sdo_elem_info • OrdinateOffset: Ilk ordinatı gösterir • Element Type: Tipini gösterir: Line,Polyline,LineString,Compund • Interpretation görevi elementype göre farklılık gösterir.Compound tiplerde eleman sayısını gösterir. Db kayıt şekli TROUG
MDSYS Şeması • Spatial ile ilgili tüm paket,storedprocedure, function,metadata,index bilgileri, koordinat sistemlerine ait bilgileri barındırır. • Spatial ve locater yüklü tüm DB lerde olmak zorundadır. • Sorgulama ve indexleme yapabilmek için sdo_geomtry tüm kolonlar için mdsys.sdo_geom_metadata_table (user_sdo_geom_metadata) de mutlaka olması gerekir. • User_sdo_geom_metadata (table_name,Column_name,diminfo,srid) • Diminfocollection tipinde veridir. • X,Y koordinatlarının üst ve alt sınır değerlerini tutar ve tolerans değerlerini tutar. TROUG
Sorgulama Ve Indexleme • Sorgulama Yapısı • Spatial sorgulama yapılabilmesi için spatialindex zorunludur. • Operatör ve Fonksiyonlar The SDO_FILTER operator The SDO_RELATE operator The SDO_WITHIN_DISTANCE ve SDO_NN operator SDO_FILTER( <geometry-1>,<geometry-2>)=‘TRUE’ <geometry-1> aramanın yapılacağı kolon,index zorunlu <geometry-1> değişken veya bir tablo kolonu olabilir. TROUG
SpatialOperatorler ve Fonksiyonlar • SDO_FILTER • Sorgulamada en hızlı yöntemdir ancak yaklaşık bir sonuç verir. • Sadece ilk filtreleme işlemini yapar. • SDO_FILTER( <geometry-1>,<geometry-2>)=‘TRUE’ • SDO_RELATE • Tam doğru sonuç için kullanılması gereken sorgudur. SDO_RELATE ( <geometry-1>,<geometry-2>,'MASK=<mask>') = 'TRUE‘ Mask=INSIDE, CONTAINS, COVERS, COVEREDBY, EQUAL, TOUCH, … TROUG
SpatialOperatorler ve Fonksiyonlar • Sdo_Relate ile kullanılan yaklaşımlar • SELECT c.county, c.state_abrvFROM us_countiesc,us_statess WHERE s.state = 'New Hampshire' AND SDO_RELATE(c.geom,s.geom,'mask=INSIDE') = 'TRUE'; • SDO_NN belirtiğiniz bir geometry en yakın geometriyi hesaplar • SDO_WITHIN_DISTANCE belirtilen geometriye belirtilen mesafekigeomtrileri hesaplar TROUG
İndexleme • R-TREE INDEX Yapısı kullanılır. • MBR:MininumBoundindRectable • MBV:Mininumbounding Volume for 3D TROUG
İndexleme • CREATE INDEX us_states_sxON us_states (geom) INDEXTYPE IS mdsys.spatial_index; • Index oluşturulduğunda aynı user altına mdrtxxx$ isimli bir tablo oluşturulur. • User createtable ve createsequence haklarına sahip olmalı • Ek parametreler • SDO_INDX_DIMS • SDO_RTR_PCTFREE • TABLESPACE • INITIAL • WORK_TABLESPACE • SDO_DML_BATCH_SIZE • LAYER_GTYPE TROUG
İndexleme • Indexleme parça parça yapılır. • Tüm objelerin okunması • MBR ların oluşturulması • Her geometri için ortalama 10 Bytelikrollback için alan gerekli • Clusterların oluşturulması • 5 milyon kayıt için ortalama 1 Gbyte geçici alan gerekli • Her index için SGA de ortalama 10 Mbyte alan gerekli • SIZE(Mb) = SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE (NUMBER_OF_GEOMS, DB_BLOCK_SIZE [,SDO_RTR_PCTFREE] [,NUM_DIMENSIONS] [,IS_GEODETIC]) TROUG
Diğer Yetenekler • LinearReferencing • Lineer bir yapı boyunca belirli bir noktaya göre olayları veya başka yapıları kaydetmeye yarar. • Demiryolları, hava trafik yönetimi,altyapı • Geocoding • Referanslı bir adres datasını baz alarak text adresleri koordinarlara çevirebilir. TROUG
Diğer Yetenekler • Data Processing • Geometrileri birleştirme, ayrıştırma,alan ve uzunluk hesaplama • Network Data Model • İstenilen obje kümeleri için aralarındaki ilişkileri tanımlayarak analiz yapar • Node ve linkler tanımlayarak tüm ilişki bu yapı üzerinden sorgulanır. • Spatial sorgu kullanmaz. • Datayı oluşturmak için PL/SQL API leri, görüntülemek ve sorgulamak için JAVA API leri mevcuttur. • En kısa, en hızlı, gidilebilir güzergah gibi sorgulamalar yapılabilir TROUG
Oracle 10g-11g Karşılaştırma • RedoLog Geliştirme • Yeni yöntemler ve kod iyileştirmeleri ile index kaynaklı I/O miktarı %90 civarında azalmıştır • DML işlemlerinde ki işlemler % 50 azalmıştır • Sorgulamalarda 20 kata kadar hızlanmalar(OracleUser conferece 2012) TROUG
Veri Kalitesine Etkiler • Spatial datanın text veri ile birlikte tutulmasıyla Text verideki tutarlılığın denetlenmesi için 2. bir kontrol mekanizması oluşturur. • Özellikle altyapı şirketleri, maden şirketleri ve belediyeler için altyapının sağlıklı takip edilmesinde önemli katkılar sağlanabilir. TROUG