Veri Ambarı ve OLAP - Altan MESUT

Download Report

Transcript Veri Ambarı ve OLAP - Altan MESUT

Veri Tabanı Yönetim Sistemleri 1
Ders 13
Veri Ambarı & OLAP
Yrd. Doç. Dr. Altan MESUT
Trakya Üniversitesi
Bilgisayar Mühendisliği Bölümü
Veri Ambarı Nedir?
• Veri ambarı, bir işletmenin ya da kuruluşun değişik
birimleri tarafından toplanan bilgilerden değerli
olanlarının, gelecekte analiz işlemlerinde kullanılması
amacıyla işletimsel sistem veritabanından farklı bir
ortamda birleştirilmesinden oluşan büyük çaplı bir veri
deposudur.
• Bir veri ambarı ilgili veriyi kolay, hızlı ve doğru biçimde
analiz etmek için gerekli işlemleri yerine getirir.
• Veri ambarı kullanıldığında, günlük işletimsel görevlerle
yeterince meşgul olan veritabanı kullanılmadan, analiz
işlemleri farklı bir ortamda yapılır.
Veri Ambarı Mimarisi
ETL (Extract-Transform-Load)
(Çıkarım-Dönüştürme-Yükleme)
• Veri çıkarımı, veri ambarının kullandığı
kaynaklardan (veri tabanı ve/veya diğer
kaynaklar) veri elde etme işlemidir. Kaynaklardan
çıkarılan veri genellikle geçici dosyalara yüklenilir.
• Dönüştürme aşamasında ise, elde edilen
verilerdeki fazlalıklar atılır (veri temizleme) ve her
veri sorgulamalarda kullanılabilecek uygun veri
türüne dönüştürülür.
• Yükleme, dönüştürülen verinin veri ambarına
aktarılması işlemidir.
Metadata Türleri
• Teknik Metadata: Bu tur Metadata sistem
adminlerini ve ambar tasarımını yapan
kullanıcılar için gerekli geliştirme ve bakim
işlemleri ile ilgili verilerdir. (İşletimsel veri
tabanlarından ambara dönüşüm için kullanılan
algoritmalar, veri temizleme ve düzeltimi için
kullanılan kurallar, erişim hakları, vs.)
• İş Metadata, kullanıcıların veri ambarında
saklanılan bilginin perspektifini anlamasına
yardımcı olacak bilgileri içerir (Sorgu, rapor,
web sayfası, resim, video, vs).
Veri Madenciliği Nedir?
Veri madenciliği, veri ambarları üzerinde AI
(yapay zeka), istatistiksel ve matematiksel
teknikleri kullanarak, saklanılan büyük
miktarlardaki veriler üzerinden, anlamlı yeni
ilişkiler, desenler ve eğilimler keşfetme
işlemidir.
Veri Madenciliğinin Kullanım
Amaçlarından Bazıları:
• Stratejik Analiz: Bir KDS (Karar Destek Sistemi)
olmasından dolayı
• Finansal Analiz: Maliyetlerin azaltılması
dolayısıyla rekabet avantajının sağlanması
• Satış analizi ve trendler üzerine odaklanmak
• Müşterilerin gizli kalmış satın alma eğilimlerini
tespit etmek
• İşler arasında ilişkilerin belirlenebilmesi
• Müşteri ihtiyaçlarına çabuk cevap verebilme
(Etkin CRM)
OLAP (On-Line Analytical Processing)
• OLAP araçları, hızlı gözden geçirim, özetleme ve
veri analizi için tasarlanmış, çok boyutlu veri
tabanı motorunda verinin çok boyutlu
gösterimine olanak sunan araçlardır.
• OLAP araçları ile;
– En çok kâr getiren müşterilerim kimlerdir? (Bayi ve
perakendeci bazında.)
– En kârlı ürünlerim nelerdir?
– Hangi işletme ya da mağazamda, en çok hangi saat ve
günlerde hareketlilik olmaktadır?
gibi sorular hızlı bir şekilde cevaplanabilmektedir.
Veri Ambarı (OLAP)
Veri Tabanı (OLTP)
• Off-Line çalışır
• Veri değişiminden çok
sorgulama yapılır
• Eski veriler saklandığı için
veri miktarı çok
• Üst yönetim ve analistler
kullanır (Kullanıcı sayısı
az)
• Veri madenciliği gibi uzun
ve karmaşık süreçler
sonucunda analizler
yapılabilir
• On-Line çalışır
• Veri değişimi işlemleri
yoğunluktadır (DML)
• Güncel veriler saklandığı
için veri miktarı daha az
• Veriye ulaşmak ve
değiştirmek isteyen her
kullanıcıya hitap eder
(Kullanıcı sayısı çok)
• Sorgularla istenilen
sonuçlara anında ulaşılır
Veri ambarı yerine veri tabanı
(işletimsel sistem) kullanılırsa …
• İşletimsel sistemlerde sürekli değişen veri “karar
verme işlemi” için uygun değildir.
• İşletimsel sistemlerde kompleks bir sorgu yapılacaksa,
bir çok tablodan veri toplanması gereklidir.
• İşletimsel sistemlerde sadece işlemsel veriler saklanılır.
Geçmişe yönelik veri saklanılmaz.
• Organizasyondaki farklı uygulamalar, farklı teknolojiler
ve ortamlar kullanabilmektedir. Böyle sistemlerde veri
analiz ve sorgulaması, verinin yeri ve ortak bir formata
dönüşüm işlemlerini içerdiğinden zor olabilir.
Veri Pazarları (Data Marts)
• Birleşik verilerin tutulduğu veri ambarına ilave
olarak kullanılan veri deposu olarak
tanımlanabilir. Veri pazarı, belirli kullanıcı
grubu için yaratılan veri bölümüdür.
Veri pazarı, normalize
edilmemiş, özetlenmiş,
toplanılmış veri
topluluğu olabilir.
Veri Ambarı ile Veri Pazarı Arasındaki
Farklar
• Veri pazarı sadece bir özne alana veya sadece bir
grup kullanıcı üzerine odaklanır.
• Bir organizasyon sadece bir veri ambarına sahip olur,
fakat bir çok veri pazarı içerebilir.
• Veri pazarları veri ambarlarının aksine, işletimsel veri
kaynakları bilgisine sahip değildir.
• Çünkü veri pazarları, veri ambarlarının aksine daha az
bilgi içerirler bu nedenle kullanıcılar için çok daha
çabuk ve kolayca anlaşılabilirler.
Veri Ambarı İçin Kullanılan Modelleme
Teknikleri
• Veritabanı tasarımında kullanılan E-R modeli iki
boyutlu olup, tüm varlıklara eşitmiş gözü ile
bakılır.
• Veri ambarları için çok boyutlu perspektifi
gerçekleyebilecek yeni modelleme teknikleri
keşfedilmiştir:
– Yıldız (Star)
– Kar Tanesi (Snowflake)
– Karma (Mixed)
Yıldız (Star) Modeli
Gerçek tablosu, temel iş ölçümlerini içeren niteliklerden
oluşur. Bir gerçek tablo, o tabloya ait spesifik nitelikler ve
boyut tablolarıyla ilişkili yabancı anahtarları içermektedir.
Boyut tablosu, gerçek tablosunda saklanılan veriyi
indeksler ve organize eden niteliklerden oluşmaktadır.
Boyut tablosu, boyutu tanımlayan nitelikleri içermektedir.
Kar Tanesi (Snowflake) Modeli
• Kar tanesi modeli, yıldız modelinin geliştirilmiş
halidir.
• Gerçek tablolarının her bir boyut tablosu
başka boyut tablolarına da sahiptir.
• Boyut tabloları, bir çok niteliğe sahip
olduklarında, normalize edilmeleri gereklidir.
• Yıldız modeli normalize edilmiş boyut
tablolarını desteklemediğinden, bu durumda
kar tanesi modeli tercih edilmelidir.
Kar Tanesi Modelinin Avantajları ve
Dezavantajları
• Avantajları:
– Tüm tekrarlanılan veriler kaldırıldığından, saklama
alanı korunmuş olur.
– Büyük normalize edilmemiş tablolar yerine,
Join’ler için normalize edilmiş daha küçük tablolar
kullanılır.
• Dezavantajları:
– Sorgu sonucunda Join edilmesi gereken tabloların
sayısının belirlenmesindeki zorluk
– Belirli bir sorguda kullanılacak tabloyu
belirlemedeki zorluk
Karma (Mixed) Modeli
• Bazı veritabanı dizaynlarında, boyut tabloları
veri hacminde çok geniş farklılıklar gösterir.
• Böyle durumlarda tüm tasarımda ne yıldız ne
de kar tanesi modeli kullanılamaz. Her iki
modelin bir kombinasyonuna ihtiyaç duyulur.
• Bu kombinasyon modeline karma model
denilmektedir.
Küp (Cube)
• Verinin hızlı bir şekilde analizine izin veren veri
yapısıdır.
• Yıldız modeli için verilen örnek bir küp
üzerinde aşağıdaki gibi saklanabilir:
Çok boyutlu (3D) küp :
Gerçek tablosu :
prodId storeId
p1
c1
p2
c1
p1
c3
p2
c2
p1
c1
p1
c2
date
1
1
1
1
2
2
amt
12
11
50
8
44
4
day 2
day 1
p1
p2 c1
p1
12
p2
11
c1
44
c2
4
c2
8
c3
c3
50
Küp İşlemleri
day 2
day 1
p1
p2 c1
p1
12
p2
11
p1
p2
c1
56
11
c1
44
c2
4
c2
c3
Örnek: Toplam Hesaplama
...
c3
50
sale(c1,*,*)
8
c2
4
8
c3
50
sum
c1
67
c2
12
c3
50
129
sale(c2,p2,*)
p1
p2
rollup
drill-down
sum
110
19
sale(*,*,*)
Özet Tablolar (Materialized Views)
• Özet tablolar (MV) bir sorgunun sonucunu saklar.
– Görüntüden farkı, görüntü sorgunun sonucunu değil sadece
sorguyu saklar. Yani sorgunun kapsadığı tablo yada
tablolardaki veriler değiştikçe görüntü de değişir. Fakat MV
ayrı bir tablo gibi sorgu sonucunu sakladığından dolayı, ilgili
tablolar değiştikçe içeriği değişmez. Bu nedenle “CREATE
TABLE AS SELECT …” komutu ile bir tablo oluşturmaya
benzer. Bir tablodan farkı ise, belirli zaman aralıkları ile
sorgunun tekrar çalıştırılıp, değişmiş olabilecek bilgilerin
güncellenebilmesidir.
• Karmaşık sorguların yavaşlığından kurtulmak için veri
ambarı ile ilgili sorgulamaların hızlandırılması için
kullanılır.
Özet Tablolar (Materialized Views)
• MV’ler ilk olarak Oracle veritabanında
kullanılmaya başlanmış (Oracle 8i’den önceki ismi
Snapshot idi), daha sonra IBM DB2 ve MS SQL
Server tarafından da kullanılmıştır.
• Tablolara olan benzerliğinden dolayı IBM DB2’da
“Materialized Query Tables” ismi verilmiştir.
• MV üzerinde de tablolarda olduğu gibi indeks
oluşturabildiği için MS SQL Server’da ise “Indexed
Views” olarak isimlendirilmiştir.
MV Yaratma
CREATE MATERIALIZED VIEW
base_lookup_mv
PARALLEL
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
ENABLE QUERY REWRITE AS
SELECT l.nam
,COUNT(b.tot) count_tot
,SUM(b.tot) sum_tot
,AVG(b.tot) avg_tot
FROM base_table b, lookup_table l
WHERE b.id = l.id
GROUP BY l.nam;
İşlem Süreleri:
Normal Insert
MV Insert
Normal Select
MV Select
: 60 s
: 70 s
: 1,015 s
: 0.557 s