İş Zekası ve Veri Ambarı Sistemleri Murat Bilgin
Hakkımda Kıdemli Veri Ambarı Uzmanı / Generali Sigorta btkulubu.com Kurucu üye Kitap Yazarı muratbilgin86@hotmail.com http://www.muratbilgin.com Murat Bilgin @murat_bilgin
Ajanda Business Intelligence(BI) Nedir? Data Warehouse(DW) Nedir? OLTP vs. OLAP Dimensional Modelling (Ralph Kimball) ETL (Extract – Transform – Load) OLAP Küpleri Demo (ETL,SSAS OLAP Küpleri) xxxxx
Business Intelligence Nedir? 4/7/2017 7:59 PM Business Intelligence Nedir? © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Business Intelligence(BI) Nedir? BI, veriyi yararlı bilgi haline dönüştüren nesneler topluluğudur. BI süreçleri,verilerin toplanmasını,depolanmasını,analiz edilmesini ve son kullanıcının dataya erişmesini sağlayarak,kuruluşun daha iyi iş kararları almasına imkan sağlar. BI, kuruluşların gözle görülemeyen bilgilerini ortaya çıkararak organizasyonun gelişmesine imkan sağlar. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
BI Temel Hedefler İhtiyaç duyulan tüm veriye erişimi sağlamalı. Sadece önemli olan veriyi kullanıcıya göstermeli. Her zaman doğru değerleri göstermeli. BI sistemi,son kullanıcıların kararlar almak için başvuracağı bir adres haline gelmeli. Tarihsel veriyi de tutarak geleceğe yönelik tahminler yapabilmemizi sağlayabilmeli. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
BI Hakkında Bilinen Yanlışlar BI sistemlerinin geliştirilip son kullanıcıya sunulması yıllar sürer. Geliştirme sürecinin zaman ve maliyeti yüksek. BI sistemlerini sadece büyük bütçeli şirketler kullanabilir.Orta ve küçük boyutlu şirketlerde olması lüks. BI sistemlerinin, kuruluşları başarıya ulaştıracağına inanılmaması. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
BI Yaşam Döngüsü Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
DATA WAREHOUSE NEDİR? 4/7/2017 7:59 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Data Warehouse(DW) Kavramı DW, değerli verinin farklı bir ortamda konsolide edilmesiyle oluşan büyük çaplı bir veri deposudur. DW, veriyi kolay, hızlı ve doğru biçimde analiz etmemizi sağlar. DW= Karar Destek Sistemi (Decision Support System) Bir veri ambarı tasarımına başlamadan önce, veri ambarı mimarisinin hedefleri açık ve iyi anlaşılmış olması zorunludur. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
DW Tarihi Bill Inmom 1990’da “Building the Data Warehouse” isimli kitabını yayınlamıştır. Ralph Kimball 1996’da “Data Warehouse Toolkit” isimli kitap yayınlamıştır. 2002’de Inmom farklı kaynaklardan zaman varyantlı veri deposu oluşturma tekniklerini kitabında tanıtmıştır. 2002’de Ralph Kimball birden fazla veri kaynağından beslenen Data Mart’ı tanıtmıştır. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
Inmom DW Yaklaşımı Kimball DW Yaklaşımı İlişkisel : Veritabanındaki her veri, ilişkili olduğu veriye tam bağımlıdır. Tarihsel : Veritabanındaki her değişiklik tarihsel olarak izlenir ve kaydedilir.Böylece gelecekte tarihsel raporlar üretilebilir. Statik : Veritabanına yazılmış bir veri asla silinmez.Veri,gelecekteki raporlamalar için korunur. Entegre : Veri ambarı,kuruluşun tüm verilerini içeren bir entegrasyonla beslenmelidir. Kimball DW Yaklaşımı Veri ambarı,özellikle sorgu ve analiz için yapılandırılmış verilerin bir kopyasıdır. Veri her zaman boyutsal olarak tutulmalıdır. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
Dimensional Model Fact Table : İçerisinde sayısal değerler barındırarak etrafından toplanmış olan boyut tablolarının(dimension table) bağlandığı tablolardır. Dimension Table : Fact Table’da yer alan Foreign Key’leri temsil eden tablolardır. Product ID : Primary Key (Dimension) ID : Foreign Key (Fact) Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
Star Schema Merkezi bir Fact tablosuna direkt bağlı olan çok sayıda Dimension tablosunun oluşturduğu yıldız şeklindeki yapılardır. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
Snowflake Schema Merkezi bir Fact tablosuna bağlı olan çok sayıda dimension tablosuna bağlı, başka dimension tablolarının oluşturulduğu yapılardır. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
OLTP ve OLAP Sistemler 4/7/2017 7:59 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
OLTP (Online Transactional Process) OLTP = Anlık (Güncel) Veri. OLTP sistemlerde Insert, Update, Delete gibi DML (Data Manipulation Language) işlemleri sıklıkla gerçekleşmektedir. OLTP sistemlerinin modellenmesinde normalizasyon kurallarına dikkat edilip veri bütünlüğü (Primary-Foreign Key) sağlanmalıdır. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
OLAP (Online Analytical Process) OLAP, çok boyutlu verilere hızlı bir şekilde bütünleşik olarak erişilmesini sağlayan sistemlerdir. OLAP, OLTP sistemlerden beslenerek organizasyonun tamamı hakkında çok hızlı bir şekilde bilgi sağlanması amacıyla oluşturulmuş yapılardır. OLAP = Güncel olmayan (Eski) Veri. OLAP yapıları çok sık Insert ve Update işlemlerine tabii tutulmazlar. OLAP sistemlere belirli periyodlarda veri yükleme işlemi yapılır. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
OLTP vs OLAP OLTP OLAP Kullanım Şekli Operasyonel İşlemler OLTP OLAP Kullanım Şekli Operasyonel İşlemler Bilgisel İşlemler Yapılan İşlemler Harekete Dayalı Analize Dayalı Kullanıcılar Ofis Çalışanları Raporlama Çalışanları Fonksiyonlar Günlük İşlemler Dönemsel İşlemler Database Dizaynı Normalizasyona göre Star - Snowflake/Nesnesel Görünüm Detaylı /Düz ilişkiler Özet / Çok Boyutlu Erişim Okuma / Yazma Genelde Sadece Okuma Database Büyüklüğü 100 MB – GB 100 GB - TB Kullanıcı Sayısı 1000’ler Düzeyinde 10’lar Düzeyinde Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
ETL ve OLAP Sistemler 4/7/2017 7:59 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
ETL (Extract-Transform-Load) ETL, çeşitli veri kaynaklarından hedef veri tabanımız arasında iş akışına ve ihtiyaçlarımıza uygun dataların ayrıştırıldığı, dönüşüm işlemlerinin yapıldığı bir süreçtir. ETL paketleri ise iş zekası mantığının esas alarak oluşturulan paralel çalışan uygulamalar bütünüdür. Extract : ETL sürecinin ilk adımı değişik kaynaklardan(Flat File,Excel,İlişkisel Veri Tabanları) veri çekmektir. Transform : Datalar üzerinde sıralama, toplama, birleştirme, gruplama, ihtiyacımıza uygun hesaplanmış alanlar yaratma, veri doğrulama, filtreleme gibi dönüştürme işlemleri yapılır. Load : Dönüştürülen veri hedefe (DW-Data Mart) aktarılır. Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
OLAP Küpleri Veri Ambarı tablosu : Multi-Dimensional (OLAP) : date 2 Talking points: The code page of a (var)char value is determined by the collation associated with the value. For example, the collation SQL_Latin1_General_CP1_CI_AS has the associated code page 1252. -- all supported collations for (var)char columns in memory-optimized tables select * from sys.fn_helpcollations() where collationproperty(name, 'codepage') = 1252; Indexes can only be created on string columns if they use a BIN2 collation. The LastName variable uses BIN2 collation. FirstName uses the database default, which is CI_AS (case-insensitive, accent-sensitive). select * from sys.fn_helpcollations() where name like '%BIN2'
4/7/2017 7:59 PM DEMO © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.