آموزش SSIS (آموزش سرویس یکپارچه ماکروسافت)
تعریف SSIS
- SSIS مخفف خدمات ادغام سرور SQL Server Integration Services است.
- این یک جزء موجود در نرم افزار پایگاه داده Microsoft SQL Server است که برای انجام طیف گسترده ای از کارهای ادغام مورد استفاده قرار می گیرد.
- این یک ابزار ذخیره سازی داده است که برای استخراج داده ها ، بارگذاری داده ها در یک پایگاه داده دیگر (ETL)، دگرگونی هایی نظیر تمیز کردن ، جمع شدن ، ادغام داده ها و غیره استفاده می شود.
- ابزار SSIS همچنین شامل ابزارهای گرافیکی و توابع گردش جادوگران پنجره مانند ارسال پیام های ایمیل ، عملیات ftp ، منابع داده است.
- می توانید از SSIS برای به روز رسانی بانک های اطلاعاتی بزرگ (Data warhouse)، عملیات واکاری داده ها (Data Mining)، دانلود یا کپی کردن فایل های بانک های اطلاعاتی و یا استخراج و انتقال اطلاعات از XML به SQL و غیره استفاده کنید.
SSIS ابزاری است که عمدتاً برای انجام دو کارکرد مورد استفاده قرار می گیرد:
یکپارچه سازی داده ها (Data Integration)
SSIS ادغام داده ها را با ترکیب داده ها از چندین منبع انجام داده و داده های یکپارچه را در اختیار کاربران قرار می دهد.
گردش کار ( Workflow)
همچنین می تواند برای خودکارسازی نگهداری از پایگاه داده های SQL Server و به روزرسانی در داده های تحلیلی چند بعدی استفاده شود.
ادغام داده ها چیست؟
ادغام داده ها روندی است که شما برای ادغام داده ها از چندین منبع دنبال می کنید. داده ها می توانند داده های ناهمگن یا داده های همگن باشند. داده ها می توانند ساختاری ، نیمه ساختار یافته یا بدون ساختار باشند. در ادغام داده ها ، داده های حاصل از منابع مختلف داده های مختلف با هم ادغام می شوند تا برخی داده های معنی دار را تشکیل دهند.
چرا SSIS؟
داده ها را می توان به موازات بسیاری از مقصد های مختلف بارگیری کرد.
از SSIS برای ترکیب داده ها از چندین منبع داده استفاده می شود تا یک ساختار واحد در یک نمای واحد تولید شود. در اصل ، این مسئول جمع آوری داده ها ، استخراج داده ها از چندین منبع داده و ادغام در یک منبع داده واحد است.
نیاز برنامه نویسان هسته سخت را برطرف می کند
SSIS سکویی است که قابلیت بارگذاری مقدار زیادی از داده ها از اکسل به یک پایگاه داده SQL Server را دارد.
ادغام با سایر محصولات
ابزار SSIS یکپارچه سازی کامل با سایر محصولات مایکروسافت را فراهم می کند.
ارزان تر از سایر ابزارهای ETL
ابزار SSIS ارزان تر از بسیاری از ابزارهای دیگر است. این می تواند در برابر سایر محصولات پایه ، قابلیت مدیریت آنها ، هوش تجاری و غیره مقاومت کند.
خطای پیچیده در پردازش داده ها
SSIS به شما اجازه می دهد تا خطای پیچیده را در یک dataflow انجام دهید. می توانید dataflow را بر اساس شدت خطا شروع و متوقف کنید. حتی می توانید در صورت بروز خطا یک ایمیل به سرپرست ارسال کنید. وقتی خطایی برطرف شد ، می توانید مسیری را بین گردش کار انتخاب کنید.
SSIS چگونه کار می کند؟
SSIS از سه مؤلفه اصلی تشکیل شده است:
- داده های عملیاتی
- فرآیند ETL
- پایگاه داده تحلیلی
آموزش ssis
SQL Server Integration Services یا SSIS، ابزاری است که برای اجرای عملیات های ETL مانند extract کردن، transform کردن، و load کردن داده ها مورد استفاده قرار می گیرد. درحالیکه فرایند ETL در برنامه های Data Warehousing رایج است، SSIS به هیچ وجه محدود به DW نیست. مثلاً وقتی یک با استفاده از SQL Server Management Studio، یک Maintenance Plan ایجاد می کنید، یک پکیج آموزش SSIS ایجاد می شود.
قابلیت های ssis
- بازیابی داده ها از هر منبعی
اجرای transformationهای مختلف روی داده ها، مانند تبدیل از نوعی به نوع دیگر، تبدیل حروف بزرگ به کوچک، اجرای محاسبات، و غیره.
- بارگذاری داده ها درون هر منبعی
خدمات یکپارچه سازی SQL SERVER یا SSIS بخشی مستحکم در مجموعه محصولات درحال رشد است که پلتفرم هوش تجاری مایکروسافت SQL SERVER یا BI را ایجاد می کند.
چیزی که SSIS را مهم ساخته این است که بدون جابجایی داده ها و امکانات پاکسازی که SSIS به جدول ها می آرد، محصولات دیگر SQL SERVER BI نمیتوانند عمل کنند. در ساده ترین فرم، SSIS ابزار در حافظه ETL در سطح سازمانی است.
اگرچه SSIS فقط یک کاور اجمالی برای IMPORT WIZARD نیست. در محیط توسعه DRAG-n-DROP توسعه دهندگان ETL میتوانند در کنار هم از روند کار(WORK FLOW) پیچیده و سیر خلاقانه پاکسازی داده ها برآیند که رقیب جدی کدنویسی سنتی و گران قیمت شخص ثالث است.
بهترین قسمت SSIS این است که شما تنها به یک لایسنس که برای SQL SERVER لازم است نیاز دارید.
IMPORT WIZARD و EXPORT
SSMS، تسک های ویزارد Import و Export را، که می توانید برای کپی کردن داده ها از منبعی به منبع دیگر استفاده کنید، در اختیار می گذارد.
اگر میخواهید داده ها را با سرعت از هر دیتابیس سازگار با OLE یا فایل های تخت (FLAT) به مقصد تان انتقال دهید، میتوانید از این ابزار استفاده کنید. در واقع خیلی از پکیج های SSIS اینگونه متولد شدند ولی بسیاری از پکیج هایی که میخواهید در BI SOLUTION باشد نباید با WIZARD ساخته شوند.
WIZARD یک راه سریع برای انتقال داده و تبدیل داده بسیار سبک است ولی پکیج هایی با بهترین روش را نمی سازد. WIZARD در همه ی ورژن های SQL SERVER به جز لوکال و اکسپرس در دسترس است. این به شما اجازه می دهد که منطق انتقال داده به فایل پکیج را ادامه دهید.
مفهوم پایه ایمپورت/اکسپورت WIZARD تغییر قابل ملاحظه ای نسبت به زمان DTS نکرده است، شما هنوز امکان چک کردن همه ی جدول هایی که میخواهید انتقال دهید را دارید اگرچه میتوانید تمام انتقال ها را در قالب یک انتقال انجام دهید.
WIZARD را کجا پیدا کنید؟ بستگی دارد. اگر یک ایمپورت یا اکسپورت سریع میخواهید، مستقیم از منوی استارت اقدام کنید(Start Microsoft)
SQL Server 2014 ( Import and Export Data) راه دیگر این است که پروژه را در محیط توسعه SSIS باز کرده و Project > SSIS Import and Export Wizard را انتخاب کنید.
آموزش ETL
ETL مخفف Extract Transform and Load است که به معنای استخراج، پالایش و بارگذاری اطلاعات میباشد.
طی فرآیند ETL داده ها از منابع اطلاعاتی مورد نیاز موجود در سازمان یا خارج از آن مانند، پایگاه های داده، فایل های متنی، سیستم های قدیمی و صفحات گسترده (Spread Sheets) استخراج شده و تبدیل به اطلاعاتی سازگار با فرمت معین میشوند و سپس در یک مخزن اطلاعاتی که در اغلب اوقات یک DWH است، قرار داده میشوند.
برای انجام ETL نیاز به تخصص های مختلفی چون تجزیه و تحلیل تجاری، طراحی پایگاه داده و برنامه نویسی وجود دارد.
پیش از انجام فرآیند ETL ابتدا باید منابع اطلاعاتی که قرار است داده های آنها به DWH منتقل شوند، شناسایی شوند، مقصد آنها در DWH مشخص شوند و تبدیلاتی که باید بر آنها انجام شود تا وارد DWH شوند، تعیین شوند.
نحوه نگاشت اطلاعات به صورت اولیه، باید در مرحله جمع آوری نیازها و مدلسازی اطلاعات انجام شود. اطلاعات جزیی تر مربوط به نحوه نگاشت داده ها از منابع اطلاعاتی اولیه به DWH در مرحله طراحی و پیاده سازی ETL مشخص میشود.
سیستم ETL دارای چهار بخش اصلی است:
- مرحله استخراج Extraction
منظور استخراج داده از یک یا چند منبع مختلف است و اولین مرحله دراستخراج اطلاعات از منابع خارجی است که این منابع می تواند بانکهای اطلاعاتی یا فایل باشد . در عملیات می توان داده ها را از منابع مختلف استخراج و با یکدیگر تلفیق نمود باید اطلاعات از منابع اطلاعاتی مورد نظر استخراج شوند. در این مرحله ممکن است اطلاعات از منبع اطلاعاتی اولیه حذف شود یا بدون حذف از آن در انبار داده کپی شود.
داده های استخراج شده از منابع اطلاعاتی اولیه معمولا در فضای Staging در انبار داده قرار داده میشوند و در سایر مراحل ETL مورد پردازش قرار میگیرند. این فضا معمولا یک پایگاه داده رابطه ای است که به عنوان فضای حافظه ای موقت برای پردازش اطلاعات به وجود آمده است. مرحله استخراج اطلاعات معمولا در سطح منابع اطلاعاتی انجام میشود به ویژه اگر منبع اطلاعاتی مورد نظر، پایگاه داده باشد.
- مرحله تبدیل Transformation
منظور پالایش دادههای استخراج شده است. پالایش دادهها بسیار مهم است چرا که بعد از پالایش دادهها باید آنها را در انبار داده بارگذاری کرد. برای این کار از یک محیط واسط که کم و بیش شبیه انبارداده است استفاده میشود. در این مرحله یک سری از قوانین و یا توابع بر روی داده های استخراج شده اعمال می گردد تا به داده های قابل بارگذاری در سیستم تبدیل شوند .
پس از استخراج اطلاعات، باید پردازش هایی روی آنها انجام شود تا فرمت آنها مناسب و یکپارچه شود. در این مرحله موارد زیر انجام می شوند:
- بررسی کیفیت دادهها Verify data quality
کیفیت دادهها به وسیله پرسشهایی از قبیل سوالات زیر مورد بررسی قرار میگیرند
آیا دادهها کامل هستند (مواردی مورد نیازمان را پوشش میدهند)؟
دادهها صحیح هستند یا اشتباهاتی دارند؟ اگر اشتباه هستند علت اشتباهات چیست؟
- پاکسازی دادهها Clean data
این انتخاب شامل پاک کردن زیر مجموعهای از دادههای نامناسب و درج پیشفرضهای مناسب میباشد.
- شکل دادن دادهها Construct data
این قسمت شامل عملیات ویژهای مانند تولید خصوصیتهای مشتق شده، تولید رکوردهای جدید و کامل یا مقادیر تبدیل شده از خصوصیات موجود میباشد.
- جامعیت دادهها Integrate data
اطلاعات از چند جدول ترکیب شده و رکوردهای جدید یا مقادیری جدیدی ایجاد میشود.
- قالب بندی دادهها Format data
تغییر و تبدیل قواعد اولیه داده مورد نیاز ابزار مدل سازی است.
- مرحله بارگذاری Load
داده های تبدیل شده به شکل استاندارد مورد نظر، در این مرحله در انبار داده ها قرار می گیرند. داده ها معمولا به دلیل حجم بالا، به صورت دورهای در انبار داده بارگذاری می شوند نه پیوسته.
به عبارت دیگر، وقتی اطلاعات در یک منبع اطلاعاتی تغییر کرد یا اطلاعات جدیدی به آن اضافه شد، تغییرات به صورت آنی به انبار داده منتقل نمی شود. بلکه انبار داده به صورت دورهای و در بازه های منظم زمانی به روز میشود.دراین مرحله اطلاعات مطابق با نیازمندی های سازمان ، درون Data Warehouse بارگذاری می شود .
- فرا داده Meta Data
فرا داده،اطلاعاتی در رابطه با انتقال و تبدیل داده ها، عملکرد انبار داده ، تناظر منابع اطلاعاتی و جداول پایگاه داده که در آنها مشخص شده است منابع اطلاعاتی اولیه به چه قسمت هایی از انبار داده نگاشت شده اند می باشد.
از اطلاعات موجود در فرا داده میتوان در مواردی مانند نظارت خودکار، پیش بینی گرایش های سازمان و استفاده مجدد از اطلاعات استفاده کرد.
مثال هایی از فرا داده عبارتند از:
اطلاعات بارگذاری داده ها: برای مثال مجموعه های داده ها در چه زمانی در انبار داده قرار داده شده اند.
تغییرات Schema : تغییراتی که در Schema رخ میدهد. برای مثال چه تغییراتی و کی در تعاریف جداول اطلاعاتی ایجاد شده است.
بیشتر بخوانید : آموزش ETL در اوراکل و ODI
آموزش پکیج ها
یک جزء اصلی در SSIS مفهوم پکیج هاست. یک پکیج به بهترین شیوه برنامه اجرایی که می توانید بنویسید را که حاوی روند کار(WORKFLOW) و منطق تجاری است را در اختیار شما قرار می دهد. اساسا یک پکیج مجموعه ای از TASKها هست که در کنار هم قرار گرفته تا برنامه را منظم اجرا کند. یک پکیج همینطور یک واحد برای اجرا و توسعه همانند توسعه دهنده .NET هست که برنامه ها یا فایل های DLL را می سازد.
اجبار های اولویت(Precedence constraints) استفاده می شوند تا TASKها را در کنار هم قرار دهند و اولویت ها را بر اساس اتفاق هایی که در TASK می افتد یا بر اساس قوانینی که توسعه دهنده پکیج نوشته مدیریت کنند. پکیج ها در قالب فایل های .DTSX که در واقع فایل هایی با معماری XML همراه با مجموعه پروپرتی ها هستند.
برای شروع، BIDSرا با انتخاب SQL Server Business Intelligence Development Studio از گروه برنامه Microsoft SQL Server باز کنید. در منوی بالا، روی File، Open، Project/Solution، کلیک کنید تا پنجره Open Project نمایش داده شود. به مکان سلوشن بروید و روی Open کلیک کنید. پکیج SSIS را در زیر پروژه درSolution Explorer بسط دهید روی پکیج دابل کلیک کنید و آنرا باز کنید. بیایید نگاهی به جنبه های مختلف پکیج SSIS که در BIDS نمایش داده می شوند، بیندازیم:
Designer
Connection Managers
Toolbox
Properties Window
designer : ناحیه ای در وسط پنجره است
تب Control Flow : حاوی تسک هاییست که پکیج SSIS اجرا و از تسکی به تسک دیگر flow می کند.
تب Data Flow designer : که حاوی جزییات data flow task معینی است؛ مثلاً بازیابی داده ها از منبع داده ها، و در مواردی بعضی transformationها را روی داده ها اجرا می کند، سپس آن را روی منبع داده های دیگر می نویسد.
تب Event Handlers: نیز designer دیگریست که در آن می توانید هنگامی که event میعنی raise می شود، تسک هایی را برای اجرا شدن معین کنید.
تب Package Explorer: کل پکیج را بصورت tree-view نمایش می دهد.
تنظیمات سطح حفاظتی یک Package
به منظور حفاظت از دادهها در Packageهای Integration Service میتوانید یک سطح حفاظتی (protectionlevel) را تنظیم کنید که به حفاظت از دادههای صرفاً حساس یا تمامی دادههای یک Package کمک نماید.
به علاوه میتوانید این دادهها را با یک Password یا یک User Key رمزگذاری نمائید یا به رمزگذاری دادهها در بانک اطلاعاتی اعتماد کنید.
همچنین سطح حفاظتی که برای یک Package استفاده میکنید، الزاماً ایستا (static) نیست و در طول چرخه حیات یک Package میتواند تغییر کند. اغلب سطح حفاظتی در طول توسعه یا به محض (deploy) استقرار Package تنظیم میشود.
توجه: علاوه بر سطوح حفاظتی که توصیف شد، Packageها در بانک اطلاعاتی msdb ذخیره میشوند که همچنین میتوانند توسط نقشهای ثابت در سطح بانک اطلاعاتی (fixed database-level roles) حفاظت شوند.
Integration Service شامل 3 نقش ثابت بانک اطلاعاتی برای نسبت دادن مجوزها به Package است که عبارتند از:
- db_ssisadmin
- db_ssisltduser
- db_ssisoperator
پنجره Connection Managers ، حاوی منابع داده های مختلف و destinationیی است که از پکیج استفاده می کند Connection Managers یکبار تعریف می شوند، و سپس در تسک های مختلفی مانند Execute SQL Task، OLEDB Data، یا OLEDB Destination، ریفرنس می شوند.
در هر جایی از دیزاینر Control Flow که کلیک کنید، پنجره پراپرتی های پکیج ظاهر خواهد شد.
پنجره پراپرتی های پکیج حاوی پراپرتی های زیادی است که می توان برای پکیج تنظیم کرد. شکل زیر، نمونه ای از این پراپرتی هاست:
- ProtectionLevel
آپشن های مختلفی را برای رمزگذاری (encryption) پکیج و یا بخش های پکیج در اختیار می گذارد. من به EncryptSensitiveWithUserKey می پردازم زیرا مقدار پیش فرض همیشه باعث ایجاد مشکل می شود. به عنوان مثال می توان به رشته کانکشن دیتابیس (database connection string) اشاره کرد که حاوی یک پسورد است.
تنظیمات پیش فرض، این اطلاعات را با استفاده از user key شخصی که پکیج را ایجاد کرده، رمزگذاری می کند. وقتی کاربری دیگر پکیج را اجرا می کند، پکیج fail خواهد شد زیرا آن user key قادر به رمزگشایی connection string نخواهد شد. یک راه حل خوب، تغییر دادن ProtectionLevel به DontSaveSensitive است، بدین معنی که قرار نیست اطلاعات حساس را در پکیج بگذارید، پس دیگر نیاز نیست نگران رمزگذاری باشید.
- IsolationLevel
سطح Transaction Isolation را تنظیم می کند. توجه داشته باشید که مقدار پیش فرض، Serializable است که ممکن است چیزی نباشد که واقعاً احتیاج دارید. Serializable، سطحی است که قفل های read تا وقتیکه یک تراکنش commit یا rollback شود، در آن نگهداشته می شوند. بعلاوه، قفل های range طوری نگه داری می شوند که هیچ داده ایی را نمی توان insert کرد.
مطمئناً زمان هایی وجود دارد که این transaction isolation level گارانتی می شود، اما همیشه این طور نیست. سطح Serializable معمولاً منجر به قفل کردن اضافی دارد و همزمانی (concurrency) را کاهش می دهد، پس باید ببینید آیا واقعاً به آن احتیاج دارید و یکی از سطوح دیگر از قبیل ReadCommitted را انتخاب کنید.
آموزش Toolbox
حاوی تسک هایست که در Control Flow،Data Flow، یا دیزاینرهایEvent Handlers دردسترس هستند. برای ساختن یک پکیج، کافیست تسک هایی را از Toolbox به designer، درگ و آنها را به ترتیبی که می خواهید اجرا کنید، بهم متصل کنید.
آموزش TASK ها
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 : یک برنامه را خارج از پکیج شما اجرا می کند مثل اینکه فایل خروجی شما را قبل از انجام عملیات روی فایل های تکی به چندین فایل قسمت می کند. می توانید یک application exe را توسط این task اجرا کنید.
Execute SQL Task : یک دستور SQL یا روند ذخیره سازی را اجرا می کند . ابزاری است که بوسیله آن می توان یک قطعه کدSQLرا برروی یکDBرابطه ای ایجاد نمود.
Expression Task : یک متغییر را در هنگام اجرا در عبارت قرار می دهد.
File System Task : این تسک می تواند عملیات دایرکتوری را به کار گیرد مثل ساخت، تغییر نام یا پاک کردن یک دایرکتوری. همینطور میتواند عملیات روی فایل را مدیریت کند .
مثل جا به جایی، کپی یا پاک کردن یک فایل. می توانید فایل ها و دایرکتوری ها را مدیریت کنید. اعم از حذف، تغییر نام و ایجاد فایل و دایرکتوری و همچنین ست کردن attribute های آنها.
FTP Task : فرستادن یا دریافت فایل از سایت FTP.. می توانید توسط File Trasnfer Protocol فایل ها را از سروری در اینترنت به پایین، سیستم client ، منتقل کنید و برعکس.
Message Queue Task : فرستادن یا دریافت یک پیام از MICROSOFT MESSAGE QUEUE.
Script Task : این تسک به شما اجازه می دهد تا کد های .NET را در ویژوال استودیو برای محیط برنامه نویسی اپلیکیشن ها بنویسید.
ابزاری است که با استفاده از آن میتوان یک قطعه کد به زبانC#.NetیاVB.Netرا طی اجرای یکPackageاجرا نمود. و برای انجام عملیات خاصی خارج از فضای SSIS یا مقداردهی یک متغییر در محیط SSIS استفاده می گردد.
Send Mail Task : از طریق SMTP ایمیل می فرستد. توسط این task می توانید توسط SMTP میل بفرستید.
Web Service Task : یک متد را روی یک وب سرویس اجرا می کند.
WMI Data Reader Task : این تسک میتواند کوئری های WQL را در مقابل WINDOWS MANAGEMENT INSTRUMATION اجرا کند .
برای مثال به شما اجازه می دهد تا وقایع را بخوانید، لیست برنامه های نصب شده را مشاهده کنید یا سخت افزار نصب شده را ببینید.
WMI Event Watcher Task : این تسک قدرت SSIS را برای منتظر ماندن و جواب دادن به وقایع WMI که در سیستم رخ می دهد را افزایش می دهد.
XML Task : فایل XML را تجزیه و تحلیل می کند مثلا میتواند فایل های XML را به هم بچسباند، از هم جدا کند یا فرمت را تغییر دهد.
CONTAINER ها
کنتینرها هسته ای در معماری SSIS برای گروه بندی منطقی تسک ها در کنار هم در واحد های کاری هستند. در کنار ثبات بصری، کنتینر ها به شما اجازه میدهند تا در محدوده کنتینر و نه پکیج، متغییر و HANDLEهای وقایع تعریف کنید. در برگیرنده اشیاء در محیط Control Flow است.
استفاده از Container:
- امکان دسته بندی منطقی اشیاء فراهم می شود
- امکان تعریف متغییر در حوزه یک Container فراهم می شود
- امکان انتخاب روش های مختلف برای مدیریت تراکنش ها به ازای هر Container مقدور است
5 نوع کنتینر در SSIS وجود دارد:
- Task Host Container : عنصری قابل رویت در جعبه ابزار نیست ولی یک مفهوم جدا مثل INTERFACE است.
- Sequence Container : مزایای 1،2،3 فوق را دارد و به شما اجازه میدهد تا تسک ها را در ناحیه های منطقی موضوعی گروه بندی کنید. در محیط توسعه شما میتوانید برای استفاده این کنتینر آن را باز یا بسته کنید.
- For Loop Container : تمام مزایا و ایجاد حلقه با شروط عددی را ایجاد میکند . حلقه هایی در میان یک سری تسک ها تا رسیدن به یک شرط با شروط عددی و معمولا برای ساخت حلقههایی با تعداد دور ثابت مورد استفاده قرار میگیرد.
- Foreach Loop Container : تمام مزایا و ایجاد حلقه به تعداد اشیاء مورد نظر را ایجاد میکند. حلقه هایی در میان یک سری فایل ها یا رکورد ها در ست داده و بعد برای هر رکورد موجود در کالکشن تسک های درون کنتینر را اجرا میکند.
- Precedence Constraint : خطوط ارتباطی بین Task ها در محیط Control Flow میباشد و تعیین کننده توالی انجام عملیات است.
انواع Precedence Constraint:
- On Success
- On Failure
- On Completion
- Expression در precedence constraint : اجرای Task بعدی در صورت تحقق گزاره مورد نظر است.
DATA FLOW روند داده
قوت هسته ی SSIS توانایی آن برای استخراج داده به حافظه سرور، تبدیل و نوشتن آن در مقصد دیگر است. اگر روند کنترل مغز SSIS است پس روند داده قلب آن است.
معماری درون حافظه چیزی است که به مقیاس SSIS و سرعت بالای آن در مقایسه با نمایش داده و روش های ذخیره شده در حال اجرا کمک میکند. منابع داده ها مجرایی برای این لوله های داده است و با ارتباط هایی که منابع ها یا مقصد ها تعریف می کند مشخص می شوند.
یک منبع داده از ارتباط هایی که سازگار با دیتابیس OLE هستند و منابع داده ADO.NET مثل SQL SERVER، ORACLE، DB2 و یا حتی منابع داده غیر سنتی مثل سرویس های ANALYSIS و OUTLOOK استفاده می کند. منابع داده ها میتواند در یک محدوده تا یک پکیج تنهای SSIS یا اشتراکی میان چند پکیج در یک پروژه باشد.
تمام مشخصات ارتباط ها در CONNECTION MANAGER تعریف شده اند. Dataflow Task یکی از مهمترین task ها در Integration Service است. این task به شما امکان واکشی داده ها از یک دیتاسورس را می دهد (از جدول یا view یا sqlcommand و…) و نتیجه را با توجه به تنظیماتی که شما برایش مشخص کرده اید به جدولی در دیتاسورس مقصد وارد می کند.
سورس ها
یک سورس یکی از اجزاء هست که به محیط طراحی روند داده اضافه میکنید تا محل قرارگیری داده سورس را تعیین کنید که داده ها را به اجزاء پایین دستی میفرستد. سورس ها تنظیم شدن تا از CONNECTION MANAGERها برای قادر ساختن شما از استفاده دوباره ارتباط ها در پکیج خود استفاده شوند. 8 SSIS سورس را در اخیار شما قرار می دهد:
OLE DB Source : تقریبا به هر سورس داده OLE DB وصل میشود.
Excel Source : مخصوص دریافت داده از صفحات EXCEL است. این سورس همچنین اجرای کوئری های SQL را در مقابل صفحات EXCEL آسان میکند که مقدار داده ای که شما میخواهید میان روند پاس دهید را محدود می کند. جهت استخراج و خواندن اطلاعات از Excel Worksheets استفاده می شود. ابزار Excel Source از مدیر ارتباط Excel Connection Manager در SSIS جهت اتصال به فایل های اکسل استفاده می شود.
Flat File Source : یک فایل محدود یا با طول معین رو وصل میکند. برای خواندن و استخراج اطلاعات از فایل های متنی استفاده می گردد.
Raw File Source : یک فایل مخصوص با فرمت باینری از داده ای که در حال عبور است می سازد که مخصوصا در SSIS سرعت بالایی دارد. این جزء یکی از اندک اجزائی هست که از CONNECTION MANAGER استفاده نمیکنند.
Xml Source : داده را از فایل XML بدست می آورد. این سورس برای تنظیمات از CONNECTION MANAGER استفاده نمیکند.
ADO.NET Source : این سورس همانند OLE DB ولی فقط برای سورس های بر پایه ADO.NET هست. اجرای داخلی از ADO.NETDATAREADER به عنوان سورس استفاده میکند.
ارتباط ADO.NET خیلی شبیه آن که در .NET FRAMEWORK هنگام کدنویسی دستی یک ارتباط و بازیابی از یک دیتابیس است برای استخراج اطلاعات از پایگاه داده، با استفاده از فراهم کننده داده ای .Net Provider، استفاده می شود. ابزار ADO.NET Source از مدیر ارتباط ADO.NET Connection Manager برای ارتباط با پایگاه داده، استفاده می کند.
CDC Source : داده ها را در جدول هایی با CHANGE DATA CAPTURE یا CDC فعال، میخواند که برای بازیابی فقط سطر هایی که در یک بازه زمانی تغییر کرده اند استفاده میشود.
ODBC Source : داده های جدول را با ODBC به جای OLE DB میخواند. در پکیج SSIS بین OLE DB و ODBC انتخاب OLE DB همچنان بهتر هست. اگر این سورس های موجود در SSIS قادر به انجام تابع های مورد نظر شما نیستند، میتوانید با نوشتن کد برنامه .NET به هر سورس داده که دست یافتنی هست وصل شوید.
یک روش استفاده از SCRIPT COMPONENT برای ساخت یک جریان سورس با استفاده از کتابخانه های موجود .NET هست. این روش برای برنامه های یکبار مصرف کارآمد هست. اگر میخواهید از یک سورس سفارشی خود در چند پکیج استفاده کنید میتوانید یکی را با SSIS .NET API و OBJECT MODAL توسعه دهید.
تبدیل ها TRANSFORMATION
TRANSFORMATIONها اجزاء کلیدی در روند داده هستند که اجازه تغییر داده ها درون لوله های داده را میدهند. شما میتوانید از تبدیل ها برای جدا کردن، ادغام یا انحراف داده ها در لوله استفاده کنید. همینطور داده میتواند با استفاده از قوانین تعیین شده اعتبار سنجی، پاکسازی و یا رد بشود.
برای مثال اگر میخواهید داده شما اعتبار سنجی و طبقه بندی شود میتوانید به راحتی با دراپ کردن یک SORT و LOOKUP TRANSFORMATION توی محیط طراحی روند داده و تنظیم کردن آن این کار رو انجام بدید. اجزاء تبدیل در روند داده SSIS روی داده ها در لوله و در حافظه اثر می گزارند.
چون این پروسه در حافظه انجام میشود سرعت بالاتری نسبت به روش های دیگر دارد. لیست تبدیل ها و هدف اون ها را در زیر مشاهده میکنید:
Aggregate : داده را از تبدیل یا سورس جمع میکند.
Audit : اطلاعات حسابرسی را از پکیج در لوله داده نمایش میدهد مثل زمان اجرا و کاربر اجرا کننده پکیج.
CDC Splitter : بعد از خوانده شدن داده از جدول با CDC فعال این تبدیل داده هایی را که باید وارد، جدید و پاک بشوند را میفرستد.
Character Map : تغییرات رشته ای معمول داده ها مثل نوشته با حروف بزرگ یا کوچک را انجام میدهد.
Conditional Split : داده را بر اساس انجام شدن یک شرط جدا میکند. مثلا یک داده به یک مسیر دیگه فرستاده شود اگر ستون STATE مساوی با FLORIDA باشد.
Copy Column : کپی یک ستون را به خروجی تبدیل اضافه میکند که بعد میتوانید کپی را تبدیل کنید و اصلی را حفظ کنید.
Data Conversion : نوع داده یک ستون را به نوعی دیگه تبدیل میکند.
Data Mining Query : کوئری استخراج داده در مقابل ANALYSIS SERVICES اجرا میشود.
Derived Column : یک ستون جدید DRIVED حساب شده از یک عبارت را میسازد.
DQS Cleansing : پاکسازی داده پیشرفته را با موتور DATA QUALITY SERVICES اجرا میکند.
Export Column : یک ستون را از روند داده به فایل سیستمی خارج میکند. مثلا میتوانید یک ستون که حاوی عکس هست رو به فایل تبدیل کنید.
Fuzzy Grouping : پاکسازی را با پیدا کردن سطر های مشابه و کپی انجام میدهد.
Fuzzy Lookup : داده ها را براساس منطق FUZZY پیدا و استاندارد میکند. مثلا JON را به JOHN تبدیل میکند.
Import Column : داده را از ایمیل میخواند و به روند داده اضافه میکند.
- Lookup : یک جستجو را روی داده اجرا میکند تا بعد در تبدیل استفاده بشود. برای مثال با این تبدیل میشود شهری رابر اساس کد پستی جستجو کرد.
- جهت تکمیل و غنی سازی یک جریان داده با استفاده از یک جریان خارجی داده استفاده میکنیم.
- این کامپوننت داده های جدول مرجع را به طور کامل در حافظه Data Flow Task بارگذاری میکند تا با سرعت بهتری بتواند مقادیر مورد نیاز را واکشی نماید. لذا این کامپوننت مناسب سناریوهایی است که جدول مرجع کوچک باشد.
- نوع اتصال جریان داده و داده های جدول مرجع به صورت equi-join است که حالت خاصی از left outer join باشد.
- در Equi-join درصورتیکه چندین سطر دیده شود، اولی را برای join انتخاب میکند.
Match output: سطرهایی که مقادیر متناظر آنها در جدول مرجع وجود دارد.
No Match output: سطرهایی که مقادیر متناظر آنها در جدول مرجع وجود ندارد.
Fail Component: منجر به تولید خطا میشود.
Ignore Failure: از خطا چشم پوشی شده و مقادیرNULL جایگزین مقادیر مورد نظر میشود.
Redirect Rows (no match output) : ارسال سطرهای مشکل دار به خروجی no match
Redirect Rows (error output) : ارسال سطرهای مشکل دار به خروجی error
متغییر ها
متغییر ها یکی از اجزاء اساسی دیگر معماری SSIS هستند. متغییر های SSIS میتوانند برای ارزیابی در یک عبارت هنگام اجرا ست شوند. همینطور میتوانید برای ست کردن در روند داده با تسک اسکریپت یا تسک عبارت(EXPRESSION TASK) از آن ها استفاده کنید.
متغییر ها در SSIS تبدیل به روشی برای تبادیل بین خیلی از تسک ها و تبدیل ها شده که هدف متغییر ها را مهم تر می سازد. به طور پیشفرض متغییر های SSIS در یک محدوده پکیج قرار می گیرند ولی میتوانند به سطح های مختلف دیگر در یک پکیج محدود شوند همانطور که در بخش CONTAINERها گفته شد.
پارامترها
پارامتر ها بسیار شبیه متغییر ها ولی همراه با تعداد کمی استثنا عمل می کنند. پارامتر ها، همانند متغییر ها، میتوانند یک پکیج را پویا کنند.
بزرگترین تفاوت میان آن ها این است که پارامتر ها میتوانند به راحتی بیرون یک پکیج ست شده و میتوانند به عنوان یک مقدار که حتما برای شروع پکیج باید پاس داده شوند تعین می شوند، مثل یک پارامتر اینپوت روش های ذخیر شده. پارامتر ها جایگزین قابلیت CONFIGURATIONها در نسخه های قبلی SQL SERVER شده اند.
دوره های مرتبط
دوره کامل تضمینی هوش تجاری با رویکرد کسب درآمد در داخل و خارج از کشور
آنالیز داده و هوش تجاری یکی از پردرآمدهای شغل های دنیا چه در داخل کشور و چه خارج از کشور است. ما در دوره آموزشی صفر تا صد هوش تجاری را به صورت تضمینی آموزش میدهیم.
آموزش ویدیویی هوش تجاری در SQL
شما در این دوره آموزشی با مفاهیم و اصول هوش تجاری در SQL آشنا می شوید و متوجه می شوید که برای ساخت یک داشبورد در هر نرم افزاری نیاز به چه مراحل و اصول و پایه هایی دارید همچنین با سیستم های هوش تجاری بزرگ آشنا شده و خود را برای تحلیل طراحی و پیاده سازی یک سامانه هوش تجاری آماده می کنید.
دوره کامل مقدماتی آموزش هوش تجاری
شما در این دوره آموزشی (دوره کامل مقدماتی آموزش هوش تجاری) با مفاهیم و مقدمات هوش تجاری در SQL آشنا می شوید و متوجه می شوید که برای ساخت یک داشبورد در هر نرم افزاری نیاز به چه مراحل و اصول و پایه هایی دارید همچنین با سیستم های هوش تجاری بزرگ آشنا شده و خود را برای تحلیل طراحی و پیاده سازی یک سامانه هوش تجاری آماده می کنید.
دوره آموزش SSAS یا سرویس آنالیز ماکروسافت
دوره آموزش SSAS شامل آموزش کامل تمامی مباحث آنالیز داده و ساخت کیوب در سرویس آنالیز
آموزش کامل دوره غیر حضوری SSRS یا سرویس نمایشگر ماکروسافت
دوره آموزش SSRS شامل آموزش کامل تمامی مباحث مربوط به نمایش اطلاعات در محیط SSRS به صورت کاملا عملی در محیط عملیاتی و مطابق با تکنولوژی های روز دنیا
6 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
من sql 2016 رو نصب کردم ولی نتونستم sql server bussines intalligence service رو پیدا کنم.
کجا باید دنبال چی بگردم؟
مرسی
سلام و وقت بخیر و تشکر از ارتباطتون با این مرکز.
ببینید وقتی ابزار integration ماکروسافت رو در ابتدا نصب می کنید (تیک زدن گزینه Integration service در ابتدای نصب نرم افزار) سرویس یکپارچه ساز ماکروسافت نصب می شه . برای ارتباط با این سرویس باید از طریق SQL Server data Tools یا به اختصارSSDT استفاده کنید.
با تشکر
ممنون از جوابتون
ینی باید sql server data tlls رو هم نصب کنم؟
مگه اون برای برقراری ارتباط visual stedio باssisنیسست ؟
ابتدا تیک Integration Service را بزنید بعد از نصب برای برقراری ارتباط با اون از SSDT استفاده کنید.
سلام
در صوررتی که فقط یک پایگاه داده داریم میتوانیم سرویس integration را اصلاً نصب نکنیم و یا متوقف کنیم. آیا برای سیستم اتفاقی نمی افتد؟
با سلام و تشکر از تماس شما با این مرکز.
شما می تونید سرویس یکپارچه ساز ماکروسافت رو بدون هیچ دیتابیس انجینی نصب و استفاده کنید. در واقع می تونید شروع به ای تی ال اطلاعات بر روی دیتابیس های راه دور بکنید و تنها نیاز به نصب سرویس ssis دارید