آموزش SSIS (آموزش سرویس یکپارچه ماکروسافت)

می خواهید فرایند ای تی ال را بدانید؟ نمی دانید چطوری با اف تی پی کار کنید؟ باید تسک های خود را زمانبندی کنید؟برای آشنایی بیشتر با سرویس یکپارچه ماکروسافت با ما همراه باشید.

به منظور مشاوره رایگان در خصوص مباحث مربوط به هوش تجاری، و رزور دوره های خصوصی با قیمت ارزانتر از دوره های عمومی شرکت ها با آی دی تلگرام research_moghimi@ ارتباط برقرار کنید. یا با شماره تلفن ۰۹۳۶۷۹۳۸۰۱۸ تماس حاصل فرمایید.

در ضمن به جهت مشاهده لیست دوره های خصوصی با شعار حضور در محل مشتری با قیمت کمتر از دوره های عمومی اینجا را کلیک کنید.

آموزش ssis

SQL Server Integration Services یا SSIS، ابزاری است که برای اجرای عملیات های ETL مانند extract کردن، transform کردن، و load کردن داده ها مورد استفاده قرار می گیرد.

درحالیکه فرایند ETL در برنامه های Data Warehousing رایج است، SSIS به هیچ وجه محدود به DW نیست.

مثلاً وقتی یک با استفاده از SQL Server Management Studio، یک Maintenance Plan ایجاد می کنید، یک پکیج SSIS ایجاد می شود.

قابلیت های ssis

بازیابی داده ها از هر منبعی

اجرای transformationهای مختلف روی داده ها، مانند تبدیل از نوعی به نوع دیگر، تبدیل حروف بزرگ به کوچک، اجرای محاسبات، و غیره.

بارگذاری داده ها درون هر منبعی

تعریف یک جریان کاری (workflow)

خدمات یکپارچه سازی 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 داراي چهار بخش اصلي است:

v استخراج (Extraction)

v تبديل (Transformation)

v بارگذاري (Loading)

v فرا داده (Meta Data)

مرحله استخراج Extraction

منظور استخراج داده از یک یا چند منبع مختلف است و اولين مرحله دراستخراج اطلاعات از منابع خارجي است که اين منابع مي تواند بانکهاي اطلاعاتي يا فايل باشد .

در عمليات مي توان داده ها را از منابع مختلف استخراج و با يکديگر تلفيق نمود باید اطلاعات از منابع اطلاعاتی مورد نظر استخراج شوند.

در این مرحله ممکن است اطلاعات از منبع اطلاعاتی اولیه حذف شود یا بدون حذف از آن در انبار داده کپی شود.

داده ­های استخراج شده از منابع اطلاعاتی اولیه معمولا در فضای Staging در انبار داده قرار داده می­شوند و در سایر مراحل ETL مورد پردازش قرار می­گیرند.

این فضا معمولا یک پایگاه ­داده رابطه­ ای است که به عنوان فضای حافظه­ ای موقت برای پردازش اطلاعات به وجود آمده است.

مرحله استخراج اطلاعات معمولا در سطح منابع اطلاعاتی انجام می­شود به ویژه اگر منبع اطلاعاتی مورد نظر، پایگاه ­داده باشد.

مرحله تبدیل Transformation

منظور پالایش داده‌های استخراج شده است. پالایش داده‌ها بسیار مهم است چرا که بعد از پالایش داده‌ها باید آن‌ها را در انبار داده بارگذاری کرد. برای این کار از یک محیط واسط که کم و بیش شبیه انبارداده است استفاده میشود. د

راين مرحله يک سري از قوانين و يا توابع بر روي داده هاي استخراج شده اعمال مي گردد تا به داده هاي قابل بارگذاري در سيستم تبديل شوند .

پس از استخراج اطلاعات، باید پردازش ­هایی روی آنها انجام شود تا فرمت آنها مناسب و یکپارچه شود. در این مرحله موارد زیر انجام می شوند:

پالایش داده‌ها شامل موارد زیر است:

بررسی کیفیت داده‌ها Verify data quality

کیفیت داده‌ها به وسیله پرسش‌هایی از قبیل سوالات زیر مورد بررسی قرار می‌گیرند

آیا داده‌ها کامل هستند (مواردی مورد نیازمان را پوشش می‌دهند)؟

داده‌ها صحیح هستند یا اشتباهاتی دارند؟ اگر اشتباه هستند علت اشتباهات چیست؟

پاک‌سازی داده‌هاClean data

این انتخاب شامل پاک کردن زیر مجموعه‌ای از داده‌های نامناسب و درج پیش‌فرض‌های مناسب می‌باشد.

شکل دادن داده‌ها Construct data

این قسمت شامل عملیات ویژه‌ای مانند تولید خصوصیت‌های مشتق شده، تولید رکوردهای جدید و کامل یا مقادیر تبدیل شده از خصوصیات موجود می‌باشد.

جامعیت داده‌ها Integrate data

اطلاعات از چند جدول ترکیب شده و رکوردهای جدید یا مقادیری جدیدی ایجاد می‌شود

قالب بندی داده‌ها Format data

تغییر و تبدیل قواعد اولیه داده مورد نیاز ابزار مدل سازی است.

مرحله بارگذاری Load

داده ­های تبدیل شده به شکل استاندارد مورد نظر، در این مرحله در انبار داده ها قرار می گیرند. داده ­ها معمولا به دلیل حجم بالا، به صورت دوره­ای در انبار داده بارگذاری می شوند نه پیوسته.

به عبارت دیگر، وقتی اطلاعات در یک منبع اطلاعاتی تغییر کرد یا اطلاعات جدیدی به آن اضافه شد، تغییرات به صورت آنی به انبار داده منتقل نمی شود. بلکه انبار داده به صورت دوره­ای و در بازه­های منظم زمانی به روز می­شود.دراين مرحله اطلاعات مطابق با نيازمنديهاي سازمان ، درون Data Warehouse بارگذاري مي شود .

v فرا داده Meta Data

فرا داده،اطلاعاتی در رابطه با انتقال و تبدیل داده­ ها، عملکرد انبار داده ، تناظر منابع اطلاعاتی و جداول پایگاه­ داده_که در آنها مشخص شده است منابع اطلاعاتی اولیه به چه قسمت­هایی از انبار داده نگاشت شده اند_می باشد.

از اطلاعات موجود در فرا داده می­توان در مواردی مانند نظارت خودکار، پیش­ بینی گرایش­ های سازمان و استفاده مجدد از اطلاعات استفاده کرد.

مثال هایی از فرا داده عبارتند از:

v اطلاعات بارگذاری داده ­ها: برای مثال مجموعه ­های داده­ها در چه زمانی در انبار داده قرار داده شده ­اند.

v تغییرات Schema : تغییراتی که در Schema رخ می­دهد. برای مثال چه تغییراتی و کی در تعاریف جداول اطلاعاتی ایجاد شده است.

آموزش پکیج ها

یک جزء اصلی در 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 نمایش داده می شوند، بیندازیم:

v Designer

v Connection Managers

v Toolbox

v Properties Window

designer ، ناحیه ای در وسط پنجره است

v تب Control Flow : حاوی تسک هاییست که پکیج SSIS اجرا و از تسکی به تسک دیگر flow می کند.

v تب Data Flow designer : که حاوی جزییات data flow task معینی است؛ مثلاً بازیابی داده ها از منبع داده ها، و در مواردی بعضی transformationها را روی داده ها اجرا می کند، سپس آن را روی منبع داده های دیگر می نویسد.

v تب Event Handlers: نیز designer دیگریست که در آن می توانید هنگامی که event میعنی raise می شود، تسک هایی را برای اجرا شدن معین کنید.

v تب 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 شامل ۳ نقش ثابت بانک اطلاعاتی برای نسبت دادن مجوزها به Package است که عبارتند از db_ssisadmin ،db_ssisltduser و db_ssisoperator

پنجره Connection Managers ، حاوی منابع داده های مختلف و destinationیی است که از پکیج استفاده می کند Connection Managers یکبار تعریف می شوند، و سپس در تسک های مختلفی مانند Execute SQL Task، OLEDB Data، یا OLEDB Destination، ریفرنس می شوند.

در هر جایی از دیزاینر Control Flow که کلیک کنید، پنجره پراپرتی های پکیج ظاهر خواهد شد.

پنجره پراپرتی های پکیج حاوی پراپرتی های زیادی است که می توان برای پکیج تنظیم کرد. شکل زیر، نمونه ای از این پراپرتی هاست:

در ادامه به دو تا از این پراپرتی ها خواهیم پرداخت:

ProtectionLevel
IsolationLevel

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 مقدور است

۴ نوع کنتینر در SSIS وجود دارد:

Task Host Container : عنصری قابل رویت در جعبه ابزار نیست ولی یک مفهوم جدا مثل INTERFACE است.

Sequence Container : مزایای ۱،۲،۳ فوق را دارد و به شما اجازه میدهد تا تسک ها را در ناحیه های منطقی موضوعی گروه بندی کنید. در محیط توسعه شما میتوانید برای استفاده این کنتینر آن را باز یا بسته کنید.

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ها برای قادر ساختن شما از استفاده دوباره ارتباط ها در پکیج خود استفاده شوند. SSIS 8 سورس را در اخیار شما قرار می دهد:

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 : 1- یک جستجو را روی داده اجرا میکند تا بعد در تبدیل استفاده بشود. برای مثال با این تبدیل میشود شهری رابر
اساس کد پستی جستجو کرد.

۲- جهت تکمیل و غنی­سازی یک جریان داده با استفاده از یک جریان خارجی داده استفاده می­کنیم.

۳-این کامپوننت داده­های جدول مرجع را به­طور کامل در حافظه 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

Merge : 1- دو داده را در یک داده در روند داده ذخیره میکند.
۲- می­توان دو جریان داده مرتب شده (sorted) را با یکدیگر تلفیق نمود و یک جریان داده مرتب شده یا sorted ایجاد کرد.

۳- از لحاظ سرعت اجرا به دلیل انجام عملیات sort نسبت به union all کندتر است

۴- جهت غلبه بر حجم­های سنگین داده از مکانیزم Batch By Batch برای بارگذاری داده­ها استفاده می­کند. علت نیاز به مرتب بودن هم همین است.

۵- تعداد سطرهای خروجی با تعداد سطرهای ورودی برابر است.

۶- گر بخواهیم که قبل از مرتب کرده باشیم کافی است در source در بخشAdvance Editor و در Input and Output Properties مقدار IsSorted را بهTrue تغییر دهیم.

Merge Join : 1- دو داده را در یک داده با تابع JOIN ذخیره میکند.
۲- می­توان دو جریان داده مرتب شده (sorted) را با یکدیگر تلفیق نمود و یک جریان داده مرتب شده یا sorted ایجاد کرد.

۳- جهت غلبه بر حجم­های سنگین داده از مکانیزم Batch By Batch برای بارگذاری داده­ها استفاده می­کند. علت نیاز به مرتب بودن هم همین است.

۴- عداد سطرهای خروجی بسته به نوع Join متفاوت است.

Multicast : یک کپی داده را به یک مسیر فرعی در روند کار اضافه میکند.
OLE DB Command : یک دستور OLE DB رو برای هر سطر در روند داده اجرا میکند.
Percentage Sampling :یک نمونه از داده در روند داده با درصدی از تعداد کل سطر های روند داده را ثبت میکند.
Pivot : داده را در یک جدول به فرم غیر مرتبط می چرخاند به این معنی که داده ها رو به چند روش تکه تکه میکند شبیه OLAP و EXCEL.
Row Count : شمار سطر ها را از روند داده به در یک متغیر قرار میدهد. می توان برای debug کردن و نمایش جدول نتیجه استفاده کرد. با استفاده از آن می توان تعداد سطرهای یک جریان داده را در یک متغییر عددی ذخیره نمود.
Row Sampling : یکه نمونه از داده را از روند داده با استفاده از شمار سطر های کل سطر های روند داده نگه می دارد.
Script Component : از یک اسکریپت برای تبدیل داده استفاده میکند که میتوانید برای اضافه کردن منطق های مخصوص تجاری به روند داده از آن استفاده کنید.
Slowly Changing Dimension : ورود یا تغییر مشروط داده رو به یک میزان با تغییر آرام هماهنگ میکند.
Sort : داده رو با ستون داده شده در روند داده طبقه بندی میکند.
Term Extraction : در داده متنی یک اسم یا صفت رو جستجو میکند.
Term Lookup : اصطلاحات استخراج شده از متن را جستجو میکند و یک مقدار را از جدول بازگشتی بازگشت میدهد.
Union All : 1- چند ست داده را در یک ست داده ادغام میکند.
۲- برای تلفیق چند جریان داده استفاده می­شود.

۳- از نظر سرعت اجرا، سریع است.

۴- جهت غلبه بر حجم­های سنگین داده از مکانیزم Batch By Batch برای بارگذاری داده­ها استفاده می­کند.

۵- تعداد سطرهای خروجی این کامپوننت برای جمع هریک از ورودی ها است.

۶- تفاوت این کامپوننت با UNION All از نوع TSQL آن است که درصورتی که دو (یا چند) جدول با ستون­های اطلاعاتی مختلف با هم UNION All شوند و فیلدهای یکسان نداشته باشند، خروجی شامل تمامی فیلدهای همه جداول است.

Unpivot : داده ها را از فرم غیر مرتبط به فرم مرتبط می چرخاند.
مقصد ها
درون روند داده، DESTIATIONها داده را بعد از اینکه لوله داده از اجزاء تبدیل خارج شد تحلیل می کند. معماری شکل پذیر میتواند داده را تقریبا به تمام OLE DB، فایل تخت یا سورس داده ADO.NET بفرستد.

همانند سورس ها، مقصد ها مقصد ها هم با CONNECTION MANAGER مدیریت می شود. مقصد های زیر در SSIS موجود هستند:

ADO.NET Destination : داده را در پروسه های خارجی نمایش می دهد، مثل اپلیکیشن .NET. برای خواندن یا بارگذاری اطلاعات در جدول های پایگاه داده (Databases Tables) یا view ها با به کارگیری فراهم کننده داده ی .Net Provider، استفاده می شود.

ویرایشگر ADO.NET این امکان را برای ما فراهم کرده است که برای هدف خود از جدول ها (Tables) و view های موجود در پایگاه داده استفاده کرده یا جدول های جدید ایجاد نماییم.
Data Mining Model Training : یک مدل استخارج ANALYSIS SERVICES را با پاس دادن داده از روند داده به مقصد ارائه میکند.
Data Reader Destination : به رابط ADO.NET DATAREADER اجازه می دهد تا داده را نمایش دهد، مثل مورد اول.
Dimension Processing : یک بعد ANALYSIS SERVICES را بارگزاری و پروسه آن را انجام می دهد و میتواند یک رفرش کامل، رفرش به روز رسانی یا رفرش افزایشی را روی بعد ارائه می کند.
Excel Destination : داده را از روند داده به یک صفحه EXCEL خروجی می گیرد.
Flat File Destination : اجازه می دهد داده را روی فایل با طول معین یا فایل محدود به کاما نوشته شود. رای نوشتن اطلاعات (data) درون یک فایل متنی (text file) موجود بر روی سیستم کامپیوتر، استفاده می شود.
فایل متنی می تواند دارای اندازه ثابت بوده (fixed width)، محدود شده باشد (delimited)، دارای فیلدهای با اندازه های متغیر (ragged right) بوده و یا دارای اندازه ای ثابت با محدود کننده اندازه هر رکورد سطر نیز باشد.
ابزار FLAT FILE Destination از مدیر ارتباط FLATFILE Connection Manager جهت اتصال و ارتباط با فایل های متنی استفاده می کند.
ODBC Destination : داده را در یک ارتباط داده ODBC مثل SQL SERVER ،DB2 یا ORACLE خروجی می گیرد.
OLE DB Destination : داده را در یک ارتباط داده OLE DB مثل SQL SERVER، ORACLE، ACCESS خروجی می گیرد. برای بارگذاری و ارسال اطلاعات به طیف مختلفی از جدول های پایگاه داده (databases tables)، views و یا دستورات SQL Command استفاده می شود.

ویرایشگر OLE DB Destination Editor این امکان را برای ما فراهم کرده تا جدول های (table) و یا views های موجود در برنامه را انتخاب کرده و یا نسخه های جدید از هر کدام ایجاد نماییم.
Partition Processing : اجازه ی انجام پروسه افزایشی، به روز رسانی یا کامل یک پارتیشن ANALYSIS SERVICES را به شما می دهد.
Raw File Destination : یک خروجی فایل با فرمت باینری به شما می دهد که بعد میتواند به عنوان یک RAW FILE SOURCE استفاده شود. معمولا برای مکانیزم ماندگاری متوسط(intermediate persistence) استفاده می شود.
Recordset Destination : رکورد ها را در یک ست رکورد ADO می نویسد. زمانی که در یک متغییر شئ نوشته شد میتواند در یک حلقه به روش های مختلف در SSIS اجرا شود مثل یک تسک اسکریپت یا یک حلقه FOREACH.
SQL Server Destination : مقصدی که برای نوشتن داده در SQL SERVER استفاده می کنید. این مقصد بسیار محدود کننده است .

مثل توانایی که مجبور می کند فقط SQL SERVER را در وقت اجرا پکیج SSIS بنویسید. برای مثال اگر پکیجی برای کپی کردن داده از سرور ۱ به سرور ۲ می نویسید، پکیج حتما باید روی سرور ۲ اجرا شود. این مقصد بیشتر برای سازگاری با قبل هست و نباید استفاده شود.

متغییر ها
متغییر ها یکی از اجزاء اساسی دیگر معماری SSIS هستند. متغییر های SSIS میتوانند برای ارزیابی در یک عبارت هنگام اجرا ست شوند. همینطور میتوانید برای ست کردن در روند داده با تسک اسکریپت یا تسک عبارت(EXPRESSION TASK) از آن ها استفاده کنید.

متغییر ها در SSIS تبدیل به روشی برای تبادیل بین خیلی از تسک ها و تبدیل ها شده که هدف متغییر ها را مهم تر می سازد.

بطور پیشفرض متغییر های SSIS در یک محدوده پکیج قرار می گیرند ولی میتوانند به سطح های مختلف دیگر در یک پکیج محدود شوند همانطور که در بخش CONTAINERها گفته شد.

پارامتر ها
پارامتر ها بسیار شبیه متغییر ها ولی همراه با تعداد کمی استثنا عمل می کنند. پارامتر ها، همانند متغییر ها، میتوانند یک پکیج را پویا کنند.

بزرگترین تفاوت میان آن ها این است که پارامتر ها میتوانند به راحتی بیرون یک پکیج ست شده و میتوانند

به عنوان یک مقدار که حتما برای شروع پکیج باید پاس داده شوند تعین می شوند، مثل یک پارامتر اینپوت روش های ذخیر شده. پارامتر ها جایگزین قابلیت CONFIGURATIONها در نسخه های قبلی SQL SERVER شده اند.

4 دیدگاه در “آموزش SSIS (آموزش سرویس یکپارچه ماکروسافت)

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

به پژوهشیار خوش آمدید. نیاز به مشاوره آنلاین دارید؟ ما همیشه آنلاین هستیم پس کلیک کنید