جلسه پانزدهم – 19/09/93
سئوال من: چگونه می توان درصد مشتریان (یا فاکتورهای) خریدار گروه کالای دوچرخه با بدست آورد. به این نکته توجه کنید که ممکن است در یک فاکتور بیش از یک کالا از گروه دوچرخه وجود داشته باشد که در این روش محاسبه باید یکبار برای آن مشتری (یا فاکتور) محاسبه گردد.
Deployment - استقرار
فرآیندی است که طی آن ساختارها و طراحی های انجام شده برروی یک سرور SSAS پیاده سازی می گردد.
مراحل استقرار :
عملیات Build/Rebuild
طی این فرآیند فایلی با ساختار XML و با پسوند .ASDatabase در شاخه BIN پروژهه ایجاد می شود که شامل ساختارها و طراحی های انجام شده است. بنابراین کاری که visual studio در build/Rebuild انجام می دهد صرفا تولید این فایل XML است.
در Build فقط تغییرات اضافه می شوند و در Rebuild فایل مذکور حذف و براساس ساختارها و طراحی انجام شده تولید می شود.
انجام Deploy
روش اول: از طریق VS
روش دوم: در Programs > SQL Server > Analysis Services و با استفاده از ابزار Deployment Wizard
معرفی فایل .ASDatabase
معرفی نام سرور و نام بانک اطلاعات مقصد
تنظیمات استقرار
Partition: محتویات چگونه تولید شود
Security: آیا لایه امنیت پیاده سازی شود
تنظیمات جزئی تر فرایند استقرار: مثل اطلاعات مربوط به اتصال به منابع داده (impersonation user)
تنظیمات پردازش پس از استقرار – Process
ایجاد فایل اجرایی استقرار با پسوند XMLA (XML for analysis) – یادآوری: این فایل در محیط SSAS قابلیت اجرا دارد
روش سوم: اجرای XMLA تولید شده از مرحله قبل
اجرای دستی
از طریق SSIS و با استفاده از کامپوننت Analysis Services execute DDL Task
Processing - پردازش
فرآیندی است که طی آن داده های از انبار داده رابطه ای خوانده شده و به انبار داده چند بعدی منتقل می شود.
استفاده از Cube ها موجب:
افزایش سرعت اجرای Query ها می شود
افزایش سرعت پردازش می شود
توجه به Attribute Relationship مهم است
طراحی مهم است
روش پردازش مهم است (به طور نمونه تنها می توان تنها تغییرات را در مکعب اعمال نمود)
اشیاء قابل پردازش در SSAS
Database: با right click روی پروژه در VS و انتخاب Process
Full: تمام داده ها و جمع بندی ها (محاسبات از قبل انجام شده برای بالابردن سرعت Query ها) را پاک می کند و مجددا تمام داده ها را بارگذاری نموده و جمع بندی ها را محاسبه می کند.
Default: وضعیت هریک از اشیاء را بررسی می کند و برای هریک از اشیاء که لازم باشد پردازش Full انجام می دهد.
Clear: حذف تمام داده ها و جمع بندی ها – (یکی از موارد کاربرد آن آماده سازی بانک موجود در SSAS برای انتقال ساختار است)
Cube، Fact و Partition: می توان فقط Cube خاصی را پردازش کرد (سیاست تفکیک Cube ها و حوزه بندی آنها در اینجا به کار می آید)
به از مواردی که در database به آنها اشاره شد:
Data: حذف کلیه داده ها و بارگذاری مجحدد آنها. در این روش جمع بندی انجام نمی شود.
: Index حذف جمع بندی ها و محاسبه مجدد آنها
Add: افزودن داده های جدید و به روزرسانی جمع بندی ها
Structure: این مورد فقط مربوط به مکعب است و کاربرد آن صرفا در فرآیند Development (برنامه نویسی) است. این امکان تنها Cube را برچسب پردازش میزند و بعد فقط partition مرتبط با آن را پردازش می کنیم (هدف: افزایش سرعت برنامه نویسی).
این پردازش موجب می شود که تمام اشیاء مکعب به عنوان پردازش ده معرفی شوند و بعد می توان فقط شی جزئی تر مکعب را پردازش کامل نمود.
: Dimension
به غیر تمامی مواردی که گفته شد:
Process Update: ایجاد تغییرات در داده های بعد مورد نظر و درصورت لزوم محاسبه جمع بندی های متصل به بعد مورد نظر
محیط های مختلف پردازش / ابزارهای پردازش
VS: در این محیط نمی توان FACT را پردازش جداگانه کرد
SSMS: پس از اتصال به SSAS از داخل از داخل Management Studio و با right click بر روی بانک مرتبط
SSIS: یادآوری:
Analysis Services Processing Task
از DFT
Dimension Processing
Partition Processing
اجرای کد XMLA: با استفاده از ساختار SCRIPT ی تولید شده در SSMS
روش اجرا:
دستی
SSIS: Analysis Services Execute DDL Task
لایه امنیت:
مکانیزم تعریف امنیت در SSAS براساس تعریف نقش ها (roles) پیاده سازی شده است بطوریکه دسترسی ها به هر نقش اعطاء می شود و هر نقش می تواند دربرگیرنده تعدادی از کاربران یا گروه های کاربری باشد.
مراحل ساخت و تنظیم role:
General: تعیین نام و درصورت تمایل دسترسی های پیش فرض
Full Control: این دسترسی کامل بوده و برای تغییر ساختار لازم است. برنامه نویس باید این نوع دسترسی را داشته باشد.
Process DB: پردازش اشیاء
Read Partition: دسترسی مشاهده ساختار – این نوع دسترسی برای افرادی که تولید گزارش های سیستم را برعهده دارند مناسب است.
Membership: تعریف کاربران یا گروه های کاربری زیرمجموعه role مورد نظر
Data source: تعریف دسترسی به منابع داده پروژه
Cube: تعریف دسترسی به مکعب ها (توجه: writeback امکانی که می توان مقادیر در مکعب را جایگزین کرد)
Drill through: امکان مشاهده ریز اطلاعات را می دهد (مثلا در اکسل)
Local cube (offline cube): برای آنکه فایل اکسل بتواند بدون اتصال به SSAS کار کند، امکان تولید offline cube از داخل اکسل و tools های مربوطه مقدور است.
Cell data: تعریف دسترسی به سلول های مکعب(به measure ها) – کاربرد: مثلا تعداد را ببیند ولی قیمت را نبیند
Not measures.currentMemeber is [measures].[price]
Dimensions – Read definition برای مشاهده ساختار است
Dimension Data: تعریف دسترسی به اعضای هریک از ویژگی ها ابعاد است.
درصورت انتخاب گزینه Enable Visual Totals، کاربر تنها جمع برای آن رکوردهای اطلاعاتی که دسترسی دارد را خواهید دید.
مفهوم Dynamic Security: آوردن کاربران در قالب پروژه، به این ترتیب که سطرهای FACT باید کد کاربری نیز داشته باشند.
Mining Structures: تعریف دسترسی به ساختارها و مدل های داده کاوی است.
Partitioning – افراز
یک فضای فیزیکی واحد برروی هارد است که جهت نگهداری داده ها از آن استفاده می شود:
Cube
FACT
- PARTITIONتوجه: هر یک از PARTITION ها صرفا مربوط به یک FACT است
PARTITION
PARTITION
FACT
FACT
مزایای Partitioning
افزایش سرعت اجرای Query ها
افزایش سرعت Processing
امکان تنظیم زمانبندی های جداگانه برای پردازش هر Partition (مثلا فقط پردازش اطلاعات برای سال خاص)
امکان قرارگیری هر Partition روی هاردهای مختلف
امکان ساخت Aggrigation های خاص برای هر Partition به شکل جداگانه
توجه: انجام Partitioning جزو کارهای Administration است، بنابراین باید به شکل دوره ای مورد بازبینی قرار گیرد.
مراحل ساخت Partition:
Partition جاری و تنظیم آن
Binding Type: Query binding – اضافه کردن where
Partition name renaming
تولید Partition های جدید
انتخاب جدول پایه مورد نظر
نوشتن Query دلخواه برای انتخاب بخشی از سطرها
انتخاب محل قرارگیری partition مورد نظر
تعیین نام برای partition و انتخاب چگونگی استقرار partition
چند نکته:
پس از اعمال partition بندی لازم است تمام partitionهای تغییر یافته بصورت Full پردازش شوند
باید دقت شود که partitionهای ایجاد شده با هم تداخل نداشته باشند یا بین آنها فضای خالی وجود نداشته باشد.
Aggrigation بجای index مورد استفاده قرار می گیرد و برخی محاسبات از پیش انجام می شوند. اگر طراحی به خوبی انجام شده باشد نیازی به استفاده از آن نمی باشد.