-

Adomd.Net

Adomd.Net .Net ile kullanılan Sql Server Analiz Servisleri sağlayıcısıdır. Analiz Servisleri işlemleri için özelleştirilmiş sınıfları (classes) ve arayüzleri (interface) vardır. Visual Basic .Net, C# ve J# dilleri ile kullanılabilir. Adomd.Net veri madenciliği istemci (client) uygulamalarının programlanmasını kolaylaştırmak için klasik Ado.Net arayüzlerinin yanında veri madenciliği ve Olap (Online Analytical Processing) nesneleri içerir.

Adomd.Net Uygulama Örneği

Önceki yazılarımda Dmx sorguları ile daha önceden oluşturulan madencilik modeli üzerinde sorgu çalıştırıp Birliktelik Kuralları çıkarılabileceği örnek sorgular ile anlatmıştım.

Bu bölümdeki uygulama örneğinde  “Microsoft Birliktelik Kuralları” konulu makalemde oluşturulan madencilik modeli üzerinde Dmx sorguları çalıştırılacak, Adomd.Net kullanılarak bir web sitesi üzerinde alınan ürün için nasıl  ürün tavsiyesinde bulunulabileceği öğrenilecektir.

Madencilik modeli üzerinde çalıştırılan Dmx sorgusu kullanılarak Adomd.Net Api yardımıyla bir stored procedure (Sql’de kullanılan veri tabanı objesi) oluşturulacaktır, devamında oluşturulan procedure web sitesi tarafında yine Adomd.Net  Api kullanılarak çağırılacaktır.

Stored Procedure oluşturmak üzere Visual Studio’dan Class Library tipinde proje eklenir. Projeye referans olarak msmgdsrv.dll (Microsoft.AnalysisServices.AdomdServer)eklenir. Bu referans Server Adomd.Net ile ilgili özellikleri barındırır. Başka bir sınıf ekleyip ana metodu Adomd.Net Api kullanılacak şekilde dizayn edilir, bu işlem için Microsoft.AnalysisServices.AdomdClient.dll referansı eklenir.Devamında Adomd.Net bağlantısı kurulup Dmx sorgusunun çalıştırılması gerekmektedir. Dmx sorgusu sonucunda erişilen sonuç kümesi verilen ürün ile alınabilecek ürünlerin listesini verir. İlk eklenen Class1 içerisinden Class2 içerisindeki ana metodun çağrısı Server Adomd.Net Api özellikleri kullanılarak yapılır, Class1’den Class2’deki metodu çağıran kod bloğu aşağıdaki gibidir.

adomd1

Class2 içerisinde Adomd.Net Api özellikleri kullanılarak bağlantı yapılır, Dmx sorgusu eklenir ve sonuç kümesine erişilir. Kod bloğu aşağıdaki gibidir;

adomd2

Hazırlanan kod derlendikten sonra projedeki bin klasörü içinde proje adı ile bir dll (Dynamic Link Library) oluşacaktır. Bu dll’in madencilik modelinin referanslarına eklenmesi gerekmektedir. Sql Server Management Studio’ya Server Type olarak “Analysis Services” seçilip bağlanıldığında, Analiz Servisleri kapsamında yapılan çalışmalar yayınlanmış ise bu kısıma proje olarak eklenmiş olduğu görülebilir. Oluşturulan madencilik modelinin olduğu proje bulunup oluşturulan dll bu projenin “Assemblies” tabı altına eklenmelidir. Sql Server Management Studio üzerinden yeni referans ekleme ekranı Şekilde1’de gösterildiği gibidir. “ThesisAssociationExample” ismindeki proje altında eklenen veri kaynakları, veri kümleri ve Eklenen Association ismindeki madencilik modeli Şekil 1’den görülebilir. Şekil 1’deki projenin “Assemblies”  tabına yeni bir referans eklenebilir, bu örnek için oluşturulan SSASSP ismindeki referans eklenir.

Şekil1:Yeni referans ekleme ekranı.

Şekil1:Yeni referans ekleme ekranı.

Bu uygulama ile elde edilmek istenen; GetAssociatedProd metoduna 1 adet ürün modeli parametresi verilerek o ürün ile satın alınabilecek ürünler bilgisine ulaşmaktır. Sql Server Management Studio üzerinden Dmx sorgusu kullanarak oluşturulan stored procedure’ü çağırma işlemi aşağıdaki gibi gerçekleştirilebilir.

CALL [SSASSP].GetAssociatedProd(“ML Headset”)

Bu çağrı sonucundaDmx sorguları ile yapılan örnek uygulamalarda olduğu gibi; ML Headset ürününü satın alan müşterinin bununla birlikte alma olasılığı olan ilk 3 ürün ve bunlara ait olasılık değerlerini vermektedir.

Buraya kadar olan kısımda web sitesi üzerinden öneri yapmak için gerekli alt yapı sağlamış oldu. Bu bölümde ise oluşturulan procedure’ü kullanarak alınan ürüne istinaden öneride bulunulacaktır.

Bu işlemi denemek üzere AdventureWorks veri tabanı kullanılarak oluşturulan Asp.Net projesindeki tasarım ve şablon kullanılarak öneri sisteminin simülasyonu yapılmıştır [2]. Web sitesi genel bir alışveriş sitesi mantığı ile yapılmıştır; ürünler listelenir, kullanıcı ürünü seçip sepetine atar ve daha sonra ödemeyi yapıp ürünü satın alır. Makale kapsamında alınan ürüne göre kullanıcıya alabileceği ürünler gösterilecektir.

Web sitesinin satın alınabilecek ürünleri gösterdiği basit ara yüzü Şekil 2’deki gibidir.

Şekil2: Web sitesinde ürün listesinin gösterildiği ekran.

Şekil2: Web sitesinde ürün listesinin gösterildiği ekran.

Birliktelik Kuralları’nın çıkarılıp web sitesi üzerinden öneride bulunma kısmında yine Adomd.Net Api kullanılarak bağlantılar oluşturulur, Dmx sorgusu ile oluşturulan procedure çağırılır, bu işlem için eklenen kod bloğu aşağıdaki gibidir:

adomd3

Ürünü sepete eklemek için Add to Cart (Sepete Ekle) denmelidir ve alışveriş sepetinin görülebildiği sayfaya yönlenir, bu sayfada seçilen ürün ile alınabilecek ürünler ve olasılık değerleri listelenir, alışveriş sepeti sayfası Şekil 3’deki gibidir, temsili olarak bu ürünler için tablo eklenmiştir. Çıkan sonuca göre Hitch Rack- 4 – Bike modelindeki aksesuarı alan bir müşterinin Sport- 100 ürününü de alma ihtimali %29 dur, bu yüzden bu ürün müşteriye tavsiye edilebilir.

Şekil3: Pazar sepetindeki ürünlerin ve önerilen ürünlerin gösterildiği web sayfası.

Şekil3: Pazar sepetindeki ürünlerin ve önerilen ürünlerin gösterildiği web sayfası.

Kaynaklar:

[1]   MacLennan, J., Tang, Z., Crivat, B., 2008, Programming Sql Server Data Mining, Data Mining with Microsoft SQL Server 2008, Chapter 16, Wiley Publishing Inc., ISBN: 978-0-470-27774-4, 487-580.

[2]    Mundy, J., Thornthwaite, W., Kimbal, R., 2011, Sql Server 2008 R2 and the Microsoft Business Intelligence Toolset, Wiley Publising Inc., Indianapolis, Indiana, ISBN-13:978-0470640388.

 

 

 

Your email address will not be published. Required fields are marked *

*