Oracle Spatial Genel Bakış ve Veri Kalitesi
Download
Report
Transcript Oracle Spatial Genel Bakış ve Veri Kalitesi
Oracle Spatial ve
Veri Kalitesi
Murat HANÇEROĞLU
(1)
16 Ocak 2014
TROUG
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
2
TROUG
16 Ocak 2014
Oracle Spatial Nedir?
3
Spatial kelime anlamı olarak mekan,mekana ait anlamına gelmektedir.
Oracle Spatial Oracle RDBMS’e mekansal veri kaydetme, sorgulama,işleme ve analiz etme
yeteneklerini kazandıran, Oracle Enterprise Edition ile birlikte ayrı lisanslanan bir pakettir.
Spatial Data 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
16 Ocak 2014
Oracle Spatial Nedir?
Oracle veritabanlarının tüm versiyonlarında mekansal veriyi kaydetmeye,sorgulama ve
işleme yeneteklerine sahip Oracle Locator versinyonu bulunmaktadır.
4
TROUG
16 Ocak 2014
Oracle Spatial Nedir?
Locater
• Tüm Geometri tiplerini
destekler(line,polyline,polygon..)
• 2 boyutlu data
• Tüm spatial
sorgulamalar(inside,anyinteract etc..)
• Utility, tuning ve validation işlemleri
• Tüm koordinat sistemlerini
5
TROUG
Spatial
Tüm locater yeteneklerini ve
• Spatial veri işlemleri(birleştirme,
fark,kesişim vs.)
• Geocoder Engine
• Linear Referencing
• Network Data Model
• Partitioned Spatial Index
• Routing engine
• GeoRaster
• Topology Data Model
• Özel 3D types (LIDAR,TINS)
• OGC Web Services (WFS, OpenLS)
16 Ocak 2014
Neler Yapılabilir?
Tüm mekansal sorgulamalar(inside,nearest neighbour,
touch,intersect etc..)
İki nokta arasındaki en kısa yol, en hızlı yol,
yada tüm olası yolların hesaplanması
(Navigasyon vs)
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 GeoSpatial Consersium standartlarında
Veri üretir)
6
TROUG
16 Ocak 2014
Neler Yapılabilir?
Raster görüntüleri kaydedip,
sorgulayabilir ve işleyebilir
Augmented Reality uygulamaları
Oracle Fusion Middleware
ile tam entegre ederek MapViewer ile
Haritaların görüntülemesi
Ve entegrasyonların gerçeklenmesi
Linear Referencing işlemleri
7
TROUG
16 Ocak 2014
Neden Oracle Spatial?
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
Application
2000 lere doğru
Application
Bugün
Application
8
TROUG
Standalone GIS Apps
Spatial
MiddleWare
Mapping
Server
Custom APIS
Traditional
DBMS
Open APIs
Spatial
DBMS
16 Ocak 2014
Neden Oracle Spatial?
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..)
9
TROUG
16 Ocak 2014
Spatial – Teknik Genel Bakış
Veritabanında Spatail ve Locater durumu nedir?
select comp_id, comp_name, version, status from dba_registry where
comp_id in ('SDO', 'ORDIM');
COMP_ID
------SDO
ORDIM
10
TROUG
COMP_NAME
-----------------Spatial
Oracle Multimedia
VERSION
----------11.2.0.1.0
11.2.0.1.0
STATUS
-----VALID
VALID
16 Ocak 2014
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ı
Create Table,
Create sequence hakları
Sorgulama yapılacak kolon üzerinde
spatial index oluşturulması(Zorunlu)
11
TROUG
16 Ocak 2014
Sdo_Geometry
Oracle Spatial 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);
12
TROUG
16 Ocak 2014
Sdo_Geometry
Sdo_gtype
Number
Geometrinin tipini belirler
Geometry Type
2D
3D
1 POINT
2001
3001
2 POLYLINE-LINE
2002
3002
3 POLYGON
2003
3003
4 COLLECTION
2004
3004
5 MULTI-POINT
2005
3005
6 MULTI-(POLYLINE2006
LINE)
7 MULTI-POLYGON 2007
13
TROUG
3006
3007
16 Ocak 2014
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
14
TROUG
16 Ocak 2014
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
From scott.us_states
a where rownum=1)
15
TROUG
16 Ocak 2014
Sdo_Geometry
Sdo_geomtry.Sdo_elem_info
VARRAY (1048576) OF NUMBER
Geometrinin nasıl bir obje olduğunu tarif eder.
16
TROUG
16 Ocak 2014
Sdo_Geometry
Sdo_geomtry.Sdo_elem_info
Ordinate Offset: Ilk ordinatı gösterir
Element Type: Tipini gösterir: Line,Polyline,Line String,Compund
Interpretation görevi elementype göre farklılık gösterir.Compound tiplerde
eleman sayısını gösterir.
Db kayıt şekli
17
TROUG
16 Ocak 2014
MDSYS Şeması
Spatial ile ilgili tüm paket,stored procedure, 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)
Diminfo collection tipinde veridir.
X,Y koordinatlarının üst ve alt sınır değerlerini tutar ve tolerans değerlerini tutar.
18
TROUG
16 Ocak 2014
Sorgulama Ve Indexleme
Sorgulama Yapısı
Spatial sorgulama yapılabilmesi için spatial index 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.
19
TROUG
16 Ocak 2014
Spatial Operatorler 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, …
20
TROUG
16 Ocak 2014
Spatial Operatorler ve Fonksiyonlar
Sdo_Relate ile kullanılan yaklaşımlar
SELECT c.county, c.state_abrv FROM us_counties c,us_states s
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 mesafeki geomtrileri hesaplar
21
TROUG
16 Ocak 2014
İndexleme
R-TREE INDEX Yapısı kullanılır.
MBR:Mininum Boundind Rectable
MBV:Mininum boundingVolume for 3D
22
TROUG
16 Ocak 2014
İndexleme
CREATE INDEX us_states_sx
ON us_states (geom)
INDEXTYPE IS mdsys.spatial_index;
Index oluşturulduğunda aynı user altına mdrtxxx$ isimli bir tablo oluşturulur.
User create table ve create sequence haklarına sahip olmalı
Ek parametreler
23
SDO_INDX_DIMS
SDO_RTR_PCTFREE
TABLESPACE
INITIAL
WORK_TABLESPACE
SDO_DML_BATCH_SIZE
LAYER_GTYPE
TROUG
16 Ocak 2014
İndexleme
Indexleme parça parça yapılır.
• Tüm objelerin okunması
• MBR ların oluşturulması
• Her geometri için ortalama 10 Byte lik rollback 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
•
24
SIZE(Mb) = SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE
(NUMBER_OF_GEOMS, DB_BLOCK_SIZE
[,SDO_RTR_PCTFREE] [,NUM_DIMENSIONS]
[,IS_GEODETIC])
TROUG
16 Ocak 2014
Diğer Yetenekler
Linear Referencing
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.
25
TROUG
16 Ocak 2014
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
26
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
16 Ocak 2014
Oracle 10g-11g Karşılaştırma
Redo Log 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(Oracle User conferece 2012)
27
TROUG
16 Ocak 2014
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.
28
TROUG
16 Ocak 2014