آموزش جامع یک پارچه سازی SQL Server یا SSIS (بخش دوم)

آموزش جامع یک پارچه سازی SQL Server یا SSIS (بخش دوم)

در این بخش با مفاهیم زیر در سری آموزش های ssis آشنا خواهید شد
task
precedence constraint
container
data flow

آموزش یکپارچه سازی SQL Server یا SSIS

در این بخش با مفاهیم زیر در سری آموزش های ssis آشنا خواهید شد
task
precedence constraint
container
data flow

آموزش یکپارچه سازی SQL Server یا SSIS

TASK ها

یک تسک می تواند به عنوان یک تک واحد از کار تعریف شود. تسک ها عملکرد را به پکیج ها می آورند مثل کاری که متد در یک زبان برنامه نویسی می کند. اگرچه در SSIS شما متد ها را کد نمی کنید بلکه در یک محیط طراحی آن ها را درگ&دراپ و کانفیگ می کنید. شما میتوانید تسک مورد نظر خودتان را توسعه دهید، این ها تسک های موجود فعلی ETL هستن:
  • Analysis Services Execute DDL Task: یک تسک DDL در سرویس های ANALYSIS اجرا می کند. مثلا، می تواند یک مکعب را ایجاد، دراپ یا تغییر دهد(فقط در نسخه سازمانی یا توسعه).
  • Analysis Services Processing Task: این تسک عملیات مکعب سرویس های ANALYSIS، DIMENSION و MINING MODEL را انجام می دهد.
  • Bulk Insert Task: با استفاده از دستور BULK INSERT در SQL، داده ها را در یک جدول بارگزاری می کند.
  • CDC Control Task: با ویژگی CHANGE DATA CAPTURE در SQL SERVER کار می کند.
  • Data Flow Task: این یک تسک مخصوص هست که داده ها را به مقصد دیتابیس OLE و ADO.NET تبدیل و بارگزاری می کند.
  • Data Mining Query Task: به شما اجازه می دهد تا کوئری های پیشبینی شده را در مقابل ANALYSIS SERVICES DATA-MINING MODELS اجرا کنید.
  • Data Profiling Task: این تسک جالب به شما قابلیت آزمایش کردن داده ها را می دهد که تکنیک های پروفایل کردن داده تک کاره را جایگزین می کند.
  • Execute Package Task: به شما اجازه می دهد یک پکیج را از داخل پکیج دیگر اجرا کنید یا به عبارتی پکیج های SSIS شما را پیمانه ای (MODULAR) می کند.
  • Execute Process Task: یک برنامه را خارج از پکیج شما اجرا می کند مثل اینکه فایل خروجی شما را قبل از انجام عملیات روی فایل های تکی به چندین فایل قسمت می کند.
  • Execute SQL Task: یک دستور SQL یا روند ذخیره سازی را اجرا می کند.
  • Expression Task: یک متغییر را در هنگام اجرا در عبارت قرار می دهد.
  • File System Task: این تسک می تواند عملیات دایرکتوری را به کار گیرد مثل ساخت، تغییر نام یا پاک کردن یک دایرکتوری. همینطور میتواند عملیات روی فایل را مدیریت کند مثل جا به جایی، کپی یا پاک کردن یک فایل.
  • FTP Task: فرستادن یا دریافت فایل از سایت FTP.
  • Message Queue Task: فرستادن یا دریافت یک پیام از MICROSOFT MESSAGE QUEUE.
  • Script Task: این تسک به شما اجازه می دهد تا کد های .NET را در ویژوال استودیو برای محیط برنامه نویسی اپلیکیشن ها بنویسید.
  • Send Mail Task: از طریق SMTP ایمیل می فرستد.
  • Web Service Task: یک متد را روی یک وب سرویس اجرا می کند.
  • WMI Data Reader Task: این تسک میتواند کوئری های WQL را در مقابل WINDOWS MANAGEMENT INSTRUMATION اجرا کند که برای مثال به شما اجازه می دهد تا وقایع را بخوانید، لیست برنامه های نصب شده را مشاهده کنید یا سخت افزار نصب شده را ببینید.
  • WMI Event Watcher Task: این تسک قدرت SSIS را برای منتظر ماندن و جواب دادن به وقایع WMI که در سیستم رخ می دهد را افزایش می دهد.
  • XML Task: فایل XML را تجزیه و تحلیل می کند مثلا میتواند فایل های XML را به هم بچسباند، از هم جدا کند یا فرمت را تغییر دهد.
همینطور حاوی ست کاملی از تسک های DBA-ORIENTED که به شما این امکان رو می دهند تا پکیج هایی را بسازید که میتواند محیط SQL SERVER را حفظ کند. این تسک ها قابلیت هایی را مثل انتقال دیتابیس SQL SERVER شما، پشتیبانی گیری از دیتابیس یا بهینه سازی دیتابیس را در اختیار شما قرار می دهند. در بخش سوم همه ی این تسک ها را با مثال و جزییات بیشتر توضیح می دهیم.
تسک ها قابل توسعه هستند و شما میتوانید با .NET تسک سفارشی خودتان را در صورتی که در تسک ها پیدا نکردید یا اگر تابع اسکریپتینگ مرسومی دارید که میتواند در توسعه پکیج شما به شما کمک کند را بسازید. اطلاعات بیشتر در بخش 19.
پی نوشت: تعداد زیادی تسک در اینترنت میشه پیدا کرد پس اگه میخواید تسک سفارشی خودتون رو بنویسید قبل از اون بگردید که اگه پیدا کردید در وقت صرفه جویی کرده باشید.

PRECEDENCE CONSTRAINT ها

PRECEDENCE CONSTRAINTS یا اجبار اولویت ها اجزاء پکیج ها هستند که تسک ها را با نظم مورد نظر هدایت می کنند. در واقع راهی ارتباطی است که نتنها تسک ها را به هم وصل می کند بلکه روند کاری پکیج SSIS شما رو تعریف می کند. یک اولویت اجرای دو تسک لینک شده را با اجرای تسک نهایی بر اساس حالت نهایی تسک پیشین و قوانینی که با عبارت های مخصوص تعریف می شوند را کنترل می کند. زبان این عبارت ها که در SSIS جاسازی شده اند اساسا با استفاده از روش های اسکریپت که تسک ها رو به کار گرفته یا از کار می اندازد همانطور که در SOLUTION های DTS استفاده میشد نیاز کنترل روند کاری را برطرف میکند. با عبارت ها میتوانید روند کاری SSIS خودتان را براساس رفتار ها و شرایط داده شده اداره کنید.
برای به کار گرفتن اجبار اولویت بین دو تسک باید مقدار اجبار را انتخاب کنید; انتخاب عبارت ها اختیاری است. بخش های پایین نمایشی مختصر از تفاوت های میان آن دو می باشد.
اجبار مشخص میکند که پکیج هنگام اتمام اجرای تسک اول از دو تسک چگونه واکنش نشون دهد. گزینه ها مشخص میکنند که آیا تسک نهایی از دو تسک  فقط باید براساس نتیجه اتمام تسک اول اجرا شود یا نه. سه مقدار برای اجبار ممکن است:
Success: تسکی که به تسک دیگر با این اجبار زنجیر شود فقط هنگامی اجرا می شود که تسک اول با موفقیت به اتمام برسد که به رنگ سبز مشخص می شود.
Completion: تسکی که به تسک دیگر با این اجبار زنجیر شود فرقی ندارد که تسک اول با خطا یا با موفقیت به اتمام برسد و تسک دوم اجرا می شود که به رنگ آبی مشخص می شود.
Failure: تسکی که به تسک دیگر با این اجبار زنجیر شود فقط در صورتی که تسک اول با خطا به اتمام برسد اجرا می شود که این نوع اجبار معمولا برای خبر دادن در مورد موقعیت های خطا استفاده می شود و با رنگ قرمز مشخص می شود.
همین طور میتوانید با نوشتن منطق برای یک اجبار اولویت تسک ها را به هم ربط بدید. این کار با قرار دادن یک زبان عبارت نویسی SSIS مثل C# روی یک اجبار اولویت است. برای مثال شما ممکن است تعیین کنید که یک تسک فقط باید در پایان هر ماه اجرا شود که برای این کار شما یک عبارت اضافه می کنید که بعد از ارزیابی زمان اجرای پکیج تعیین می کند که قدم بعد اجرا بشود یا نه. در بخش 5 بیشتر توضیح می دهیم.

CONTAINER ها

کنتینر ها هسته ای در معماری SSIS برای گروه بندی منطقی تسک ها در کنار هم در واحد های کاری هستند. در کنار ثبات بصری، کنتینر ها به شما اجازه میدهند تا در محدوده کنتینر و نه پکیج، متغییر و  HANDLEهای وقایع تعریف کنید. 4 نوع کنتینر در SSIS وجود دارد:
  • Task Host Container: عنصری قابل رویت در جعبه ابزار نیست ولی یک مفهوم جدا مثل INTERFACE است.
  • Sequence Container: به شما اجازه میدهد تا تسک ها را در ناحیه های منطقی موضوعی گروه بندی کنید. در محیط توسعه شما میتوانید برای استفاده این کنتینر آن را باز یا بسته کنید.
  • For Loop Container: حلقه هایی در میان یک سری تسک ها تا رسیدن به یک شرط.
  • Foreach Loop Container: حلقه هایی در میان یک سری فایل ها یا رکورد ها در ست داده و بعد برای هر رکورد موجود در کالکشن تسک های درون کنتینر را اجرا میکند.

DATA FLOW

روند داده در ssis
قوت هسته ی SSIS توانایی آن برای استخراج داده به حافظه سرور، تبدیل و نوشتن آن در مقصد دیگر است. اگر روند کنترل مغز SSIS است پس روند داده قلب آن است. معماری درون حافظه چیزی است که به مقیاس SSIS و سرعت بالای آن در مقایسه با نمایش داده و روش های ذخیره شده در حال اجرا کمک میکند. منابع داده ها مجرایی برای این لوله های داده است و با ارتباط هایی که منابع ها یا مقصد ها تعریف می کند مشخص می شوند. یک منبع داده از ارتباط هایی که سازگار با دیتابیس OLE هستند و منابع داده ADO.NET مثل SQL SERVER، ORACLE، DB2 و یا حتی منابع داده غیر سنتی مثل سرویس های ANALYSIS و OUTLOOK استفاده می کند. منابع داده ها میتواند در یک محدوده تا یک پکیج تنهای SSIS یا اشتراکی میان چند پکیج در یک پروژه باشد.
تمام مشخصات ارتباط ها در CONNECTION MANAGER تعریف شده اند. گزینه های دیالوگ های CONNECTION MANAGER بسته به نوع ارتباطی که میخواهید پیکر بندی کنید متغیر هستند. عکس بالا ارتباط های معمول SQL SERVER را نشان میدهد.
مدیریت ارتباط ها برای تمرکز روی رشته های ارتباطی به منابع داده ها و جدا کردن ها از پکیج های SSIS استفاده می شوند. آن ها میتوانند بین چند پکیج در یک پروژه یا به صورت تکی در یک پروژه اشتراک گذاشته شوند. همچنین به شما اجازه میده تا از پیکر بندی در هنگام اجرا با DBA با استفاده از فایل پیکر بندی و پارامتر ها خروجی داشته باشید. SSIS تا وقتی که شما ارتباطی مشخص نکنید از آن ها استفاده نمی کند. این باعث بینهایت سبک بودن توسعه و قابل انتقال بودن SSIS می شود. پیش از این یاد گرفتید تسک روند داده به شکل ساده یک تسک اجرایی دیگر در پکیج است. تسک روند داده مثل مکانیزم لوله ای است که داده را تا مقصد انتقال می دهد. اگرچه در SSIS شما کنترل بیشتری از شروع تا پایان این فرایند دارید. در واقع شما یک ست خلاقانه تبدیل دارید که در کنار هم قرار می دهید تا هنگامی که داده در لوله است آن را پاکسازی و اداره کنید.
نمونه تسک در روند داده
یکی از توسعه های جدید گیج کننده SSIS این است که وقتی شما یک تسک روند داده رو در روند کنترل دراپ می کنید، یک محیط جدید روند داده با تب خودش توی محیط کاربری SSDT ایجاد میکند. هر تسک روند داده محیط طراحی خودش رو دارد که شما میتوانید با دبل کلیک روی آن یا با کلیک روی تب DATA FLOW و با انتخاب DATA FLOW TASK از لیست وارد آن شوید.  همان طور که روند کنترل روند کاری کلی پکیج را اداره میکند، روند داده تبدیل داده را در حافظه اداره می کند. تقریبا هر چیزی که داده را دستکاری می کند در مجموعه روند داده قرار می گیرد. وقتی داده در هر قدم از روند داده حرکت می کند داده بر اساس کاری که تبدیل انجام می دهد تغییر می کند. برای مثال در تصویر یک ستون با استفاده از DRIVED COLUMN TRANSFORMATION مشتق(DRIVE) شده و ستون بعدی برای تبدیل های بعدی یا مقصد دیگر در دسترس است. 
در قسمت بعد هر سورس، مقصد و تبدیل با یک چشم انداز اجمالی کاور می شوند.
 

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس