جلسه یازدهم – 03/09/93 MDX

جلسه یازدهم – 03/09/93

یک راه برای اجرای Package های SSIS استفاده از SQL Agent می باشد. کافی است تا در تعریف STEP های JOB نوع را  SQL Server Integration services package تعیین نموده و از بین روش های انتخاب package مثلا File System انتخاب شده و به فایل dtsx اشاره کنیم.

توجه: به طور پیش فرض برای اجرای  Step از SQL Agent Service Account استفاده می کنیم. حال آنکه در محیط SSIS از کاربر Login کننده به ویندوز استفاده می شود. بنابراین لازم است درصورتیکه بسته ای در محیط Data Tools اجرا می شود اما در بخش Step به مشکل برمی خورد به این نکته توجه شود.

Supported Languages in SSAS 2012, 2014

MDX (multidimensional expressions)

زبانی برای پرس و جوهای چندبعدی

DMX (data mining extensions)

برای داده کاوی

DAX (data analysis expressions)

برای کار با بانکهای اطلاعاتی Tabular

XMLA (xml for analysis)

برای انجام کارهای  Administration

AMO (analysis service management objects)

برای کار با اشیاء حوزه OLAP

ASSL(analysis services scripting languages)

زبانی برای تعامل با عملیات Hand Shaking بین سایر ابزارها و SSAS

 

دستورات MDX

Tuple: یک چندتایی مرتب است که به فضای خاصی از مکعب یا به مقادیر موجود در فضایی خاص از مکعب اشاره دارد.

شرح

مثال

اشاره به یک Measure

 [Measures].[Sales Amount]

اشاره به اعضای یک Attribute از یک بعد

[Dim Product].[Product category Key].MEMBERS

Select [Measures].[Sales Amount] on Columns,

       [Dim Product].[Product category Key].MEMBERS on Rows

From SALES

پرس و جوی فوق به معنای آن است که

  • گروه­های کالا (شامل تمامی گروه ها – Members) در سطر قرار گیرد

  • و مقادیر Sales Amount در ستون قرار گیرد

 

Sales Amount

All

29358677.2206758

Accessories

700759.959999831

Bikes

28318144.6506953

Clothing

339772.60999997

Components

(null)

سئوال: اگر بخواهیم در سطر تنها جمع مقادیر measure بیاید و نیازی به سطر نداشته باشیم چه باید کرد؟

پاسخ: کافی است تا در دستور به ROWS اشاره نکنیم:

Select [Measures].[Sales Amount] on Columns

From SALES

Sales Amount

29358677.2206758

سئوال: اگر بخواهیم به غیر از Measure با عنوان Sales Amount، measure های دیگر مربوط به Sales را بیاوریم چه باید کرد؟

پاسخ: کافی است تا measure ها مورد نظر را در بخش columns با ویرگول از هم جدا نماییم. باید به خاطر داشته باشیم که بخش columns باید نمایشگر یک مجموعه (Tuple) باشد. به این ترتیب کافی است تا مقدار زیر را در بخش columns قرار دهیم:

{[Measures].[Product Standard Cost], [Measures].[Sales Amount]}

بنابراین

SELECT {[Measures].[Product Standard Cost], [Measures].[Sales Amount]} ON COLUMNS,

[Dim Product].[Product category Key].MEMBERS on Rows

FROM [sales]

و خروجی جدول زیر خواهد بود:

 

Product Standard Cost

Sales Amount

All

17277793.5756972

29358677.2206758

Accessories

262085.39189997

700759.959999831

Bikes

16812348.1500986

28318144.6506953

Clothing

203360.033700009

339772.60999997

Components

(null)

(null)

 

سئوال: اگر بخواهیم تنها مقدار جمع تمامی ستونها یعنی ALL را در سطر نشان دهیم چکار باید کرد؟

پاسخ: باید در پرس و جو فقط به سطر ALL اشاره کنیم.

Select [Measures].[Sales Amount] on Columns,

       [Dim Product].[Product category Key].[All] on Rows

From SALES

سئوال: اگر بخواهیم سطر ALL را نتیجه کار حذف کنیم چکار باید کرد؟

پاسخ: باید در پرس و جو سطر ALL را از مجموعه خارج نماییم. به خاطر داشته باشید هنگامیکه بین عملیاتی مانند اضافه، کسر انجام ­شود، ماهیت خروجی نیز مجموعه خواهد و نیازی به استفاده از ‍‌{}   نمی باشد.

Select [Measures].[Sales Amount] on Columns,

        [Dim Product].[Product category Key].MEMBERS - [Dim Product].[Product category Key].[All] on Rows

From SALES

 

 

Product Standard Cost

Sales Amount

Accessories

262085.39189997

700759.959999831

Bikes

16812348.1500986

28318144.6506953

Clothing

203360.033700009

339772.60999997

Components

(null)

(null)

 

سئوال: آیا می توان سطر یا ستونی که تمامی مقادیر آن null هستند را از نتیجه حذف کرد؟

پاسخ: کافی است تا کل مجموعه خروجی را در تابع nonempty قرار دهیم.

Select [Measures].[Sales Amount] on Columns,

nonempty( [Dim Product].[Product category Key].MEMBERS - [Dim Product].[Product category key].[All]) on Rows

From SALES

 

 

Sales Amount

All

29358677.2206758

Accessories

700759.959999831

Bikes

28318144.6506953

Clothing

339772.60999997

 

سئوال: اگر بخواهیم در سطر تنها مقادیر مرتبط با Bikes را نمایش دهیم چه باید کرد؟

پاسخ: پس از اشاره به بعد و پس از آن به Attribute باید به Bikes اشاره کنیم که در اینجا Bikes، MemberName است:

Select [Measures].[Sales Amount] on Columns,

       [Dim Product].[Product category Key].[Bikes] on Rows

From SALES

همینطور می­توان از MemberKey نیز استفاده کرد. MemberKey همان کلید Bikes در جدول DimProductCategory است:

Select [Measures].[Sales Amount] on Columns,

       [Dim Product].[Product category Key].&[1] on Rows

From SALES

سئوال: اگر بخواهیم در سطر تنها به مقادیر مرتبط با Bikes و Clothing اشاره شود چه باید کرد؟

پاسخ: زمانی که می خواستیم دو measure اشاره کنیم چه می کردیم؟! اینجا هم همانطور است. به علت آنکه دو ویژگی با ویرگول از هم جدا شده اند لازم است برای اعلام مجموعه بودن آنها از {} استفاده نماییم.

Select [Measures].[Sales Amount] on Columns,

       {[Dim Product].[Product category Key].[Bikes], [Dim Product].[Product category Key].[Clothing]} on Rows

From SALES

 

 

Sales Amount

Bikes

28318144.6506953

Clothing

339772.60999997

سئوال: اگر بخواهیم مبلغ فروش (در ستون) از سال 2005 تا 2008 (در سطر) را استخراج کنیم چکار باید کرد؟

پاسخ: کافی است تا با استفاده از علامت : در سطر، طیف اطلاعاتی را مشخص کنیم. همانند سئوال بالا لازم است تا برای اعلام مجموعه بودن از {} استفاده نماییم.

select [Measures].[Sales Amount] on columns,

       {[Order Date].[Calendar Year].&[2005]:[Order Date].[Calendar Year].&[2007]} on rows

from [Sales]

سئوال: خروجی گزاره زیر چه چیست؟

select nonempty([Dim Product].[Product Category Key].members - [Dim Product].[Product Category Key].[All]) on columns,

       nonempty(

       (

              [Order Date].[Calendar Year].members - [Order Date].[Calendar Year].[All])

              *

              ([Dim Sales Territory].[Sales Territory Group].members - [Dim Sales Territory].[Sales Territory Group].[All])

       ) on rows

from [Sales]

پاسخ:

  • در ستون، گروه های کالاهای دارای مقدار (غیر null) بجز سرجمع (All)  را میاورد.

  • در سطر، ترکیبی (*) از دو ستون سال و منطقه فروش نمایش داده می­شود.

 

MDX
نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.

 

 

Accessories

Bikes

Clothing

2005

Europe

(null)

709947.201600001

(null)

2005

North America

(null)

1247379.2572

(null)

2005

Pacific

(null)

1309047.1978

(null)

2006

Europe

(null)

1627759.7146

(null)

2006

North America

(null)

2748298.92830003

(null)

2006

Pacific

(null)

2154284.88349999

(null)

2007

Europe

84458.1600000009

3262529.31720011

35991.7900000004

2007

North America

151870.080000003

3148783.8174001

73642.9200000002

2007

Pacific

57381.4700000003