Home / İş Zekası / Microsoft SQL Server Analysis Services (SSAS) – 2

Microsoft SQL Server Analysis Services (SSAS) – 2

Hierarchy

Kullanıcılar küp üzerinde analiz yaparken daha hızlı ve kolay bir şekilde ayrıntıya inip(drill down) daha genele çıkabilmeleri(drill up) için dimensionlarda hiyerarşiler tanımlanmalıdır. Bu zorunlu olmamakla birlikte kullanıcının işini kolaylaştıracak ve hızlandıracaktır. Örneğin kullanıcı tarihe göre sorgu yaparken, yıl, çeyrek, ay, gün attribute lerini tek tek küp üzerine sürükleyip bırakacağına eğer böyle bir hiyerarşi varsa sadece onu sürükleyip bırakabilir. Ayrıca analiz servisi de aggregationları hesaplarken gün toplamlarını hesaplarken en alttaki verileri kullanır, günleri hesapladıktan sonra, ay toplamlarını hesaplarken en alttaki verileri değil de gün toplamlarını toplayarak hesaplamasını daha hızlı yapacaktır, aynı şekilde çeyrek hesaplamalarında ay ve yıl hesaplamalarında da çeyrek toplamlarını alacaktır.

Multidimensional Expression (MDX)

Multidimensional veriler(Cube, KPI vs) üzerinde sorgulama yapmak için kullanılır.

--Default measurenin toplam değeri
select 
from [Adventure Works DW]

--Tüm ürünlerin, tüm zamanlarda vs satış toplamı
select [Measures].[Sales Amount] on columns
from [Adventure Works DW]

--484 no lu ürünün satış toplamı
select ([Measures].[Sales Amount], 
[Dim Product].[Product Key].&[484]) on columns
from [Adventure Works DW]

--484 no lu ürünün 2003 yılındaki satış toplamı
select ([Measures].[Sales Amount], 
[Dim Product].[Product Key].&[484]) on columns,
[Due Date].[Year].&[2003] on rows
from [Adventure Works DW]


--484 no lu ürünün her bir yıldaki satış toplamı
select ([Measures].[Sales Amount], 
[Dim Product].[Product Key].&[484]) on columns,
[Due Date].[Year].members on rows
from [Adventure Works DW]


--Tüm yıllarda, tüm ürünlerin satış toplamları
select [Due Date].[Year].members on columns,
[Dim Product].[Product Key].Members on rows
from [Adventure Works DW]
where [Measures].[Sales Amount]

--Tüm yıllarda, tüm ürünlerin satış toplamları
--EKSEN ADI YERINE NUMARASI VERILEBILIR
select [Due Date].[Year].members on 0,
[Dim Product].[Product Key].Members on 1
from [Adventure Works DW]
where [Measures].[Sales Amount]

--Önce columns(0. eksen), sonra rows(1. eksen), sonra 2. eksen vs 
--verilmelidir. Ancak sorguda bunların yukarıda, aşağıda 
--yazılmasının önemi yoktur.

--All memberinin görünmesi istenmiyorsa sadece 'Children' alınabilir
--Tüm yıllarda, tüm ürünlerin satış toplamları
--Urun topmaları olsun; 
--Ancak yıl genel toplamları olmasın
select [Due Date].[Year].children on 0,
[Dim Product].[Product Key].Members on 1
from [Adventure Works DW]
where [Measures].[Sales Amount]


--Yıllara göre Nakliye toplamları
select [Due Date].[Year].children on 0
from [Adventure Works DW]
where [Measures].[Freight]

--Tüm yılların Nakliye toplamları
select [Measures].[Freight] on 0
from [Adventure Works DW]

--veya
select [Due Date].[Year].[All] on 0
from [Adventure Works DW]
where [Measures].[Freight]

--Müşteri ve Promosyon tipi bazında satış adetleri
select [Dim Customer].[Customer Name].members on 1,
[Dim Promotion].[Type].Members on 0
from [Adventure Works DW]
where [Measures].[Order Quantity]

--2003 yılı için
--Müşteri ve Promosyon tipi bazında satış adetleri
select ([Measures].[Order Quantity], 
[Dim Promotion].[Type].Members) on 0,
([Dim Customer].[Customer Name].members) on 1
from [Adventure Works DW]
where [Due Date].[Year].&[2003]

--2003 yılı için
--Müşteri ve Promosyon tipi bazında satış adetleri ve indirim tutarları
select {([Measures].[Order Quantity], 
[Dim Promotion].[Type].Members), 
([Measures].[Discount Amount], 
[Dim Promotion].[Type].Members)} on 0,
([Dim Customer].[Customer Name].members) on 1
from [Adventure Works DW]
where [Due Date].[Year].&[2003]

--Setlerde Dimensionlar aynı olmalı, farklı olamaz
select {([Measures].[Order Quantity], 
[Dim Promotion].[Type].Members), 
([Measures].[Discount Amount], 
[Dim Currency].[Currency Key].Members)} on 0,
([Dim Customer].[Customer Name].members) on 1
from [Adventure Works DW]
where [Due Date].[Year].&[2003]
--Hata 
--Two sets specified in the  function have different dimensionality.


--Tüm yıllarda, tüm ürünlerin satış adetleri ve toplamları
select {([Measures].[Sales Amount], [Due Date].[Year].members), 
([Measures].[Order Quantity], [Due Date].[Year].members)} on columns,
[Dim Product].[Product Key].Members on rows
from [Adventure Works DW]

--Müşterinin cinsiyeti, promosyon tipi ve yıllara göre
--satış adetleri, sadece Amerika için
--Kolonlarda müşteri cinsiyeti ve promosyon tipi,
--Satırlarda yıllar olacak,
--Filtre Sales Territory. Country. Amerika
select crossjoin([Dim Customer].[Gender].[Gender], 
[Dim Promotion].[Type].members) on 0,
[Due Date].[Year].[Year].Members on 1
from [Adventure Works DW]
where [Dim Sales Territory].[Country].&[United States]

--veya
select ([Dim Customer].[Gender].[Gender] *
[Dim Promotion].[Type].members) on 0,
[Due Date].[Year].[Year].Members on 1
from [Adventure Works DW]
where [Dim Sales Territory].[Country].&[United States]


--Yıllara ve yılların aylarına göre
--ülkeler bazında satış adetleri 
select ([Due Date].[Year].CHILDREN *
			 [Due Date].[Month Name].CHILDREN) on 0,
[Dim Sales Territory].[Country].CHILDREN on 1
from [Adventure Works DW]
where [Measures].[Order Quantity]

Calculations

Küplere çalışma zamanında eklenen öğelerdir. Öğeler MDX Expressionu olarak eklenir. Cube tanımında Calculations sekmesinde Script Organizer penceresinde sağ mouse tuşuyla ekleme yapılır.

Calculated Members

Küplere, çalışma zamanında hesaplanmış measure ve dimension memberleri eklenebilir. Bunlara Calculated Members denir. Kar için Calculated Member eklemek için

Kar oranı için Calculated Member eklemek için

Named Sets

Küp analiz edilirken veya MDX sorgularında sürekli kullanılacak bir takım setler küp tanımı içerisine kaydedilebilir.

Kontrol etmek için

select BayanAmerika2003 on 0,
[Dim Product].[Color].Members on 1
from [Adventure Works DW]
where [Measures].[Order Quantity]

Actions

Küp verilerini kullanarak ayrıntı göstermek ve dış sistemlerle işbirliği yapmak için bir takım işlemler eklenebilir. Cube Structure de Actions sekmesinden yapılır

Drillthrough action

Özet veriyi oluşturan alttaki ayrıntılı veriyi görüntülemek için kullanılır.

Reporting Action

İlişkili bir raporu açmak için kullanılır

URL Action

Seçilen öge ile ilgili bir URL açmak için kullanılabilir.

KPI(Key Performance Indicatior)(Temel Performans Göstergesi) oluşturmak

Kar oranınında %100 kar oranı hedeflenmektedir. Bu oran geçildiyse hedefe erişilmiş demektir. Bu oranın altında da çeşitli derecelerde başarısızlık söz konusudur. Bunu bir hız göstergesi(gauge) şeklinde gösteren bir KPI yapalım.

Aggregations

SSAS küpleri Aggregation dizaynı yapılana herhangi bir aggregation içermez; ancak yapı buna gore tasarlandığı için yine de performansta bir sıkıntı yaşanmaz. Ancak küp verisi bir kaç gigabyte boyutuna eriştikten sonra Aggregationlar eklenmelidir. Bunun için Aggregations sekmesinde gerekli partition sağ mouse tuşuyla tıklanarak aggregation ya “Design Aggregation” veya “Usage Based Optimization”seçilerek Aggregation Design Wizard çalıştırılmalı veya “Assign Aggregation Design” ile daha önce dizayn edilmiş bir aggregation dizaynı partitiona atanmalıdır.

Design Aggregation

Bu durumda dimension, dimension attribute ler ve satır sayılarına bakarak design otomatik olarak yapılacaktır.

Perspectives

Kullanıcıların küpe erişiminde kolaylık sağlamak için bazı kullanıcıların kullanmayacakları measure ve dimension/dimension attribute lerinin görünmemesi sağlanabilir. Perspektiflerin yetkilendirmeyle ilgisi yoktur.

Perspektifler kullanıcılara birer küpmüş gibi görünür.

Translations

Küp yapsının(Measure ve Dimension(Dimension attributeleri ) çeşitli dillere çevrilmesi için kullanılır.

Güvenlik ve Yetkilendirme

Oluşturulan tüm küpler ve küplerin içindeki nesneler ve boyutlar vs için kullanıcılara yetkiler verilmelidir. Yetkiler roller aracılığıyla verilir. Bunun için Solution Explorer ekranında Roles sağ mouse tuşuyle tıklanarak yeni rol eklenmelidir.

Daha sonra role yapılacak üyeler Membership sekmesinden eklenmelidir.

Artık veritabanındaki küplere ve küp yapısındaki nesnelere yetkiler verilebilir.

Datamining

Verinin içinde bulunan örüntüleri(patterns), ilişkileri, gruplamaları vs birtakım karmaşık matematiksel hesaplamalarla bulan OLAP yapılarıdır.

Mining işlemi için veri hazırlandıktan sonra mining yapısı hazırlamak için “Mining structures” sağ tıklanarak “Data Mining Wizard” başlatılmalıdır. İlk ekranda ming için veri kaynağı olarak var olan bir veri küpü mü, yoksa ilişkisel bir veritabanı veya veri ambarının mı kullanılacağı cevaplanır.

Bundan sonra istenen algoritma seçilmelidir.

İlgili veri kaynağı seçilip,

Mining için kullanılacak tablo veya görünüm case tablosu olarak seçilmelidir.

Ardından tablodaki PK kolonu Key olarak seçilip, hangi kolonların analiz için kullanılacağı Input olarak seçilmeli ve bu seçilen verilerden neyin tahmin edileceği Prediction olarak seçilmelidir.

Daha sonra bu seçilmiş kolonların içerik tipleri ve veri tipleri seçilmelidir. İçerik tipleri olarak Pk kolonu Key, Cinsiyet, Evlilik durumu, çocuk sayısı gibi tek tek ele alınabilecek veya seçenek şeklindeki veriler Discrete, Yıllık Gelir, Alım Tutarı vb gibi tek tek ele alınamayacak genellikle sayısal veriler Continuous olarak seçilmelidir.

Ardından tablodaki verilerin % kaçının training set ve testing set olarak kullanılacağı seçilmelidir. Training set verinin ne kadarının tahmin için kullanılacağını testing set te bu tahminlerin test edilmesi için kullanılır. Varsayılanı olduğu gibi bırakalım.

Artık modele(mining structure name) ve modelde kullanılan algoritmaya(mining model name) kullanılan bir isim vererek kaydedebiliriz. Daha sonra modele başka algoritmalar da eklenebilir. Bu ekranda istenirse model görüntülenirken sonucu oluşturan satırların görüntülenebilmesi de “Enable Drilldown” seçilerek kabul edilebilir.

Mining Model Viewer de kullanılan algoritmaya göre sonuçlar bize gösterilecektir. Biz “Microsoft Decision Tree” kullandığımız için bisiklet alımında en öncelikli desenleri bir karar ağacı yapısında döndürmektedir. Buradan görüldüğü kadarıyla en önemli etken Yaş(Age) olmaktadır. Daha sonra Çocuk Sayısı(Total Children) ve Araba Sayısı(NumberCars Owned) gelmektedir.

Mining Accuracy Chart ekranında eğer modele birden fazla algoritma eklendiyse bunların hangisinin daha doğru sonuç verdiğini görebiliriz.

Mining Model Prediction ekranından Mining modeled kullanılan veriye benzer bir verinin elimizde olması durumunda bu veri için tahminde bulunulmasını isteyebiliriz. Örneğin elimizde Prospective Buyer tablosunda olası Bisiklet alacak müşterilere ait bilgiler olsun. Yukarıdaki elde edilen veriye göre bu müşterilerin hangilerinin bisiklet alabileceğini tahmin edelim. Bu müşterilere ulaşıp bisiklet pazarlaması yapılabilecektir. Bunun için “Select case tables” tıklanarak “Prospective buyer” tablosunu ekleyelim.

Burada aynı isimlerdeki kolonlar arasında doğrudan ilişkiler oluşmuştur.

Adı aynı olmayan kolonlar arasındaki ilişkiyi kurmak için .herhangi yerdeykin sağ mouse tuşu “Modify Connections” u seçelim. Gelen ekranda model ile tahmin edilecek veri arasındaki ilişkileri kuralım “Bike Buyer” kolonunu Unknown yapalım.

Ok deyip kapattıktan sonra. Alttaki Source ekranındaki ilk satıra tıklayıp “Prediction Function” seçip yanında ”PredictProbability” I ve Criteria/Argument ten Modeldeki Bike Buyer is seçelim.

Yine Source den MOdeli ve BikeBuyer I seçip, Criteria/Argument “=1” seçelim ve alttaki 3 satırda da ProspectiveBuyer tablosundan ProspectiveBuyerKey, FirstName ve LastName I seçelim.

Artık herhangi yerdeykin sağ mouse tuşu “Query” I seçtiğimizde bize tahmini allıcıları gösterecektir.

SSAS TABULAR MODEL

Bu modelde Visual Studio ile SSAS Tabular projeler yapıp, projede veri excelde pivot tablolarla analiz edilmeye hazır hale getirilir. Oldukça basit bir yapıdır ve basit bir bilgi işlem ekibi ve altyapısı gerektirir. Hatta Excelde powerpivotta yapılmış veri yapısı buraya import edilebilir. Veri memory de tutulduğu için çok hızlı çalışır.

Multi Dimensional model çok yetenekli ancak karmaşıktır. İşi yapacak ve sürdürecek bir ekibe ihtiyaç duyar. Tabular model daha kolaydır ve ekibe ihtiyaç olmayabilir.

Visual Studio da Yeni proje açılırken “Analysis Services Tabular Project” projesi seçilir. Proje açılınca  “Solution Explorer” de “Model.bim” dosyası çift tıklanır. Bu durumda VS da menüye Model, Table ve Column menüleri de gelecektir. Çalışma öncelikle Model menüsünde “Imort from Data Source” seçilerek analiz edilecek verinin projeye alınmasıyla başlar.

Ardında Credential seçilir.

Daha sonra birden fazla tablodan veri alacağımız için ilk seçenek seçilir.

Ardından istenen tablolar seçilerek

İstenirse burada aktarılacak veriye filtreler de uygulanabilir. Kaynaktan veriler projeye aktarılmaya başlamak için Finish tıklanır.

Veri aktarımı bittikten sonra istenirse sol alt köşeden diyagram görünümü seçilerek tablolar arasında veritabanından alınan ilişkiler düzenlenebilir veya yoksa eklenebilir.

Ardından sol alt köşeden Grid görünümü seçilerek tablolar ve verileri görüntülenebilir. Genellikle fact tablosu seçilerek alttaki hesaplanmış veri alanına tıklanarak Measureler oluşturulur. Bunun için ilgili kolonun altına gidilerek araç çubuğundan aggregation işlemi seçilir.

Bu şekilde tüm measureler oluşturulur.

Ardından Model menüsünden Process edilir. Model menüsünde dimensional model de n aşina olduğumuz diğer bir takım kavramları da görebiliriz.

Ardından Projenin property lerine girilerek nereye deploy edileceği vs ayarlanır.

Ardından Proje adı üzerinde sağ mouse tuşu tıklanarak proje analiz servisine Deploy edilir. Artık Excel den veya başka bir araçtan bu veritabanına bağlanılarak pivot tablolar oluşturulabilir. Aslında bu yapı Powerpivot yapısına çok benzemektedir. Zaten altta kullanılan engine aynıdır ve kullanılan dil her ikisinde de DAX tır. İşlemler powerpivotta da büyük ölçüde aynı şekilde yapılmaktadır. Zaten Tabular model powerpivotta analiz edilebilir veya powerpivot yapısı da tabular model projesi olarak import edilebilir. Tabular model powerpivot un datasının server e konulmuş hali gibidir.

Rate this post

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Mualla Premium Chocolate