SSIS Connection Manager
همانطور که میدانیم، Microsoft SQL Server Integration Services یا SSIS packages دادهها را از منابع مختلف به مقصدهای مختلفی مانند فایلها، صفحات Excel Worksheets، پایگاه داده SQL Database و پایگاه داده Oracle Database منتقل میکنند. بنابراین، باید اتصالات قابل اعتمادی با منابع و مقصدهای داده مختلف برقرار کنیم تا بتوانیم دادهها را استخراج یا درج کنیم. در SSIS، Connection Manager نقش حیاتیای در برقراری این اتصالات ایفا میکند.
چه در حال استخراج tables از databases باشید، چه در حال بارگذاری rows در یک data warehouse، یا در حال انتقال records از DB به فایلهای متنی یا Excel (یا بالعکس)، Connection Manager ضروری است. این مقاله SSIS نشان میدهد چگونه یک Connection Manager ایجاد کنیم و تفاوت میان project-level و package-level Connection Managers چیست.
SSIS Connection Manager برای relational database management system شامل Connection Strings است، که ترکیبی است از Server instance Name، Database Name، provider Name و اطلاعات credentials. در مقابل، File system شامل اطلاعاتی دربارهی مسیر فایل، نوع، جداکنندهها (delimiters) و … است. این بخش مانند پلی بین packages و source/destination عمل میکند و امکان انتقال داده را فراهم میسازد.
Supported SSIS Connection Manager
هدف اصلی SSIS Connection Manager فراهمکردن اتصال در درون packages است، به گونهای که بتوان از آن در سایر packages یا tasks نیز استفاده کرد. اگر اتصال در سطح package-specific تعریف شده باشد، میتوان آن را در تمام tasks همان package به کار برد. اگر اتصال project-specific باشد، میتوان آن را در همهی packages درون آن project استفاده کرد.
SQL Server Integration Services انواع مختلفی از built-in Connection Managers را فراهم میکند. SSIS package میتواند از طریق Connection Manager به منابع داده مختلفی مانند Oracle، Access، Excel، Text File، SQL Server و SQL Server Analysis Services متصل شود. جدول زیر لیستی از Connection Managers را نشان میدهد.
لطفاً برای مشاهده تنظیمات پیکربندی، به مقالهی مربوط به Cache Connection Manager مراجعه فرمایید.
Connection Manager | توضیحات |
---|---|
ADO | به ActiveX Data Objects متصل میشود یا میتوان آن را شیء ADO نامید. لطفاً برای آشنایی با تنظیمات پیکربندی به مقاله ADO مراجعه کنید. |
ADO.NET | با استفاده از یک .NET provider به یک data source که با فریمورک ADO.NET سازگار است متصل میشود. لطفاً به مقاله ADO.NET مراجعه کنید. |
CACHE | دادهها را از data flow یا یک فایل کش (با پسوند .caw) میخواند و میتواند دادهها را در فایل کش ذخیره کند. |
DQS | این Connection Manager به یک سرور Data Quality Services و پایگاه داده Data Quality Services روی آن سرور متصل میشود. |
EXCEL | به یک فایل Excel workbook متصل میشود. لطفاً برای آشنایی با تنظیمات پیکربندی به مقاله Excel مراجعه کنید. |
FILE | برای مدیریت فایلهای متنی با فرمت delimited (مانند کاما، تب و …) یا fixed-width (مانند ragged) مفید است، مانند فایلهای CSV یا متنی. به یک فایل یا پوشه متصل میشود. لطفاً برای اطلاع از تنظیمات پیکربندی به مقاله File مراجعه کنید. |
FLATFILE | به دادههای موجود در یک فایل متنی Flat File متصل میشود. |
FTP | به یک سرور FTP متصل میشود. لطفاً به مقاله FTP مراجعه کنید. |
HTTP | این SSIS Connection Manager به یک web server متصل میشود. |
MSMQ | به یک message queue متصل میشود. |
MSOLAP100 | به یک نمونه از SQL Server Analysis Services یا یک پروژه Analysis Services متصل میشود. |
MULTIFILE | به چند فایل و پوشه متصل میشود. |
MULTIFLATFILE | این Connection Manager به چندین فایل داده و پوشه متصل میشود. |
OLE DB | از یک OLE DB provider برای اتصال به پایگاههای داده رابطهای مانند SQL Server، Oracle، MySQL و غیره استفاده میکند. لطفاً برای آشنایی با تنظیمات پیکربندی به مقاله OLE DB مراجعه کنید. |
ODBC | با استفاده از ODBC به یک data source متصل میشود. |
SMOSERVER | به یک سرور SQL Server Management Objects (SMO) متصل میشود. لطفاً برای آشنایی با تنظیمات پیکربندی به مقاله SMO مراجعه کنید. |
SMTP | به یک سرور ایمیل SMTP متصل میشود. |
SQL MOBILE | به پایگاه داده SQL Server Compact متصل میشود. |
WMI | به یک سرور متصل میشود و دامنهی مدیریت Windows Management Instrumentation (WMI) را روی سرور مشخص میکند. |
پیکربندی SSIS Connection Manager
یک package حداقل شامل یک Connection Manager است. در SQL Server Integration Services (SSIS)، دو نوع Connection Manager وجود دارد: Package Level و Project Level Connection Manager.
پیکربندی Project Level Connection Manager در SSIS
اگر Project Level Connection Manager را پیکربندی کنید، آن اتصال برای تمام packagesی که در آن project ایجاد کردهایم، در دسترس خواهد بود. زمانی که پروژه را به نسخه فعلی ارتقاء دهید، Project Level Connection Managers بدون مشکل به کار خود ادامه خواهند داد.
اگر به یک اتصال در چندین package نیاز دارید، ایجاد یک Project Level Connection Manager در SSIS یک روش توصیهشده است. در محیط واقعی، بیشتر اوقات از Project Level Connection Managers استفاده میکنیم؛ اما در برخی شرایط از Package Level Connection Managers استفاده میشود.
این مثال نشان میدهد که چگونه یک Project Level Connection Manager را در SQL Server Integration Services ایجاد یا پیکربندی کنیم.
پس از اینکه یک Project جدید ایجاد کردید، اگر به Solution Explorer نگاه کنید، چند پوشه خواهید دید. در حال حاضر، اجازه دهید روی پوشهی Connection Managers تمرکز کنیم. روی پوشهی Connection Managers در Solution Explorer کلیک راست کرده و گزینهی New را از منو انتخاب کنید.

زمانی که روی این گزینه کلیک میکنید، پنجرهای با عنوان Add Connection Manager باز میشود تا نوع اتصال را از فهرست گزینههای موجود مانند ADO.NET، OLE DB، Flat File و غیره انتخاب کنید.

در حال حاضر، ما OLE DB Connection Manager را از فهرست انتخاب کردیم. پس از تنظیم OLE DB، یک پنجره دیگر با عنوان Configure OLE DB باز میشود تا اتصالات داده را پیکربندی کنیم.

اگر به بالا دقت کنید، پنجره SSIS Data Connections خالی است زیرا هنوز هیچ Connection Manager ایجاد نکردهایم. اگر قبلاً آنها را ایجاد کرده بودیم، میتوانستیم از همینجا انتخاب کنیم به جای اینکه هر بار آنها را دوباره ایجاد کنیم.
روی دکمه New کلیک کنید تا پنجرهی دیگری برای Connection Manager باز شود. از این پنجره برای انتخاب Provider، Server Name و Database Name استفاده کنید.

از اسکرینشات بالا میتوانید مشاهده کنید که ما از حساب کاربری ویندوز local host به عنوان Server Name و AdventureWorks2014 به عنوان Database Name استفاده میکنیم.
توجه: در محیط واقعی باید گزینه Use Server Authentication را انتخاب کنید. سپس، اطلاعات معتبر احراز هویت که توسط مسئول سیستم شما فراهم شده است را وارد کنید.
برای بررسی موفقیتآمیز بودن اتصال، روی دکمه Test Connection که در پایین قرار دارد، کلیک کنید.

پس از پیکربندی، نام OLE DB Connection Manager در پنجره Data Connection نمایش داده خواهد شد. بنابراین، Connection Manager ایجاد شده را انتخاب کرده و روی OK کلیک کنید.

ما با موفقیت Project Level SSIS Connection Manager را ایجاد کردیم.

شما میتوانید Project Level Connection Manager را از اسکرینشات بالا مشاهده کنید.
پیکربندی Package Level Connection Manager در SSIS
اگر Package Level Connection Manager را پیکربندی کنید، اتصال فقط برای همان package خاص در دسترس خواهد بود. نمیتوانید از آن در خارج از آن package استفاده کنید.
نکته: اگر به یک اتصال فقط در یک package نیاز دارید و از آن در package دیگر استفاده نمیکنید، نیازی به ایجاد Project Level Connection Managers نیست. بنابراین، بهتر است از Package Level Connection Manager استفاده کنید.
روی Connection Managers pane در پایین package designer کلیک راست کنید. سپس منوی متنی (context menu) باز میشود که در آن میتوانید Connection Manager را انتخاب کنید.

این Context Menu تعدادی از Connection Managerهای پرکاربرد مانند OLE DB، Flat File، ADO.NET، Analysis Services و File Connection را نمایش میدهد. اگر مورد موردنظر خود را در این فهرست پیدا نکردید، گزینه New Connection را انتخاب کنید.
در این مثال، ما در حال ایجاد OLE DB Connection Manager هستیم. میتوانیم گزینه New OLE DB Connection را مستقیماً از Context Menu انتخاب کنیم. اما همانطور که در اسکرینشات بالا مشاهده میکنید، ما گزینه New را انتخاب کردیم. این کار به شما کمک میکند شباهتها در فرآیند ایجاد Connection Manager را بهتر درک کنید.
زمانی که روی گزینه New کلیک میکنید، یک پنجره با عنوان Add Connection Manager باز میشود تا بتوانید یکی از گزینههای موجود را از لیست انتخاب کنید.

در اینجا، ما OLEDB Connection Manager را انتخاب کردیم. حال باید دوباره همان مراحل قبلی که برای پیکربندی توضیح داده شد را دنبال کنیم.

تصویر بالا یک Project Level Connection Manager و یک Package Level SSIS Connection Manager را نشان میدهد.
دیدگاهتان را بنویسید