در این مقاله قصد داریم روش ایجاد یک لغت نامه برای دیتا مدل خود بوسیله کوئری های DMV در SSAS Tabular و چرایی آن را شرح دهیم.
· چرا باید لغت نامه دیتایی داشته باشیم؟
هر چقدر مدل ما پیچیده تر می شود، ما به تهیه اسناد بیشتری درباره مدل خود نیاز داریم.
هر چقدر Measure ها و فرمول های پیچیده تر باشند، تماس ها و سوالات از طرف کاربران بیشتر می شود. و این فرایند بسیار وقت گیر و حوصله سر بر می شود.
بهترین راه برای کم کردین این تماس های پشتیبانی، این است که گزارشات در شفاف ترین حالت باشند.
اینکه تعداد Measure ها زیاد و بیاد آوردن کاربردهای آن ها بسیار سخت می شود موضوع متداولی است. چه برای توسعه دهندگان و چه کاربران.
یک راه حل این است که یک سند توصیفی درباره آن ها به توسعه دهندگان و کاربران ارائه شود. ولی این اسناد هم مانند خیل دیگر اسناد در یک فولدر بایگانی و بلا استفاده می مانند. به جای این کار بیهوده بهتر است یک دیکشنری داخل خود گزارش ایجاد کنیم.
برای تعداد زیاد Measure ها کار بسیار طاقت فرسایی می شود که تک تک توصیف ارائه کنیم. اغلب پر کاربرد ترین ها یا مبهم ترین ها را توصیف می کنیم.
· دیتا دیکشنری چیست؟
به بیان ساده نوعی جدول مرجع برای Measure ها وتوصیفات آنهاست.
این جدول بایستی در یک صفحه خاص از گزارش برای کاربر یا توسعه دهنده قرار داده شود. تا براحتی در مواقع نیاز به آن رجوع کنند.
· کوئری DMV چیست؟ Analysis Services Dynamic Management Views
کوئری هایی هستند درباره اجزائ داخل مدل تبولار، عملیات سرور و سلامت سرور اطلاعات ارائه می کنند.
· روش ایجاد این کوئری ها برای دیتا دیکشنری
در ابتدا وقتی در حال توسعه مدل خود هستیم باید بدانیم که با راست کلیک بر روی Measure و گزینه describtion می توانیم توضیحاتی برای کاربران و توسعه دهندگان دیگر اضافه کنیم (زمان توسعه Measure ها بهترین زمان است).
برای ایجاد این کوئری ها ابتدا باید یک کانکشن با مدل تبولار ایجاد کرده و از جستجوگر اسکیما TMSCHEMA_MEASURES که اطلاعاتی از اجزای Measure داخل هر جدول ارایه می کند استفاده می کنیم.
از قسمت Get Data روی گزینه SQL Server Analysis Services database را انتخاب می کنیم.
بعد از تنظیم ادرس سرور و دیتابیس کوئری زیر را اضافه می کنیم.
SELECT [Name]
, [Expression]
, [IsHidden]
, [DisplayFolder]
, [Description]
FROM $SYSTEM.TMSCHEMA_MEASURES
خروجی به شکل زیر می شود.
اگر بخواهیم همه اطلاعات Measure ها را استخراج کنیم کوئری زیر را میزنیم.
SELECT *
FROM $SYSTEM.TMSCHEMA_MEASURES
قانون طلایی برای داشتن دیتا دیکشنری شفاف به شرح زیر است.
· مخفی کردن Measure های hidden
· نشان دادن ستون های مرتبط
· عدم نمایش فرمول های DAX
· سازماندهی Measure ها بر اساس فولدر برای دسترسی بهتر.
· اعتبار سنجی توصیف هر Measure با کاربر نهایی
· ایجاد دو Slicer یکی برای Folder ها و Measure Name
· اطمینان از فعال کردن Search Box برای slicer ها برای راحتی در جستجوی نام Measure ها.
برای بهبود تجربه کاربری می توانیم یک Action Button برای هر صفحه از گزارش بگذاریم که از آن صفحه مستقیم به صفه دیکشنری بیاید.
و به همین صورت دکمه Back برای برگشت به صفحه قبلی گزارش.
جمع بندی:
· این دیکشنری ها به ازای هر مدل باید جداگانه ایجاد شود
· بهتر است نظر کاربران نهایی در این توصیفات دخیل شود.
· این مدل فقط در SSAS Model کار می کند.