در این مقاله ابتدا توصیفی از SSIS connection managerهای OLE DB و ODBC ارائه می شود و سپس به بیان تفاوت میان آنها, هنگام برقراری ارتباط با SQL Server می پردازیم.

SSIS Connection Manager

به طور کلی SSIS Connection Manager ها برای پیکره بندی برقراری ارتباط بین SSIS و یک Data source خارجی مورد استفاده قرار میگیرند. انواع مختلفی از Connection Manager ها در SSIS وجود دارد.

در این مقاله لیستی از  SSIS Connection Manager ها را در SQL Server Data Tools برای Visual Studio 2017 را با توضیحات آن ارائه می شود. (این تصویر از قسمت Add SSIS Connection Manager نرم افزار Visual Studio برداشته شده است):

 

Connection Manager Description
ADO Connection manager for ADO connections
ADO.NET Connection manager for ADO.NET connections
CACHE Connection manager for cache
DQS Connection manager for DQS Server (Data Quality Services)
EXCEL Connection manager for Excel files
FILE Connection manager for files
FLATFILE Connection manager for flat files
FTP Connection manager for FTP
Hadoop Connection manager for Hadoop
HTTP Connection manager for HTTP connections
MSMQ Connection manager for the Message Queue task
MSOLAP100 Connection manager for Analysis Services connections
MULTIFILE Connection manager for multiple files
MULTIFLATFILE Connection manager for multiple flat files
ODATA Connection Manager for ODATA Services
ODBC Connection manager for ODBC connections
OLEDB Connection manager for OLE DB connections
ORACLE Connection manager for Oracle connections
PowerQuery Connection manager for Power Query Source
SMOServer Connection manager for SQL Server transfer tasks
SMTP Connection manager for Send Mail Tasks
SQLMOBILE Connection manager for SQL Server Compact connections
WMI Connection manager for the WMI tasks

 

SSIS Connection Manager ها می توانند از connection managers tab که در پایین صفحه اصلی قرار دارد اضافه شوند:

همانطور که در SSIS connection managers tab اشاره شده است, برای اضافه کردن Connection جدید ,بر روی صفحه راست کلیک کرده, و از منوی باز شده new connection manager را انتخاب کرده, و سپس نوع ارتباط مورد نظرتان را انتخاب کنید.

منوی باز شده تعداد کمی از انواع connection manager ها را شامل می شود, برای مشاهده همه انواع آن بر روی گزینه New Connection کلیک کنید.

OLE DB Connection manager

OLEDB مخفف Object Linking and Embedding, Database می باشد. این یک API ( application program interface مجموعه ای از پروتکل ها و ابزارهای روتین برای تولید برنامه های نرم افزاری است) است که توسط مایکروسافت طراحی شده و به کاربران این امکان را می دهد تا به انواع data sources ها با روش های یکسان دسترسی پیدا کنید.

بین تمام SSIS connection manager ها, OLE DB connection manager  ها محبوبیت بالایی دارند. هنگامی که گزینه OLE DB connection را داخل منوی باز شده انتخاب می کنید, پنجره پایین باز می شود.

در این پنجره, تمامی connection های مطرح شده در بالا به همراه خصوصیاتشان ذکر شده است. برای اضافه کردن connection جدید, دکمه New را انتخاب کنید. تصویر پایین فرم اصلی OLE DB connection configuration را نشان می دهد.

اگر بر روی نوار باز شده دکمه Provider  کلیک کنید, تمامی فراهم کنندگان  data sourcesهای در دسترس نمایش داده می شوند

خصوصیات اصلی  OLE DB connectionشامل موارد زیر می باشد:

  • Provider: یک OLE DB provider برای اتصال به یک data source مورد استفاده قرار می گیرد.
  • Server name: سروری که می خواهید به آن متصل شوید.
  • Authentication type: پارامترهای امنیتی مورد استفاده برای استقرار ارتباط
  • Database name: نام Database name که می خواهید به آن متصل شوید (در صورتی که این ویژگی تعیین نشده باشد, Database name پیش فرض استفاده می شود.)

 

 

به طور کلی OLE DB connection manager  در تمامی مواردی که می تواند به دیتا بیس های خارجی وصل شوند از قبیل :

  • Execute SQL Task
  • Execute T-SQL Task
  • OLE DB Source
  • OLE DB Destination
  • OLE DB command
  • Look up Transformation

مورد استفاده قرار می گیرد.

ODBC connection manager

ODBC مخفف Open Database Connectivity می باشد. این یک API استاندارد برای دسترسی به سیستم های مدیریت پایگاه داده می باشد. Provider های ODBC فقط به دیتابیس های رابطه ای دسترسی دارند و توسط OLE DB برای دسترسی به منابع داده مبتنی بر SQL استفاده می شوند.

ODBC SSIS connection manager ها نیز محبوب هستند و هنگامی که منابع داده به عنوان DSN (Database Source Name) در سیستم عامل تعریف می شوند, مورد استفاده قرار می گیرند.

برای اضافه کردن یک ODBC connection manager داخل connection manager tab panel راست کلیک کرده, و دکمه New Connection را انتخاب کنید. فرم زیر ظاهر می شود.

این فرم شامل تمام ODBC connection های مطرح شده می باشد. برای اضافه کردن یکی از آنها, بر روی دکمه New کلیک کنید. تصویر زیر فرم پیکره بندی ODBC connection manager را نمایش میدهد

می توان با انتخاب یک data source name (DSN) تعریف شده در سیستم عامل, یا نوشتن مستقیم یک Connection String یک ODBC Connection تعریف کرد. علاوه بر این, ممکن است نیاز به وارد کردن اطلاعات ورود به سیستم داشته باشید.

ADO.NET connection manager

ADO.NET مخفف ActiveX Data Objects using .NET framework می باشد. که شامل مجموعه ای از کلاس ها می باشد که خدمات دسترسی به داده را نمایش می دهد.

مشابه SSIS connection manager های دیگر, ADO.NET connection manager نیز اجازه دسترسی به data source های خارجی را فراهم میکند.

اینجا هم خصوصیات Connection از قبیل Provider, Server Name, authentication و Database name مشابه موارد قبل می باشد.

ADO.NET connection manager editor عمدتا توسط ADO.NET Source و ADO.NET Destination مورد استفاده قرار می گیرد.

 

 

OLE DB  , ODBC و ADO.NET

قبل از همه, خوب است بدانید که ADO.NET از Provider های OLE DB برای دسترسی به دیتا و OLE DB نیز از ODBC برای دسترسی به دیتابیس های رابطه ای استفاده می کند.

قبل از ارائه توصیفی از این سه دسته SSIS Connection managers, سعی خواهم کرد تعدادی از تفاوت های مابین آنها را بیان کنم.

SQL Syntax

SQL Syntax ممکن است برای هر نوع ارتباط به طور خاص زمانی که از پارامترها استفاده می کنیم متفاوت باشد برای مثال, زمانی که نیاز به استفاده از پارامترهای درون یک Execute SQL Task داشته باشیم, هر نوع ارتباط Syntax مربوط به خود را دارد که در جدول پایین نشان داده شده است:

 

Connection Type Marker Parameter name
ADO.NET @<parameter name> @<parameter name>
OLEDB ? ۰,۱,۲,۳ …
ODBC ? ۱,۲,۳ …

Data Sources

با اینکه ADO.NET و OLE DB می تواند به Data Source های مشابه متصل شود, ODBC فقط می تواند به سیستم های پایگاه داده رابطه ای اتصال پیدا کند و به منابع XML-based , Microsoft Exchange Server و باقی منابع امکان اتصال ندارد.

به عبارت دیگر, ODBC  ممکن است زمانی که اطلاعات اتصال را ندارید و قصد استفاده از DSN را برای برقراری ارتباط دارید, نیاز شود.

Performance

به طور خلاصه, تجربیات نشان میدهد که وقتی به یک پایگاه داده SQL  متصل می شوید, OLE DB عملکرد بالاتری در Extract و Load دیتا دارد.

بعد از نشان دادن تعدادی از تفاوت های بین SSIS connection manage ها, می توانید ملاحضه کنید که انتخاب یکی برای استفاده, می تواند براساس منطقی که می خواهید پیاده سازی کنید متفاوت باشد. بعد از سالها کار کردن با SSIS, من میتوانم استفاده از OLE DB connection manager ها را به یک دلیل اصلی توصیه کنم, و آن محبوبیت آن می باشد. از آنجایی که ممکن است در هنگام عیب یابی منابع زیادی را پیدا کنید, در حالی که هنگام استفاده از ADO.NET و ODBC نمی توانید.

 

پاسخ دهید