Linked Server ile SSAS Küp’ten SQL’e Veri Aktarımı

Merhaba,

Bugün sizlere SQL Server üzerinde Linked Server ile bir sorgu çalıştırarak nasıl SSAS OLAP küplerinden veri çekebileceğimizi anlatmaya çalışacağım.

Bunun için öncelikle SQL Server üzerinde küpümüzün bulunduğu SSAS sunucusunu aşağıdaki gibi Linked Server olarak tanımlayalım.

Data source bölümüne aşağıdaki connection string’i yazalım.

Data Source=localhost;PROVIDER=MSOLAP;Impersonation Level=Impersonate;

Security kısmını bu şekilde bırakalım.

Artık SQL Server üzerinde SSAS küpümüzün bağlı olduğu Linked Server’ımız hazır.

Şimdi sıra daha önce hazırladığımız mdx sorgusunu SQL Server üzerinde çalıştırmaya geldi.

Bunu da aşağıdaki gibi OPENQUERY içinde mdx sorgumuzu yazarak kullanabilir ve istediğimiz tabloya verileri aktarabiliriz.

INSERT INTO TEST
SELECT
[[PERIOD]].[Month]].[Month]].[MEMBER_CAPTION]]] AS MONTH_DESC,
[[PERIOD]].[Week]].[Week]].[MEMBER_CAPTION]]] AS WEEK_DESC,
[[GEOGRAPHY]].[REGIONS]].[REGIONS]].[MEMBER_CAPTION]]] AS REGION_DESC,
[[GEOGRAPHY]].[TERRITORIES]].[TERRITORIES]].[MEMBER_CAPTION]]] AS BRICK_DESC,
[[PRODUCT]].[PRODUCTS]].[PRODUCTS]].[MEMBER_CAPTION]]] AS PRODUCT_DESC,
[[Measures]].[UNITS REPORT]]] AS UNITS_REPORT,
CAST([[Measures]].[VALUES REPORT]]] AS float) AS VALUES_REPORT
FROM OPENQUERY(SSAS_SERVER,
'with set [dim0_select_members] as ''{[PERIOD].[Month].[Month].AllMembers}''
set [dim1_select_members] as ''{[PERIOD].[Week].[Week].AllMembers}''
set [dim2_select_members] as ''{[GEOGRAPHY].[REGIONS].[REGIONS].AllMembers}''
set [dim3_select_members] as ''{[GEOGRAPHY].[TERRITORIES].[TERRITORIES].AllMembers}''
set [dim4_select_members] as ''{[PRODUCT].[PRODUCTS].[PRODUCTS].AllMembers}''
select {[Measures].[UNITS REPORT], [Measures].[VALUES REPORT]} on columns,
non empty CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN([dim0_select_members], [dim1_select_members]), [dim2_select_members]), [dim3_select_members]), [dim4_select_members]) on rows
from [SSAS_CUBE]')

SQL kodumunuz içindeki yeşil kısma daha önce SSAS tarafında hazırladığımız mdx sorgunusu yerleştiriyor ve OPENQUERY ile küpten verileri alıyoruz.

İşlem burada tamamlanıyor 🙂

Kolay gelsin

Bir Cevap Yazın