apex cuboid

advertisement
Veri Madenciliği
Bölüm 3. Veri Ambarları
Doç. Dr. Suat Özdemir
w3.gazi.edu.tr/~suatozdemir
Konular
 Veri ambarı nedir?
 Çok boyutlu veri modeli
 Veri ambarı mimarisi
 Veri ambarcılığı
Veri Madenciliği
Doç. Dr. Suat Özdemir
2/35
Veri Ambarları ve OLAP Teknolojisi
 Veri ambarları çok boyutlu ve karmaşık verileri
özetleyen ve katagorize eden teknolojidir.
 Bu teknoloji veri madenciliğinde şu ana kadar
gördüğümüz veri temizleme, birleştirme ve çevirme
işlemlerini kapsamaktadır.
 Veri tabanları çevrim içi analitik işlemenin (Online
Analytical Processing - OLAP) değişik boyutlardaki
ve karmaşıklıktaki veriler için kullanılabilmesine
olanak tanır.
Veri Madenciliği
Doç. Dr. Suat Özdemir
3/35
Veri ambarları
 Veri ambarı
– Bir veri ambarı yönetimsel karar vermeye yardımcı olacak
verilerin konu odaklı, birleştirilmiş, zaman değişken
ve sabit olarak toplanmasıdır (W. H. Inmon).
 Veri ambarcılığı
– Veri ambarı oluşturma ve kullanma işlemi
Veri Madenciliği
Doç. Dr. Suat Özdemir
4/35
Veri ambarı – Konu odaklı
 Müşteri, ürün, satış gibi ana konular için geliştirilirler
 Karar verici makamlar için verinin modellenmesine
ve analizine odaklanır
– Günlük işlemler ya da alışveriş hareketliliği veri
ambarlarının konusu değildir.
 Gereksiz verileri ayıklar ve odaklandığı konu
çerçevesinde basit ve anlaşılabilir bilgiyi sunar
Veri Madenciliği
Doç. Dr. Suat Özdemir
5/35
Veri ambarı – Birleştirilmiş
 Farklı kaynakların bir araya getirilmesi ile oluşur
– relational databases, flat files, on-line
transaction records
 Veri temizleme ve birleştirme teknikleri
uygulanır.
– İsimlendirme, birimler, vb.
– Veriler veri ambarına alındıklarında gerekli
çevrimler yapılır.
 Değişik veri kaynakları arasındaki tutarlılık
sağlanır
Veri Madenciliği
Doç. Dr. Suat Özdemir
6/35
Veri ambarı – Zaman değişkenli
 Zaman değişkeni canlı veri tabanlarına göre daha
uzundur
 Canlı veri tabanları: Güncel veriler bulunur (en çok
geçmiş 1 yıl)
 Veri ambarları: Geçmiş hakkında bilgi verir (geçmiş
5-10 yıl)
 Veri ambarının odaklandığı konu zaman içerisinde
değişebilir
– A data warehouse's focus on change over time is what is
meant by the term time variant.
Veri Madenciliği
Doç. Dr. Suat Özdemir
7/35
Veri ambarı – Statik
 Canlı veritabanlarından alınan veri farklı bir fiziksel
bir ortamda saklanır
 Veri ambarında veri güncellemesi olmaz
 Canlı veritabanlarındaki değişim veri ambarlarını
etkilemez
 Sadece “ilk veri yüklemesi” ve “veri erişimi”
işlemlerini kullanır
Veri Madenciliği
Doç. Dr. Suat Özdemir
8/35
Veri Ambarı - Birleştirilmiş Veritabanları Karşılaştırılması


Veritabanlarının birleştirilmesi OLTP (on-line transaction processing):
– Farklı veritabanları arasında bir arabulucu katman
– Sorgulama tabanlı, karmaşık ve kaynak açısından verimsiz
– Bir sorgulamayı her veritabanı için alt sorgulamalara ayır
– Sonucu birleştir
Veri ambarı OLAP (on-line analytical processing):
– Veri daha sonra kullanılmak üzere birleştirilip veri ambarında saklanıyor
Sorgulama
Sorgulama
Alt
Sorgular
Birleştir
me
Veri
Ambarı
Sonuç
Veri ambarı
Veri Madenciliği
Doç. Dr. Suat Özdemir
Arayüz
Sonuç
Birleştirilmiş veri tabanları
9/35
OLTP vs. OLAP
OLTP
OLAP
users
clerk, IT professional
knowledge worker
function
day to day operations
decision support
DB design
application-oriented
subject-oriented
data
current, up-to-date
detailed, flat relational
isolated
repetitive
historical,
summarized, multidimensional
integrated, consolidated
ad-hoc
lots of scans
unit of work
read/write
index/hash on prim. key
short, simple transaction
# records accessed
tens
millions
#users
thousands
hundreds
DB size
100MB-GB
100GB-TB
metric
transaction throughput
query throughput, response
usage
access
Veri Madenciliği
Doç. Dr. Suat Özdemir
complex query
10
Çok boyutlu veri modeli
 Çoklu boyutlu veri modelinin temel birimi fact
table lardır
 A fact table is a table that contains the
measures of interest.
 Odaklanılan özellik ve boyutları özetler
 Örneğin “satış verisi” odaklanılan bir özellik
olabilir.
 Bu nitelik “fact table” içinde istenilen
hassasiyette (granularity) tutulur.
– Örneğin “bir şube için günlük satış değeri”
– Bu durumda “fact table” üç kolondan (nitelik) oluşur:
zaman, şube ve satış tutarı.
Veri Madenciliği
Doç. Dr. Suat Özdemir
11/35
Çok boyutlu veri modeli
 Lookup Table: The lookup table provides the
detailed information about the attributes.
 Her bir niteliğin detaylı bilgisini tutar
 Örneğin “Quarter” niteliği için “lookup table” very
ambarındaki tüm Quarter değerlerini içerir
 Her bir satır (Quarter) gerekli olan diğer bilgileri
içerir Unique ID, format vb.
Veri Madenciliği
Doç. Dr. Suat Özdemir
12/35
Star schema
 Çok boyutlu veri modeli star schema (veri küpü)
lardan oluşturulur
 Star schema da merkezde bir fact table bulunur.
 Fact table ilişkili lookup table larla bağlantılıdır.
 Her nitelik bir lookup table ile gösterilir
 Her lookup table için primary key fact table daki bir
foreign key ile bağıntılıdır.
Veri Madenciliği
Doç. Dr. Suat Özdemir
13/35
Star schema
 Assume a data warehouse
that keeps store sales data
 Dimensions are time, store,
product, and customer.
 The lines between two tables
indicate that there is a
primary key / foreign key
relationship between the two
tables.
 Note that different
dimensions are not related to
one another.
Veri Madenciliği
Doç. Dr. Suat Özdemir
14/35
Örnek
Veri Madenciliği
Doç. Dr. Suat Özdemir
15/35
Snowflake schema
 The snowflake schema is an extension of the
star schema, where each point of the star
explodes into more points.
 Star schema da her nitelik bir lookup table
(dimension table) ile gösterilir
 Snowflake schema da o dimensional table birden
fazla lookup table olarak normalize edilir
– Her tablo boyut hiyeraşisinde bir seviyedir
– Yıl -> Ay -> Gün gibi
Veri Madenciliği
Doç. Dr. Suat Özdemir
16/35
Snowflake schema
 The Time Dimension that consists of 2 different hierarchies:
1. Year → Month → Day
2. Week → Day
 There are 4 lookup tables in a snowflake schema.
 A lookup table for year, a lookup table for month, a lookup table for
week, and a lookup table for day.
 Year is connected to Month, which is then connected to Day. Week
is only connected to Day.
Veri Madenciliği
Doç. Dr. Suat Özdemir
17/35
Örnek Snowflake Schema
Veri Madenciliği
Doç. Dr. Suat Özdemir
18/35
Snowflake schema
 The main advantage of the snowflake schema is the
improvement in query performance due to
minimized disk storage requirements and joining
smaller lookup tables.
– Sometimes the performance may be negavitely affected due to
increased number of join operations
 The main disadvantage of the snowflake schema is
the additional maintenance efforts needed due to
the increase number of lookup tables.
Veri Madenciliği
Doç. Dr. Suat Özdemir
19/35
Star schema - örnek
Veri Madenciliği
Doç. Dr. Suat Özdemir
20/35
Star schema – query örneği
SELECT
dim_store.store_address,
SUM(fact_sales.quantity) AS quantity_sold
FROM
fact_sales
INNER JOIN dim_product ON fact_sales.product_id = dim_product.product_id
INNER JOIN dim_time ON fact_sales.time_id = dim_time.time_id
INNER JOIN dim_store ON fact_sales.store_id = dim_store.store_id
WHERE
dim_time.action_year = 2016
AND dim_store.city = 'Berlin'
AND dim_product.product_type = 'phone'
GROUP BY
dim_store.store_id,
dim_store.store_address
Veri Madenciliği
Doç. Dr. Suat Özdemir
21/35
Snowflake schema - örnek
Veri Madenciliği
Doç. Dr. Suat Özdemir
22/35
Snowflake schema – query örneği
SELECT
dim_store.store_address,
SUM(fact_sales.quantity) AS quantity_sold
FROM
fact_sales
INNER JOIN dim_product ON fact_sales.product_id = dim_product.product_id
INNER JOIN dim_product_type ON dim_product.product_type_id = dim_product_type.product_ty
INNER JOIN dim_time ON fact_sales.time_id = dim_time.time_id
INNER JOIN dim_year ON dim_time.year_id = dim_year.year_id
INNER JOIN dim_store ON fact_sales.store_id = dim_store.store_id
INNER JOIN dim_city ON dim_store.city_id = dim_city.city_id
WHERE
dim_year.action_year = 2016
AND dim_city.city = 'Berlin'
AND dim_product_type.product_type_name = 'phone'
GROUP BY
dim_store.store_id,
dim_store.store_address
Veri Madenciliği
Doç. Dr. Suat Özdemir
23/35
Çok boyutlu veri modeli
 Star schema “veri küpü” olarak da bilinir
 Veri ambarları veriyi “star schema/veri küpü” olarak gören çok
boyutlu veri modelini kullanır.
 Bir veri küpü, örneğin “satış”, veriyi bir çok boyutta
modellememizi ve görmemizi sağlar.
– Ürün veya zaman gibi boyut tabloları
 Veri ambarcılığı literatüründe, n-D boyutlu küp base cuboid
(baz küboid) olarak adlandırılır. En yüksek seviyeden özet
veriyi gösteren 0-D boyutlu küp apex cuboid (tepe küboid)
olarak adlandırılır. Tüm küboidlerin oluşturduğu örgüde veri
küpü olarak adlandırılır.
Veri Madenciliği
Doç. Dr. Suat Özdemir
24/35
Veri küpü
all
time
0-D(apex) cuboid
item
time,location
time,item
location
supplier
item,location
time,supplier
1-D cuboids
location,supplier
2-D cuboids
item,supplier
time,location,supplier
3-D cuboids
time,item,location
time,item,supplier
item,location,supplier
4-D(base) cuboid
time, item, location, supplier
Veri Madenciliği
Doç. Dr. Suat Özdemir
25/35
Çok boyutlu veri
 Ürün ay ve bölgenin bir fonksiyonu olarak satış verisi
Dimensions: Product, Location, Time
Hierarchical summarization paths
Industry Region
Year
Product
Category Country Quarter
Product
City
Office
Month Week
Day
Month
Veri Madenciliği
Doç. Dr. Suat Özdemir
26/35
Veri Küpü Oluşturma-Örnek
 SMARKET’in satış verilerini tutmak için bir veri
ambarı oluşturmak
 Başlama noktası “zaman-reyon” boyutlarında “satış
miktarı (TL)” verisini tutan 2-boyutlu tablo
Şube: Çankaya
Reyon
Zaman
Veri Madenciliği
Doç. Dr. Suat Özdemir
Manav
Şarküteri
Fırın
İlkbahar
1000
850
350
Yaz
1352
940
298
Sonbahar
1450
658
314
Kış
1500
965
365
27/35
Veri Küpü Oluşturma-Örnek
 SMARKET yöneticisini “zaman-ürün” boyutlarına
birde “şube” boyutunu ekleyerek sonuçları
görmek istiyor
 Sonuçlar çeşitli şubelerin değer tabloları bir araya
getirilerek gösterilebilir.
Zaman
Şube: Çankaya
Şube: Ulus
Şube: Eryaman
Reyon
Reyon
Reyon
Şarküteri Fırın Manav
Şarküteri Fırın Manav
Şarküteri
Fırın
Manav
İlkbahar
1000
850
350
2950
850
350
4155
850
350
Yaz
1352
940
298
6541
940
298
2140
940
298
Sonbahar
1450
658
314
1450
547
314
7520
658
654
Kış
1500
965
365
1500
965
365
1500
965
365
Veri Madenciliği
Doç. Dr. Suat Özdemir
28/35
Veri Küpü Oluşturma-Örnek
 Değer tablolarının birleştirmesi ile elde edilen tablo
çok açık değil/anlaşılması zor
 Farklı boyutlar için özet bilgi (toplam, ortalama, vs.)
elde etmek mümkün değil
 Veri küpü şeklinde ifade edilebilir
Veri Madenciliği
Doç. Dr. Suat Özdemir
29/35
Veri Küpü Oluşturma-Örnek
Zaman
Fırın
Şarküteri
Manav
Toplam
İlkbahar Yaz Sonbahar Kış
Toplam
Çankaya
Ulus
Şube
Reyon
Eryaman
Toplam
Hepsinin toplamı
Veri Madenciliği
Doç. Dr. Suat Özdemir
30/60
Veri küpünü oluşturan küboidler
Toplam
0-D (apex) cuboid
Reyon
Reyon, Zaman
Zaman
Şube
Reyon, Şube
1-D cuboids
Zaman, Şube
2-D cuboids
3-D (base) cuboid
Reyon, Zaman, Şube
Veri Madenciliği
Doç. Dr. Suat Özdemir
31/35
Veri Küpü Oluşturma-Örnek
 Bir başka boyut daha eklenseydi, 3B küplerin yan
yana getirilmesi ile yada 4-boyutlu bir küp ile
gösterilebilirdi.
Veri Madenciliği
Doç. Dr. Suat Özdemir
32/35
Veri küpünde OLAP işlemleri
 Genelleme/Roll up (drill-up): Temelde veri özetleme
işlemidir. 2 şekilde yapılabilir
– Oluşturulan hiyeraşi üzerinde yukarı doğru çıkılır (ay yıl)
– Boyut azaltımı yapılır.
 Derinleme/Drill down (roll down): roll-up işleminin tersidir.
– Oluşturulan hiyeraşi üzerinde aşağılara inilerek veri detaylandırılır
– Yeni boyutlar oluşturulabilir
 Slice and dice: project and select
– Veride istenilen bölge (dilim ya da küp) belirlenir ve “kesilerek” alınır
 Pivot (rotate):
– Veri küpü çevrilir, görsel olarak değiştirilir
– 3B veriden 2B veriler serisine çevrilebilir
Veri Madenciliği
Doç. Dr. Suat Özdemir
33/42
OLAP İşlemleri
Veri Madenciliği
Doç. Dr. Suat Özdemir
34/35
Veri Ambarı Mimarisi
Diğer
Kaynaklar
Veritabanları
Metadata
Veri çek
İşle
Yükle
Yenile
İzleme
Birleştirme
OLAP Server
Hizmet
Veri ambarı
Veri
madenciliği
Veri “Mart”ları
Veri kaynakları
Veri Madenciliği
Doç. Dr. Suat Özdemir
Veri depolama
OLAP motoru Son kullanıcı
36/35
Veri Ambarı Kullanımı
 Three kinds of data warehouse applications
– Information processing
• supports querying, basic statistical analysis, and reporting
using crosstabs, tables, charts and graphs
– Analytical processing
• multidimensional analysis of data warehouse data
• supports basic OLAP operations, slice-dice, drilling, pivoting
– Data mining
• knowledge discovery from hidden patterns
• supports associations, constructing analytical models,
performing classification and prediction, and presenting the
mining results using visualization tools
Veri Madenciliği
Doç. Dr. Suat Özdemir
39/35
Kaynak
 http://www.1keydata.com/
 http://www.nytimes.com/2012/03/29/technology/new-usresearch-will-aim-at-flood-of-digital-data.html?_r=0
Veri Madenciliği
Doç. Dr. Suat Özdemir
40/35
Download