Integration
Services
DTS[1] يكي از مفيدترين و
محبوبترين برنامههاي SQL Server
از زمان معرفي آن در SQL Server 7
بوده است. DTS در اصل ابزاري است كه براي انجام اقتباس داده، تبديل و بارگذاري (ETL) براي انبارهاي
داده OLAP
Services استفاده ميشود.
هرچند، مايكروسافت سريعاً مفيد بودن آن را تشخيص داد و DTS را ابزار اصلي براي وارد و صادر كردن داده از پايگاههاي داده
رابطهاي SQL
Server و يك ابزار BI ETL كرد. علاوه بر سهولت استفاده از ابزار bcp[2] خط فرمان قديمي كه
جايگزين شده است، DTS گام بزرگي ماوراي يك برنامه انتقال داده است كه اين كار با فراهم
كردن توانايي انتقال داده هنگام انتقالهاي داده ساده طراحي شده است و يك طراحي
گرافيكي را ارايه ميكند كه براي عمليات انتقال داده پيچيدهتر و تبديل است. نگارشهاي
DTS از SQL Server 7
و 2000،
از 100 درصد OLE
DB براي پايگاه داده منبع و مقصد
پشتيباني ميكنند. اين بدان معني است كه هرچند DTS بخشي از SQL Server
بود، واقعاً ميتوانست براي انتقال داده بين هر دو منبع داده OLE DB استفاده شود، بدون اين كه نياز باشد SQL Server منبع يا مقصد داده باشد. براي نمونه، علاوه بر توانايي وارد و
صادر كردن داده از پايگاههاي داده SQL Server،
DTS همچنين ميتوانست براي انتقال داده بين ساير سيستمهاي پايگاه
داده از قبيل Access، Oracle و DB2 بدون دخالت SQL Server
استفاده شود. اين نوع انعطافپذيري موجب قويتر و مفيدتر شدن DTS به عنوان ابزار انتقال داده ميشود.
هرچند، DTS در حد امكان مفيد و جالب است، باز هم محدوديتهاي نسبتاً مهمي
دارد. DTS براي اين كه آماده عرضه جهاني شود، نياز به مقياسپذيري بهتري
دارد. علاوه بر اين، بستههاي DTS
به سادگي بين سيستمها قابل حمل نيستند. به عبارت ديگر، يك بسته DTS كه براي انجام انتقالي از سيستم SQL Server A طراحي شده است، به سادگي نميتواند براي انجام همان انتقال از
سيستم B مجدداً استفاده شود. علاوه بر اين محدوديتهاي توزيع، نگارشهاي
قبلي DTS فاقد سيستم Login
و مديريت خطاي قوي بوده و قابليت مديريت محدودتري داشتند.
در SQL Server 2005، مايكروسافت DTS
را اصلاح كرده و آن را از زمينه بازنويسي كرده است. طبق تمام طبيعت جديد آن،
مايكروسافت نام DTS را به Integration Services
تغيير داده است. هدف مايكروسافت از SQL Server 2005 Integration Services، ساخت آن به عنوان يك محيط ETL جهاني براي Windows
برابر با هر محصول BI
ETL سطح جهاني مستقل است. براي اين
مسائل، مايكروسافت Integration
Services كاملاً جديد را با
استفاده از كد .NET مديريت شده نوشته است و پايه مستحكمتري به آن بخشيده است. در اين
فرآيند، مايكروسافت Integration Services
را كاملاً از اول طراحي كرده است، معماري كاملاً جديدي به آن داده و
پشتيباني بهتري براي قابليت برنامهنويسي و كارآيي زمان اجراي بهبود يافته فراهم
كرده است. Integration
Services جديد، داراي ويژگيهايي
نظير يك طراح گرافيكي جديد و يك انتخاب بهبود يافته مهم از وظايف انتقال داده و
تبديلات است. Integration
Services شبيه DTS قديمي، از 100 درصد منبع و مقصد پشتيباني ميكند، بدين معني كه ميتواند
بهطور مستقل به هر منبع داده منبع و مقصد متصل شود، بدون نياز به اين كه منبع
داده، يك سيستم SQL
Server باشد. در اين فصل،
مطالبي درباره اين ويژگيهاي جديد در SQL Server 2005 Integration Services ميآموزيد. ابتدا، نگاهي به درون معماري Integration
Services جديد خواهيد داشت
و سپس توري راهنما از اجزا و ابزارهاي Integration Services جديد داريم.
معماري Integration
Services جديد به دو بخش
اصلي تقسيم ميشود: DTP[3] و DTR[4]. مايكروسافت Integration
Services را به دو بخش اصلي
تقسيم كرده است، به ويژه به اين دليل كه حايل واضحي را بين جريان داده و جريان
كاري به وجود آورد. در نگارشهاي قبلي DTS،
موتور جريان داده قويتر از قابليتهاي جريان كاري بود. اين تقسيمبندي جديد
لزوماً بخش جريان كاري Integration Services
را يك جزء كلاس بالا در همان سطح جزء جريان داده ساخته است. DTP جديد لزوماً جايگزين Data Pump DTS
قديمي شده است كه در نگارشهاي SQL Server 7
و 2000
از DTS استفاده ميشوند. كار اصلي آن، مديريت جريان داده بين منبع و مقصد
است. DTR اصولاً يك محيط اجراي كاري است كه جريان كاري مورد استفاده در يك
بسته Integration
Services را كنترل ميكند.
هر يك از اين اجزا با استفاده از DLL
خاص خود و مدل شيئي مجزاي خود پيادهسازي ميشوند. در شكل 1-9، ميتوانيد مروري از
معماري Integration
Services جديد را ببينيد.

DTP
و Integration
Services DTR جديد را در بخشهاي
بعد بهطور مفصل تشريح ميكنيم. براي كسب اطلاعات بيشتر درباره اين مجموعه ابزار Integration Services جديد، در ادامه فصل مطالبي ارايه ميشود.
DTP
به تبديلات و جريان دادهاي توجه دارد كه هنگام انتقال رديفها بين منبع و مقصد
داده انجام ميشوند. DTP
از آداپتورهاي داده براي اتصال به منابع و مقصد استفاده ميكند. همانگونه كه در
شكل 1-9 ميبينيد، موتور DTP
با استفاده از مدل شيئي DTP Pipeline
مورد دستيابي قرار ميگيرد. اين مدل شيئي، APIاي است كه توسط
تبديلات تعبيه شده و تأمين شده توسط مايكروسافت و تبديلات اختصاصي ايجاد شده كاربر
استفاده ميشوند. تبديلات داده، رديف را هنگامي انتقال داده و دستكاري ميكنند كه
داده از ستونهاي منبع به ستونهاي مقصد منتقل ميشوند. ميتوانيد در شكل 2-9،
معماري DTP جديد را بهطور مفصلتر بررسي كنيد.

DTP
از آداپتورهاي داده براي اتصال نقاط انتهايي منبع و مقصد داده استفاده ميكند.
همانگونه كه از نام آنها مشخص است، آداپتورهاي داده منبع داده متصل شده و ورودي
براي بستههاي Integration
Services را فراهم ميكنند.
آداپتورهاي داده مقصد، به مقصد داده متصل شده و داده را به خروجي ارسال ميكنند. SQL Server 2005 تعدادي آداپتور داده منبع و مقصد را فراهم كرده است. SQL Server 2005
Integration Services همراه با تعدادي
آداپتور منبع و مقصد تعبيه شده است، از جمله آداپتورهايي براي SQL Server، فايلهاي flat
و ساير منابع داده سازگار با OLE DB.
براي كسب اطلاعات بيشتر درباره آداپتورهاي داده خاصي كه پشتيباني ميشوند، به بخش
بعدي اين فصل مراجعه كنيد.
در حالي كه كار آداپتورهاي داده، ساخت
اتصالاتي به نقاط انتهايي منبع و مقصد داده است، كار تبديلات Integration
Services انتقال و احتمالاً
دستكاري داده هنگام انتقال بين نقاط انتهايي منبع و مقصد است. تبديل Integration
Services ميتواند به سادگي
يك نگاشت يك به يك بين ستونهاي منبع و مقصد، ايجاد ستونهاي مقصد جديد با استفاده
از نگاشتهاي يك به چند يا محاسبه ستونهاي مشتق شده را انجام دهد. SQL Server 2005 Integration
Services همراه با تعدادي
تبديلات تعبيه شده واقعي است كه در ادامه اين فصل بيان ميگردند. علاوه بر اين
تبديلات تعبيه شده، ميتوانيد تبديلات اختصاصي خاص خود را با بهره بردن از API مدل شيئي DTP
بسازيد.
DTR
شامل موتور DTR و اجزاي DTE
است. اجزاي DTR اشيايي هستند كه به شما امكان ميدهند تا بر اجراي Integration
Services نظارت داشته
باشيد. اجزاي DTR براي ساخت جريانات كاري استفاده ميشوند، كانتينرهايي كه عمليات
ساخت يافته را فراهم ميكنند، وظايفي كه انتقال داده را و عملكرد تبديل را فراهم
ميكنند و الزاماتي كه توالي يك جريان كاري را در يك بسته كنترل ميكنند. ميتوانيد
مروري از معماري DTR جديد را در شكل 3-9 ببينيد.

اجزاي DTR اصلي، كانتينرها و وظايف هستند. وظايف كلكسيونهايي از اجزاي DTR هستند؛ هر وظيفه مركب از منابع و مقاصد داده و تبديلات داده
هستند. كانتينرها براي سازماندهي وظايف مرتبط استفاده ميشوند. اين كانتينرها و
وظايف براي تشكيل بستهها، با يكديگر گروهبندي ميشوند. بسته[5] Integration
Services واحدي فيزيكي است
كه تمام اعمالي را كه در يك عمل انتقال معين انجام خواهند شد، با يكديگر گروهبندي
ميكند. بستهها توسط DTR
براي انجام انتقالهاي داده اجرا ميشوند. بستههاي Integration
Services ميتوانند به
سادگي مجدداً اجرا شوند يا حتي به سيستمي متفاوت منتقل شده و بهطور مستقل اجرا
شوند. براي كسب اطلاعات بيشتر درباره اجزاي خاصي كه DTR را تشكيل ميدهند، به ادامه فصل مراجعه كنيد.
هدف اصلي موتور DTR كنترل اجراي بستههاي Integration Services است. DTR
جريان كاري وظايف موجود در يك بسته Integration Services را كنترل ميكند. علاوه بر اين، موتور DTR چيدمان بسته را ذخيره ميكند؛ بستهها را اجرا كرده و سرويسهاي
اشكالزدايي، login كردن و مديريت رويداد را فراهم ميكند. موتور DTR همچنين به شما امكان مديريت اتصالات و دستيابي به متغيرهاي بسته Integration
Services را ميدهد.
DTR
با استفاده از چارچوب كاري شيئي DTR
مورد دستيابي قرار ميگيرد. چارچوب كاري شيئي زمان اجراي DTR يك API
است كه از Integration
Services Import/Export Wizard
و Integration
Services Designer علاوه بر ابزار dtexec خط فرمان پشتيباني ميكند. Import/Export
Wizard و Designer براي ايجاد بستهها استفاده ميشوند. موتور DTR كه به C++
نوشته شده است و API آن با استفاده از يك C++ API
طبيعي و يك اسمبلي .NET ارايه ميشوند كه به آن امكان ميدهد از طريق برنامههاي .NET مديريت شده مورد
دستيابي قرار گيرد. برنامههايي كه از مدل شيئي DTR استفاده ميكنند ميتوانند ايجاد و اجراي بستههاي Integration
Services را خودكار كنند.
بستههاي Integration
Services، كلكسيونهايي از
اجزاي DTR و DTP را سازماندهي ميكنند. بسته واحد اجرايي براي عمل انتقال Integration
Services است. به عبارت
ديگر، براي استفاده از Integration Services
براي انجام انتقالهاي داده و عمليات ETL،
بايد بستهاي را ايجاد كنيد كه حاوي تمام اجزاي DTP باشد كه منبع و مقصد را براي داده و تبديلاتي كه انجام خواهند شد
تعريف ميكنند. هنگامي كه بستهاي ايجاد ميشود، بسته را براي انجام انتقال داده
اجرا ميكنيد. ميتوانيد مروري از يك بسته Integration Services نمونه را در شكل 4-9 ببينيد.
بستههاي Integration
Services ميتوانند با
استفاده از مجموعهاي از ابزارهاي فراهم شده توسط SQL Server 2005 ايجاد شوند يا ميتوانند با برنامهنويسي با استفاده از DTR API ايجاد گردند. بستههاي Integration Services ميتوانند در پايگاه داده SQL Server msdb
به عنوان فايلهاي XML كه در سيستمهاي فايل قرار ميگيرند، ذخيره شوند. ميتوانيد پيشنمايشي
از ابزارهاي طراحي Integration
Services را در ادامه فصل
ببينيد.
عجيب نيست كه معماري Integration
Services جديد، تعدادي
قابليت جديد مهم را به Integration Services
اضافه كرده است كه آن را يك ابزار تبديل داده جهاني قويتر كرده است. سپس، برخي از
بهبودهاي مهمي را بررسي ميكنيم كه اين نگارش جديد از Integration
Services براي جدول آورده
است.

تنظيم
خصوصيات زمان اجراي بستههاي Integration Services
يكي از محدوديتهاي عمده نگارشهاي Integration
Services اين واقعيت است كه
بستهها لزوماً به يك منبع و مقصد معين مرتبط هستند. اين بدان معني است كه داشتن
يك بسته معين و استفاده مجدد آسان از آن در سروري متفاوت واقعاً مشكل بود، حتي اگر
آن سرور از همان پايگاههاي داده پشتيباني كند. در حالي كه استفاده از متغيرهاي
سراسري و ساير workaroundهاي پيچيده براي
رفع اين محدوديت امكانپذير بود، اين workaroundها راهحلهايي قوي
براي اين مشكل نيستند. SQL Server 2005 Integration Services
جديد به يك بسته امكان مديريت چندين نقطه انتهاي منبع و مقصد را ميدهد. ميتوانيد
از اين ويژگي براي تنظيم خصوصيات بسته در زمان اجرا از فايلهاي پارامترها، Registry يا اسناد XML
استفاده كنيد.
Login كردن
Integration Services اصلي همچنين از قابليتهاي login تعبيه شده پشتيباني ميكند. عمل login بستهها، به ويژه براي نظارت و عيبيابي مفيد است. در حالي كه ميتوانيد
آنها را شخصاً اضافه كنيد، اين مسأله نياز به كار برنامهنويسي در بخش شما دارد. SQL Server 2005
Integration Services جديد، گزينههاي login كردن تعبيه شده را براي بستهها، وظايف و تبديلات را فراهم كرده
است.
شروع
مجدد و نقطه بررسي
ويژگي جديد مهم ديگر در SQL Server 2005
Integration Services، پشتيباني براي
نقاط بررسي و شروع مجدد در بستههاي Integration Services است. اين ويژگي جديد امكان ميدهد نقاط بررسي متفاوت به مراحل
مختلف در بستههاي Integration
Services پيچيده مرتبط
شوند. بنابراين اگر بستهاي كه از نقاط بررسي استفاده ميكنند، ناموفق باشد، كل
بسته نبايد مجدداً از ابتدا اجرا شود. در عوض، اين بسته ميتواند در ابتداي نقطه
بررسي ناموفق مجدداً شروع شود. براي بستههاي با اجراي طولاني، اين امر ميتواند
در زمان صرفهجويي زيادي كند، زيرا كل بسته نبايد مجدداً پردازش شود. در عوض، بسته
Integration
Services ميتواند از محلي
كه پردازش رها شده است، ادامه دهد. هنگامي كه اين مسأله با مدير رويداد تركيب ميشود،
ميتواند ابزار مفيدي براي مديريت خودكار كارهاي Integration
Services شما باشد.
متغيرها
پشتيباني از متغيرها، ويژگي جديد ديگري
در SQL
Server 2005 Integration Services
است. در SQL
Server 7 و SQL Server 2000، بستههاي DTS
از متغيرهايي براي استفاده در اسكريپتهاي تبديل پشتيباني ميكند، ولي از متغيرهاي
حوزه بسته پشتيباني نميكند. اين فقدان متغيرهاي سراسري، آن را براي استفاده مجدد
از بستههاي DTS در چندين پايگاه داده و سرورهاي مختلف مشكل ميكرد. براي اطمينان،
راهحلهايي وجود داشت، ولي با توجه به اين كه بستههاي DTS براي استفاده شدن در اين الگو طراحي نشدهاند، اين راهحلها قدري
پيچيده بوده و چندان قوي نيستند. در SQL Server 2005،
طراحي Integration
Services جديد، پشتيباني از
بسته، وظيفه و متغيرهاي سطح رويداد را فراهم كرده است، انعطافپذيري بستههاي Integration
Services را افزايش داده و
همچنين موجب تسهيل زياد بستههاي Integration Services شده است. همانگونه كه از نام آنها مشخص است، متغيرهاي حوزه بسته
ميتوانند با تمام اجزا در بسته Integration Services ديده شوند. متغيرهاي حوزه وظيفه ميتوانند توسط اجزاي آن وظيفه
خاص ديده شده و مورد دستيابي قرار گيرند، ولي نه با هر يك از اجزاي ديگري كه بخشي
از بسته Integration
Services هستند. يك كاربرد
نمونه از يك متغير Integration
Services حوزه بسته ممكن
است حاوي نام سيستم SQL Server
جاري باشد، به بسته اجازه ميدهد تا در سيستم ديگري با جايگزين كردن آن نام سرور
سيستم در متغيرهاي Integration
Services در زمان اجرا به
سادگي اجرا شوند.
متغيرهاي
سيستم
تمام بستههاي Integration
Services داراي تعدادي
متغير سيستمي تعبيه شده هستند كه جنبههاي مختلف يك بسته Integration
Services را نشان ميدهند.
جدول 1-9 متغيرهاي سيستمي Integration Services جديد را فهرست كرده است.
|
متغير
سيستمي |
شرح |
|
BreakpointTargetDescription |
حاوي
شرحي از نقطه شكست است. |
|
Cancel |
نشان
ميدهد كه اجرا بايد لغو شود. |
|
CountDone |
حاوي
شمارنده پيشرفت انتقال است. |
|
CreationDate |
حاوي
تاريخ ايجاد بسته است. |
|
CreatorComputerName |
حاوي
نام كامپيوتر مورد استفاده براي ايجاد بسته است. |
|
CreatorName |
حاوي
نام كاربري است كه بسته را ايجاد كرده است. |
|
CustomEventDescription |
يك
رويداد اختصاصي را توصيف ميكند. |
|
CustomEventInfo |
حاوي
اطلاعات رويداد اختصاصي است. |
|
CustomEventName |
حاوي
يك نام رويداد اختصاصي است. |
|
CustomEventValue |
حاوي
مقدار رويداد اختصاصي است. |
|
CustonEventGUID |
حاوي
GUID رويداد اختصاصي است. |
|
ErrorCode |
حاوي
يك كد خطاست. |
|
ErrorDescription |
حاوي
يك شرح خطاست. |
|
ExecutionInstanceGuid |
حاوي
يك GUID است كه نمونه بسته جاري را تعيين ميكند. |
|
ExecutionStatus |
حاوي
وضعيت اجراي بسته است. |
|
LocaleId |
حاوي
كد تعيين هويت Locale است. |
|
MachineName |
حاوي
نام ماشين جاري است. |
|
MaxCount |
حاوي
حداكثر تعداد آيتمهاي منتقل شونده است. |
|
PackageId |
حاوي
تعيين هويت بسته جاري است. |
|
PackageName |
حاوي
نام بسته جاري است. |
|
PercentComplete |
حاوي
وضعيت پيشرفت انتقال است. |
|
ProgressCountHigh |
حاوي
حد بالاي پيشرفت انتقال است. |
|
ProgressCountLow |
حاوي
حد پايين پيشرفت انتقال است. |
|
ProgressDescription |
حاوي
شرح پيشرفت انتقال است. |
|
ProgressEvent |
حاوي
تعيين هويت رويداد پيشرفت انتقال است. |
|
Propagate |
نشان
ميدهد آيا يك رويداد ميتواند منتشر شود. |
|
SourceDescription |
حاوي
يك شرح منبع رويداد است. |
|
SourceID |
حاوي
يك تعيين هويت منبع رويداد است. |
|
SourceName |
حاوي
نام يك منبع رويداد است. |
|
StartTime |
حاوي
زمان شروع اجراي بسته است. |
|
TaskID |
حاوي
يك تعيين هويت وظيفه است. |
|
TaskName |
حاوي
نام يك وظيفه است. |
|
UserName |
حاوي
نام كاربر اجرا كننده بسته است. |
|
VersionBuild |
حاوي
شماره ساخت بسته است. |
|
VersionComment |
حاوي
شرح بسته است. |
|
VersionGUID |
حاوي
GUID بسته است. |
|
VersionMajor |
حاوي
شماره نگارش اصلي بسته است. |
|
VersionMinor |
حاوي
شماره نگارش فرعي بسته است. |
كنترل
جديد پيچيده
SQL Server 2005 Integration Services همچنين از كنترل جريان پيچيده پشتيباني ميكند. در هر بسته Integration
Services، ميتوانيد مسيري
را مشخص كنيد كه چنانچه يك عمل معين موفق يا ناموفق باشد، انجام خواهد شد. مثلاً،
اگر عملي موفق باشد، ميتوانيد بسته Integration Services خود را براي رفتن به عمل بعدي تنظيم كنيد. در غير اين صورت، اگر
عملي ناموفق باشد، ميتوانيد عمل ديگري را انجام دهيد. اطلاعات بيشتر درباره ويژگي
جريان خطايي جديد در اين بخش ارايه ميشود همچنين ميتوانيد جريان كنترل را در
روشي تنظيم كنيد كه چندين وظيفه ميتوانند بهطور موازي اجرا شوند يا ميتوانيد
وظايف را مجبور به اجراي ترتيبي كنيد كه اين كار با مشخص كردن اين وظيفه بعدي اجرا
نخواهد شد تا وقتي كه وظيفه جاري تكميل شود. همچنين ميتوانيد از يك ساختار Integration
Services جديد به نام
كانتينر[6] براي گروهبندي
وظايف Integration
Services مرتبط با يكديگر
استفاده شود. همچنين ميتوانيد داراي متغيرها و جريان كنترل داخلي خاص خود باشند.
همچنين چندين ساختار حلقه وجود دارد كه به شما امكان تنظيم اعمال تكراري را ميدهند.
يك كانتينر For
Each Loop وجود دارد كه قادر
به تكرار گروهي از اشياست و عملي را روي اين اشيا در هر تكرار انجام ميدهد. علاوه
بر اين، يك كانتينر For Loop
وجود دارد كه ميتواند يك عبارت را ارزيابي كند و بهطور شرطي اعمال تكراري را
انجام دهد.
جريانهاي
خطا
يكي از ويژگيهاي جديد مهم SQL Server 2005
Integration Services، توانايي آن براي
پشتيباني از جريانهاي خطاست. ويژگي Error Flows
جديد، لزوماً به شما امكان افزودن مديريت خطا را به بستههاي Integration Services شما ميدهد. با اين ويژگي جريانهاي خطاي جديد، هنگامي كه يك Integration
Services، رديفهاي حاوي
شروط خطا را تبديل ميكند، بهجاي متوقف كردن فرآيند با يك خطا، Integration
Services ميتواند رديف
مشكلدار را بر طبق جريان خطايي كه تنظيم كرده است، مسيريابي كند. مثلاً، جريان
خطا ممكن است نشان دهد كه رديفي به يك فايل log نوشته شده است يا همچنين ميتواند بسته را به وظيفهاي هدايت كند
كه روالهاي خطاي بهتري را انجام دهد كه حتي ميتواند داده را دستكاري كرده و رديف
را براي پردازش مجدد در pipeline
قرار دهد.
حالت
فوري و حالت پروژه
شبيه روش كار SQL Server 2000
DTS كه DTS داراي يك رابط ويزارد بود كه در اصل براي اجراي انتقالهاي داده
ويژه طراحي شده بود و يك DTS Designer
بود كه براي ساخت بستههاي DTS
پيچيدهتر استفاده ميشد، SQL Server 2005 Integration Services از يك حالت فوري[7] و يك حالت
پروژه[8] پشتيباني ميكند.
براي استفاده از Integration
Services در حالت فوري، ميتوانيد
Integration
Services Import/Export Wizard
را از منو اجرا كنيد. Integration Services Import/Export Wizard ميتواند براي ساخت، اجرا و ذخيره اختياري بستههاي Integration
Services كه انتقالهاي
ساده را انجام ميدهند، استفاده شود. Integration Services Import/Export
Wizard جديد SQL Server 2005 بسيار شبيه نگارش موجود در SQL Server 2000 بوده و عمل ميكند.
در حالي كه حالت آني براي عمليات انتقال
داده يك زمانه سريع مفيد است، حالت پروژه براي ساخت بستههاي Integration
Services مهمتر با استفاده
از Business
Intelligence Development Studio
مفيد است. Business
Intelligence Development Studio
حاوي يك Integration
Services Designer كاملاً جديد است
كه از يك مجموعه كاملاً جديد از Data Flow،
Control
Flow و Event handlers پشتيباني ميكند كه ميتوانند براي ساخت بستههاي Integration
Services به كار روند. Integration
Services Designer جديد همچنين
پشتيباني كاملي را براي اشكالزدايي بستههاي Integration
Services فراهم كرده است.
ميتوانيد Integration
Services Designer جديد را در ادامه
فصل بهطور مفصل ببينيد.
امضاي
ديجيتال بستههاي Integration Services
با استفاده از متدي شبيه ويژگي امضاي
ديجيتال موجود كه در برنامههاي Microsoft .NET
در دسترس قرار گرفته است، بستههاي Integration Services هم اينك ميتوانند به خوبي امضا شوند. بستهها ميتوانند در طي
فرآيند طراحي با استفاده از Integration Services Designer به صورت ديجيتال امضا شوند. هنگامي كه بستهاي بهطور ديجيتالي
امضا شده باشد، آن بسته فقط خواندني است و ديگر نميتواند اصلاح شود.
DTP
از آداپتورهاي داده براي اتصال نقاط انتهايي منبع و مقصد داده استفاده ميكند.
همانگونه كه از نام آنها مشخص است، آداپتورهاي داده منبع به منبع داده متصل شده
و ورودي براي بستههاي Integration Services
فراهم ميكنند. آداپتورهاي داده به مقصد داده متصل شده و داده را به خروجي ارسال
ميكنند. SQL
Server 2005 تعدادي آداپتور
داده منبع و مقصد فراهم ميكند. جدول 2-9 مجموعهاي از آداپتورهاي داده تعبيه شده
را فهرست ميكند كه در SQL Server 2005
تأمين شدهاند.
|
آداپتور
داده |
شرح |
|
Flat File Destination
Adapter |
يك
آداپتور سيستم فايل كه داده متني حايلدار را به يك فايل مينويسد. |
|
Flat File Source
Adapter |
يك
آداپتور سيستم فايل كه داده متني حايلدار را از يك فايل ميخواند. |
|
OLE DB Destination
Adapter |
يك
تأمين كننده OLE
DB كه داده را به
يك مصرف كننده OLE مينويسد. |
|
OLE DB Source Adapter |
يك
مصرف كننده OLE
DB كه داده را از
يك تأمين كننده OLE
DB ميخواند. |
|
Raw File Destination
Adapter |
يك
آداپتور سيستم فايل كه داده را به يك فايل مينويسد. |
|
Raw File Source Adapter |
يك
آداپتور سيستم فايل كه داده را از يك فايل ميخواند. |
|
SQL Server Destination
Adapter |
يك
آداپتور SQL
Server كه براي نوشتن
داده به يك جدول يا ديدگاه مينويسد. |
|
Web Service Source
Adapter |
يك
آداپتور Web
Service كه داده را از
يك سرويس وب XML ميخواند. |
كانتينرها ساختار جديدي هستند كه
مايكروسافت به SQL
Server 2005 Integration Services اضافه كرده است.
هدف اصلي از كانتينرهاي Integration Services،
افزودن ساختار و كنترل جريان به بستههاي Integration Services است. كانتينرها وظايف مرتبط را با يكديگر گروهبندي كرده و طراحي
شده است تا براي اجراي وظايف تكراري يا فراهم كردن بْردي براي متغيرها استفاده
شوند. SQL
Server 2005 Integration
Services از انواع
كانتينرهاي نشان داده شده در جدول 3-9 پشتيباني ميكند.
|
كانتينر |
شرح |
|
Package Container |
كلكسيوني
از عناصر بسته |
|
Foreach Loop Container |
جريان
كنترل تكرار را در يك بسته فراهم ميكند. |
|
For Loop Container |
پشتيباني
از اعمال تكراري را در يك بسته فراهم ميكند. |
|
Sequence Container |
كانتينرها
و وظايف مرتبط را در بسته گروهبندي ميكند. |
|
TaskHost Container |
سرويسهايي
را براي يك وظيفه فراهم ميكند. |
|
Container Properties |
مقاديري
را نگهداري ميكند كه براي كانتينر مشترك هستند. |
|
Container Collections |
كلكسيوني
از كانتينرها |
وظايف Integration
Services اساسيترين عناصر
بسته Integration
Services هستند. وظيفه Integration
Services لزوماً عملي را
تعريف ميكند كه انجام خواهد شد. اين اعمال در زمينه كپي كردن فايلها، اجراي
عبارات T-SQL و اجراي اسكريپتها براي انجام انتقالهاي FTP و اجراي مدلهاي data mining
هستند. چندين وظيفه مرتبط ميتوانند در كانتينرها گروهبندي شوند. جدول 4-9 وظايفي
را نشان ميدهد كه در SQL Server 2005 Integration Services
وجود دارند.
|
وظيفه |
شرح |
|
ActiveX Script Task |
يك
اسكريپت ActiveX را اجرا ميكند كه عمل خاصي را انجام ميدهد. |
|
Analysis Services
Execute DDL Task |
عبارات
T-SQL
DDL را اجرا ميكند. |
|
Analysis Services
Processing Task |
اشياي
Analysis
Services را پردازش ميكند. |
|
Bulk Insert Task |
داده
را از يك فايل متني در يك جدول درج ميكند. |
|
Data Flow Task |
داده
را بين منابع داده كپي كرده و منتقل ميكند. |
|
Data Mining Query Task |
پرسوجوهاي
data
mining را اجرا ميكند. |
|
Execute Package Task |
بستههاي
ديگر را اجرا ميكند. |
|
Execute Process Task |
يك
برنامه يا اسكريپت را اجرا ميكند. |
|
Execute SQL Task |
عبارات
T-SQL را اجرا ميكند. |
|
File System Task |
اعمالي
را در سيستم فايل اجرا ميكند. |
|
File Transfer Protocol
Task |
انتقالهاي
داده FTP را اجرا ميكند. |
|
Message Queue Task |
پيامها
را از پرسوجوهاي داده MSMQ
ارسال و دريافت ميكند. |
|
Script Task |
اسكريپتهاي
نوشته شده در VB.NET را با استفاده از محيط Microsoft Visual Studio for
Applications اجرا ميكند. |
|
Send Mail Task |
يك
پيام e-mail را ارسال ميكند. |
|
XML Task |
به
دادهها در اسناد XML
دستيابي دارد. |
تبديلات Integration
Services آنچه را كه هنگام
انتقال داده از آداپتور داده منبع به آداپتور داده مقصد بر داده رخ ميدهد، كنترل
ميكند. SQL
Server 2005 از تعدادي تبديلات
تعبيه شده و تبديلات اختصاصي تعريف شده كاربر پشتيباني ميكند. ميتوانيد تبديلات
اختصاصي را با استفاده از API
فراهم شده توسط مدل شيئي DTP
ايجاد كنيد. SQL
Server 2005 Integration
Services ليست جامعي از
تبديلات استاندارد تعبيه شده را فراهم كرده است كه در جدول 5-9 نشان داده شدهاند.
|
تبديل |
شرح |
|
Aggregate
Transformation |
انبوههها
را انجام ميدهد. |
|
Allocation
Transformation |
مقدار
يك ستون ورودي را در بين چندين ستون خروجي گسترش ميدهد. |
|
Character Map Transformation |
توابع
رشتهاي را بر داده كاراكتري اعمال ميكند. |
|
Conditional Split
Transformation |
داده
را ارزيابي كرده و آن را براي خروجيهاي مختلف مسيريابي ميكند. |
|
Copy/Map Transformation |
ستونهاي
خروجي جديد را با كپي كردن ستونهاي ورودي ايجاد ميكند. |
|
Data Mining Model
Accuracy Transformation |
دقت
مدلهاي data
mining را محاسبه ميكند. |
|
Data Mining Model
Training Transformation |
مدلهاي
data
mining را آموزش ميدهد. |
|
Data Mining Query
Transformation |
پرسوجوهاي
گزارهاي data
mining را اجرا ميكند. |
|
Data Conversion
Transformation |
نوع
داده يك ستون ورودي را به نوع داده خروجي متفاوتي تبديل ميكند. |
|
Derived Column
Transformation |
يك
ستون خروجي را از نتايج عبارات ايجاد ميكند. |
|
Dimension Processing
Transformation |
ابعاد
مكعب OLAP را پردازش ميكند. |
|
File Extractor Transformation |
داده
را از يك جريان داده بسته خوانده و آن داده را در فايل مينويسد. |
|
File Injector
Transformation |
داده
را از يك فايل خوانده و آن داده را به يك جريان داده بسته اضافه ميكند. |
|
Fuzzy Grouping
Transformation |
مقادير
را در داده ستون ورودي استاندارد ميكند. |
|
Fuzzy Lookup
Transformation |
مقادير
را در يك جدول مرجع با استفاده از تطابق فازي جستجو ميكند. |
|
Logged Lineage
Transformation |
اطلاعات
محيطي را براي جريان داده بسته فراهم ميكند. |
|
Lookup Transformation |
مقادير
يك جدول مرجع را با استفاده از تطابق دقيقي جستجو ميكند. |
|
Merge Transformation |
دو
مجموعه داده ذخيره شده را ادغام ميكند. |
|
Merge Join
Transformation |
دو
مجموعه داده را با استفاده از يك تلفيق FULL،
LEFT يا INNER
تلفيق ميكند. |
|
Multicast
Transformation |
داده
ورودي را به خروجيهاي مختلف توزيع ميكند. |
|
Partition Processing
Transformation |
پارتيشنهاي
OLAP را پردازش ميكند. |
|
Pivot Transformation |
داده
ورودي را برطبق يك مقدار ستون ورودي محوري ميكند. |
|
Row Count
Transformation |
رديفهاي
ورودي را شمارده و تعداد را در يك متغير ذخيره ميكند. |
|
Sampling Transformation |
يك
نمونهسازي ارايهاي از مجموعه داده ورودي ايجاد ميكند. |
|
Script Transformation |
يك
اسكريپت را براي انجام ورودي اجرا ميكند. |
|
Slowly Changing
Dimension Transformation |
بهنگامرساني
و درج رديفها را در ابعاد OLAP
هماهنگ ميكند. |
|
Sort Transformation |
داده
ورودي را مرتب كرده و داده ذخيره شده در خروجي تبديل را كپي ميكند. |
|
Surrogate Key
Transformation |
خصوصيات
اختصاصي اضافي را براي بسته Integration Services فراهم ميكند. |
|
Union All
Transformation |
چند
مجموعه داده را ادغام ميكند. |
|
UnPivot Transformation |
داده
ورودي را برطبق يك مقدار ستون ورودي از حالت محوري خارج ميكند. |
توانايي به وجود آوردن و مديريت
رويدادها، ويژگي جديد ديگري در SQL Server 2005 Integration Services است. مديريت رويداد به بستههاي Integration
Services امكان پاسخ دادن
به رويدادهايي را ميدهد كه در زمان اجرا توسط كانتينرها و وظايف به وجود ميآورند.
رويدادها ميتوانند توسط عناصر بسته Integration Services براي مطلع كردن تعدادي از حالات مختلف فعال شوند، از جمله شروط
خطا، هنگامي كه وظيفهاي شروع شده باشد، هنگامي كه وظيفهاي تكميل شده باشد يا
تغيير در وضعيت متغير رخ داده باشد. جدول 6-9 مديران رويداد Integration
Services را فهرست ميكند.
|
مدير
رويداد |
شرح |
|
OnCustomerEvent |
توسط
يك وظيفه يا بسته طبق تقاضا به وجود ميآيد. |
|
OnError |
توسط
يك وظيفه يا كانتينر در يك خطا به وجود ميآيد. |
|
OnExecStatusChanged |
توسط
يك وظيفه يا كانتينر هنگامي به وجود ميآيد كه وضعيت اجراي آن تغيير كند. |
|
OnPostExecute |
توسط
يك وظيفه يا كانيتنر بعد از اجراي آن به وجود ميآيد. |
|
OnPostValidate |
توسط
يك وظيفه بعد از تأييد اعتبار آن به وجود ميآيد. |
|
OnPreExecute |
توسط
يك وظيفه يا كانيتنر قبل از اجراي آن به وجود ميآيد. |
|
OnPreValidate |
توسط
يك وظيفه قبل از تأييد اعتبار آن به وجود ميآيد. |
|
OnProgress |
توسط
يك وظيفه يا كانيتنر هنگامي به وجود ميآيد كه معيار پيشرفت خاصي برآورده شده
باشد. |
|
OnQueryCancel |
توسط
يك وظيفه يا كانتينر براي تعيين اين مسأله به وجود ميآيد كه آيا آن [OK]
بايد اجرا را متوقف كند. |
|
OnTaskFailed |
توسط
يك وظيفه هنگامي به وجود ميآيد كه ناموفق باشد. |
|
OnVariableValueChanged |
بهطور
اختياري توسط يك متغير هنگامي به وجود ميآيد كه مقدار آن تغيير كند. |
|
OnWarning |
توسط
يك وظيفه يا كانتينر هنگامي به وجود ميآيد كه هشداري توليد شده باشد. |
تأمينكنندگان Log ويژگي كاملاً جديد ديگري است كه مايكروسافت به بستههاي Integration
Services اضافه كرده است.
همانگونه كه از نام آنها حدس زده ميشود، تأمينكنندگان Integration
Services Log به شما امكان
افزودن امكان ثبت به بستهها، كانتينرها و وظايف را ميدهند. Logging براي ثبت اطلاعات خطا يا ساير اطلاعات وضعيت يا زمان اجراي مهم
استفاده ميشود. جدول 7-9 تأمينكنندگان Log
را فهرست كرده است كه مايكروسافت همراه با SQL Server 2005
عرضه ميكند.
|
تأمينكننده
log |
شرح |
|
تأمين
كننده log Text
File |
وروديهاي
log را در فايلهاي متني ASCII
با استفاده از يك فرمت مقدار مجزا شده با كاما (CSV) با استفاده از يك توسعه فايل پيشفرض .log مينويسد. |
|
تأمين
كننده log SQL
Profiler |
داده
رديابي SQL را با استفاده از يك توسعه فايل پيشفرض .trc در يك فايل رديابي مينويسد. |
|
تأمين
كننده log SQL
Server |
وروديهاي
log را در جدول sysdtslog90
در يك پايگاه داده SQL Server
مينويسد. |
|
تأمين
كننده log Windows
Event |
وروديهاي
را در Windows
Application مينويسد. |
|
تأمين
كننده log XML
File |
فايلهاي
log را با استفاده از توسعه فايل پيشفرض .xml در يك فايل XML
مينويسد. |
در نتيجه اين معماري كاملاً جديد، مجموعه
ابزار Integration
Services كاملاً اصلاح شده
و ظاهر كاملاً جديدي به خود گرفته است. در حالي كه شباهتهايي در برخي از ابزارهاي
سادهتر وجود دارد (مثلاً، Integration Services Import/Export Wizard كه براي انجام عمليات انتقال داده ويژه استفاده ميشود)، ابزارهاي
مهمتري نظير Integration
Services Designer كاملاً متفاوت
هستند. اين كه شما يك كارشناس DTS
يا يك كاربر مبتدي آن باشيد، SQL Server 2005 Integration Services نيازمند اين است كه شما نحوه استفاده از اين ابزارهاي جديد را از
زمينه بياموزيد. در اين بخش، مروري از ابزارها و برنامههاي سودمند جديد Integration
Services خواهيم داشت كه
همراه با SQL
Server 2005 هستند.
مجموعه ابزار SQL Server 2005 Integration Services به دو ناحيه اصلي تقسيم ميشود: ابزارهايي كه براي ايجاد و اجراي
بستههاي Integration
Services استفاده ميشوند و
ابزارهايي كه براي كار با بستههاي DTS
موجود استفاده ميگردند. ابزارهاي Integration Services Designer شامل Integration Services Import/Export Wizard اصلي و Designer
پيشرفتهتر هستند. همانگونه كه در ادامه خواهيد ديد، Integration
Services Designer جداسازي معماري
جريان كنترل و جريان داده را با فراهم كردن ويراستارهاي مجزا براي طراحي جريان
كنترل و جريان داده بسته منعكس ميكند. Integration Services Designer يك ارايه گرافيكي از جريان كاري فراهم ميكند كه در داخل يك بسته Integration
Services رخ ميدهد. اين Integration
Services Designer جديد، ويژگيهاي
سطح جهاني از قبيل كنترل منبع را براي تسهيل محيطهاي چند برنامهنويسه فراهم كرده
است. همچنين ابزارهاي توزيع و اشكالزدايي بسته تعبيه شده وجود دارند، از جمله
توانايي تنظيم و كنترل نقاط شكست در يك بسته. همچنين ميتوانيد از Integration
Services Designer براي كنترل اجراي
يك بسته استفاده كند (پيشرفت كامل آن و نتيجه تبديلات و وظايف مجزا). ابزارهاي
بسته Integration
Services شامل يك Package Migration
Wizard هستند كه براي
انتقال بستههاي SQL
Server 7 و SQL Server 2000 به فرمت SQL Server 2005
جديد طراحي شده است. همچنين يك Integration Services Package Installer
Wizard وجود دارد كه
برنامههاي نصبي را براي بستههاي Integration Services ايجاد ميكند و توزيع اين بستهها را به سيستمهاي راهدور آسانتر
ميكند. علاوه بر اين، يك برنامه سودمند Integration Services Package Excution وجود دارد كه به شما امكان اجراي بستههاي Integration
Services را از خط فرمان ميدهد؛
اين يك ابزار مفيد براي مشاركت انتقال Integration Services به عنوان بخشي از اسكريپتهاي مديريتي شماست.
در اينجا نگاه دقيقتري به ابزارهاي
طراحي Integration
Services جديد مياندازيم.
ابتدا، Integration
Services Import/Export
Wizard را خواهيد ديد.
سپس، نگاهي تفصيلي به Integration Services Designer
جديد خواهيد داشت.
Integration
Services Import/Export
Wizard
Integration Services Import/Export Wizard اولين نقطه ورودي SQL Server 2005
در Integration
Services جديد است. شبيه
مشابههاي قبلي آن در SQL Server 7
و SQL
Server 2000، SQL Server 2005 Integration Services Import/Export Wizard مجموعهاي از كادرهاي محاورهاي را فراهم كرده است كه شما را از
طريق فرآيند انتخاب منبع داده، مقصد و اشيايي كه منتقل خواهند شد، هدايت ميكند. Integration
Services Import/Export
Wizard همچنين به شما
اجازه ميدهد تا بهطور اختياري بسته Integration Services را ذخيره و اجرا كنيد. ميتوانيد Integration Services Import/Export Wizard را با انتخاب گزينه Integration Services Import/Export
از منوي SQL
Server يا با وارد كردن dtswizard در خط فرمان اجرا كنيد. ذخيره كردن بستههاي توليد شده با Integration
Services Import/Export
Wizard و آنگاه ويرايش
آنها در Integration
Services Designer، روشي عالي براي
يادگيري مطالب بيشتر درباره Integration Services است، بخصوص اگر با Integration Services شروع كرده باشيد يا اگر از يكي از نگارشهاي قبلي به SQL Server 2005 Integration Services جديد منتقل شده باشيد. ميتوانيد Integration
Services Import/Export
Wizard را در شكل 5-9
ببينيد.

Integration Services Import/Export Wizard ابتدا شما را از طريق فرآيند انتخاب يك منبع داده هدايت ميكند. در
بازشوي Data
Source، تأمين كنندهاي انتخاب
كنيد كه ميخواهيد استفاده كنيد. بسته به تأمين كننده منتخب شما، گزينههايي براي
بقيه صفحه نمايش تغيير ميكنند. اگر Microsoft OLE DB Provider for SQL
Server را انتخاب كنيد،
صفحهاي شبيه شكل 5-9 را خواهيد ديد كه سپس سروري را انتخاب ميكنيد كه بايد به
پايگاه داده مرتبط متصل شده و نوع تعيين هويتي كه بايد استفاده شود. كليك كردن Next شما را از طريق كادرهاي محاورهاي ويزارد بعدي هدايت ميكند. كادر
محاورهاي بعدي به شما اجازه انتخاب مقصد داده را ميدهد كه لزوماً با كادر محاورهاي
منبع داده يكسان است، به جز اين كه محل انتقال داده را تعريف ميكند.
توجه: در حالي كه SQL Server 2005
Integration Services Wizard
همان عملكرد پايه Integration
Services Import/Export
Wizard را فراهم ميكند
كه در SQL
Server 7 و SQL Server 2000 وجود داشتند، نگارش جديد فاقد توانايي انجام نگاشتهاي داده
اختصاصي و توانايي وارد كردن اسكريپتهاي تبديل داده اختصاصي است. براي استفاده از
اين قابليتهاي پيشرفتهتر، بايد از Integration Services Designer استفاده كنيد.
بعد از انتخاب منبع و مقصد داده، اين
ويزارد به شما در مورد ذخيره اختياري و اجراي بسته Integration
Services به شما اعلان ميكند.
هنگامي كه هر وظيفه در بسته اجرا ميشود، پنجره انتقال بهطور خودكار بهنگام شده و
پيشرفت انتقال بسته Integration Services
را نشان ميدهد. هنگامي كه بسته Integration Services بهطور موفق اجرا ميشود، Integration Services Import/Export Wizard كادر محاورهاي را نمايش خواهد داد كه در شكل 6-9 نشان داده شده
است.
در حالي كه Integration
Services Import/Export
Wizard براي وظايف انتقالهاي
ويژه ساده مفيد است، اقتباس، تبديل و بارگذاري(ETL) نيازي به تأكيد و تواني بيشتر از آن چيزي دارند كه ويزارد Integration
Services ارايه ميدهد.
وظايف ETL، طبق طبيعتشان بيش از انتقالهاي داده ساده از يك مقصد ديگر
هستند. در عوض، آنها اغلب داده را از چندين منبع تركيب كرده، داده را دستكاري
نموده، مقادير را به ستونهاي جديد نگاشت كرده، ستونها را از مقادير محاسباتي
ايجاد نموده و انواع وظايف پاكسازي و تصحيح داده را فراهم ميكنند. اين قابليتهاي
پر تقاضاتر خارج از حوزه Integration Services Import/Export Wizard ساده هستند. اينجا محلي است كه Integration
Services Designer مجموعهاي از
ابزارهاي گرافيكي است كه ميتوانيد از آن براي ايجاد راهحلهاي تبديل و انتقال
داده قوي استفاده نماييد.

Integration Services Designer از Business Intelligence Development Studio با انتخاب File | New | Project براي باز كردن كادر محاورهاي New Project شروع ميشود. سپس براي ايجاد يك پروژه Integration
Services جديد، Business
Intelligence Projects
را از ليست Project
Types انتخاب كرده و سپس
Data
Transformation Project
را از ليست قالبها برگزينيد، همانگونه كه در شكل 7-9 نشان داده شده است.
توجه: در مورد اين
واقعيت كه Integration
Services Designer از Business
Intelligence Development Studio
شروع ميشود، تعجب نكنيد. اين مسأله تنها محدود به پروژههاي Analysis Services نيست. Integration Services Designer
و پروژههاي ساخته شده در Business Intelligence Development
Studio كاملاً قادر به
كار كردن با انواع داده رابطهاي و غيره هستند و محدود به داده Analysis Service نيستند.

پس از ايجاد پروژه، ميتوانيد Integration
Services Designer را با كليك راست
روي Packages در پنجره Solution Explorer
كه در بخش سمت راست صفحه نمايش نشان داده شده است، باز كنيد. سپس گزينه New Package را براي شروع Integration Services Designer انتخاب كنيد. هنگامي كه Integration Services Designer در ابتدا شروع ميشود، يك سطح خالي ارايه ميشود كه چندان شبيه Integration
Services Designer قبل نيست،
بنابراين شروع ميتواند كمي چالشآميز باشد.
Control
Flow Designer جديد
در حالي كه ميتوانيد از Integration
Services Designer به دو روش مختلف
استفاده كنيد، سادهترين روش احتمالاً شروع با برگه Control Flow و سپس باز كردن جعبه ابزار Control Flow است. بعد از نمايش جعبه ابزار، روي وظيفه Data Flow كليك كرده و آن را به سطح طراحي بكشيد. سطح Integration
Services Designer Control Flow
همانگونه كه در شكل 8-9 نشان داده شده است، ظاهر ميشود.

در اينجا، بسته Integration
Services بسيار ساده است،
زيرا شامل يك وظيفه Data Flow
است. بديهي است كه ميتوانيد با افزودن وظايف اضافي از جعبه ابزار Control Flow و حتي سازماندهي چندين وظيفه مرتبط در كانتينرها، اين بسته را
بسيار پيچيدهتر كنيد.
Data
Flow Designer جديد
در اين لحظه، بسته ميداند كه قصد دارد يك عمل
انتقال داده را انجام دهد، ولي نميداند كه چه چيزي را انتقال دهد يا اين كه داده
از كجا ارسال ميشود. بعد از افزودن وظيفه Data Flow،
مرحله بعد تعريف جريانهاي داده واقعي است. براي تعريف جريانهاي داده، روي وظيفه Data Flow دابل كليك كنيد تا برگه Data Flow
نمايش داده شود. در ابتدا، برگه Data Flow
خالي خواهد بود. براي افزودن اتصالات منبع و مقصد داده، جعبه ابزار Data Flow را در سمت چپ IDE
باز كرده و يك آيتم جريان داده OLE DB Source
و يك آيتم جريان داده OLE DB Destionation
را كشيده و در سطح Data
Flow Designer بيندازيد. علاوه
بر اين، ميتوانيد يك Flat File Destination
را اضافه كنيد كه ميتواند براي ارسال هر رديف خطا به خروجي يك فايل ASCII log استفاده شود.
حال كه بيان شد كه Integration
Services داده را از يك
منبع OLE
DB به مقصد OLE DB ديگري منتقل ميكند، ولي باز هم بايد اتصالات منبع و مقصد را
تعريف كنيد. علاوه بر اين، بايد اتصالي را براي جريان خطاي Flat File تنظيم كنيد. اساساً هر منبع يا مقصد جريان داده نياز به يك اتصال
همراه دارد كه لزوماً جزييات خاص را درباره نقطه انتهاي اتصال فراهم ميكند. به
دليل اين كه اين مثال از سه آيتم Data Flow
استفاده ميكند، سه اتصال متفاوت مورد نياز است. دو اتصال OLE DB و يك اتصال Flat File.
براي تعريف اين اتصالات، ميتوانيد در پنجره Connection پايين Integration Services Designer
نشان داده شده است، كليك راست كنيد كه يك منوي بازشو را نمايش ميدهد كه به شما
امكان انتخاب نوع اتصال مورد نظر براي ايجاد را ميدهد. انتخاب نوع اتصال از منوي
بازشو موجب نمايش Connection
Manager ميشود. در شكل
9-9، ميتوانيد ببينيد كه براي ايجاد اتصال OLE DB جديد استفاده ميشود.

پس از ايجاد اتصالات، بايد هر اتصال را
به آيتم جريان داده مناسبي مرتبط كنيد. براي لينك كردن اتصال به يك آيتم جريان
داده، روي آيتم جريان داده كليك راست كنيد، گزينه Edit يا Advanced Edit
را از منوي زمينه انتخاب كرده و سپس اتصالي را از ليست بازشوي نمايش داده شده در
كادر محاورهاي Edit برگزينيد. هنگام تعريف هر اتصال، نگاشت ستون و ساير تبديلاتي را
كه انجام خواهند شد، مشخص كنيد. پس از تكميل اين پيكربندي، برگه Integration
Services Designer Data Flow
شبيه شكل 10-9 ظاهر ميشود.

در وسط برگه Data Flow Designer ميتوانيد منبع OLE DB،
مقصد OLE
DB و آيتمهاي جريان داده Flat File
Destination را ببينيد. يك
جريان داده فلشي سبز مستقيم، منبع OLE DB
را به مقصد OLE
DB متصل كرده و يك جريان خطاي فلش قرمز
خميده، منبع OLE
DB را به مقصد Flat File متصل ميكند. اتصالات براي هر يك از اين آيتمها در پنجره Connections در پايين صفحه نمايش نشان داده شدهاند.
ارايه
گرافيكي اجراي بسته
هنگامي كه تمام اتصالات و جريانات داده
تعريف شدند، بسته ميتواند با كليك كردن فلش سبز رنگ در نوار ابزار يا با انتخاب
گزينه Start از منوي Debug
اجرا شود. قبل از اجراي بسته، ميتوانيد بهطور اختياري نقاط شكست را با انتخاب يك
آيتم به همراه گزينه New Breakpoint
از منوي Debug در بسته تعريف كنيد. هنگامي كه بسته اجرا شد، پنجرههاي Watch و Call
Stack بهطور خودكار باز
شده و Data
Flow Item در حال اجرا به
رنگ سبز تغيير ميكند. ميتوانيد نتيجه اجراي بسته نمونه را در شكل 11-9 ببينيد.

Package
Explorer جديد
ويژگي جديد ديگر در Integration
Services Designer، Package Explorer است. Package Explorer
يك نماي درختي سلسله مراتبي از Integration Services Package فراهم ميكند كه در طراح نمايش داده ميشود. Package Explorer در شكل 12-9 نشان داده شده است.

در سطح بالا، ميتوانيد نام بسته را
ببينيد و هر يك از اجزاي بسته در زيربسته ليست شدهاند. كليك كردن علامت بعلاوه در
جلوي هر جزء، موجب نمايش آيتمهاي واقعي ميشود. توجه به اين نكته حايز اهميت است
كه Package
Explorer تنها ابزاري براي
مشاهده نيست. از نماي Explorer،
ميتوانيد آيتمها را حذف كرده و خصوصيات آنها را ويرايش كنيد. هرچند، نميتوانيد
آيتمهاي جديدي را اضافه كنيد. اين كار تنها ميتواند در سطح طراح انجام شود.
پيكربندي
ويژگي پيكربنديهاي Integration
Services جديد براي سادهتر
شدن توزيع بستههاي Integration Services
طراحي شد. ويژگي پيكربنديهاي جديد به شما امكان ميدهد تا بهطور پويا يك بسته را
براي اجرا در محيطي متفاوت بهنگام كنيد. مثلاً، اتصالات نياز به رشتههاي اتصال
دارند و اين رشتههاي اتصال، اغلب تنها براي محيط معيني مناسب هستند. پيكربنديها
به شما امكان ميدهند تا اين انواع مقادير خاص سايت/ سرور را هنگام توزيع بسته، بهطور
پويا بهنگام كنيد. ميتوانيد پيكربنديها را با استفاده از Configuration
Wizard ايجاد كنيد. ميتوانيد
Configuration
Wizard را با استفاده از
گزينه منوي Integration
Services | Configurations
براي نمايش كادر محاورهاي Package Configuration Organization شروع كنيد، كه ميتوانيد روي Add براي شروع Configuration Wizard كليك كنيد. ميتوانيد Configuration Wizard را در شكل 13-9 ببينيد.

هرچند اين بخش قادر به تماس با تنها بخشي
از قابليت موجود در Integration Services
جديد SQL
Server 2005 است، خوشبختانه
اين بخش احساسي براي نحوه كار Integration Services Designer به شما ميدهد.
آخرين بخش اين فصل، برخي از ساير برنامههاي
سودمند مديريت بسته را به شما معرفي خواهند كرد كه توسط SQL Server 2005 فراهم شدهاند. يك Package Migration Wizard براي كمك به شما در تبديل بستههاي Integration
Services موجود به فرمت
بسته جديد SQL
Server 2005 فراهم شده است. همچنين
يك برنامه Packege
Management وجود دارد كه به
شما امكان كار كردن با بستههاي Integration Services موجود را ميدهد. علاوه بر اين، يك ابزار خط فرمان جديد به شما
امكان اجراي بستهها را از خط فرمان ميدهد.
تغيير معماري كامل و سازگاري با .NET Framework
را در نظر بگيريد و نبايد تعجب كنيد كه بستههاي DTS كه براي SQL Server 7
و SQL
Server 2000 ساخته شدهاند،
بايد قبل از امكان اصلاح به فرمت جديد منتقل شوند.
توجه: بستههاي DTS موجود كه براي SQL Server 2000
ساخته ميشوند، ميتوانند در SQL Server 2005
اجرا شوند. آنها همچنين ميتوانند در راهحلهاي بسته SQL Server 2005
Integration Services جديد قرار گيرند.
آنها نميتوانند اصلاح شوند، مگر اينكه ابتدا به فرمت جديد منتقل شوند.
SQL Server 2005 Package Migration
Wizard بستههاي Integration Services موجود را به فرمت بسته SQL Server 2005 Integration Services منتقل ميكند. Package Migration Wizard تلاش ميكند تا عناصر بسته Integration
Services موجود نظير وظايف،
تقدم، الزامات و متغيرها را گرفته و آنها را به آيتمهاي بسته SQL Server 2005 معادل تبديل كند. Package Migration Wizard ميتواند اجزاي بسته DTS
تأمين شده مايكروسافت را مديريت كند، ولي نميتواند وظايف اختصاصي را تبديل كند.
وظايف اختصاصي ساختار قديمي خود آنها را نگهداري كرده و به عنوان زيربستهاي
كپسوله ميكنند كه به بسته منتقل شده لينك ميشود. اسكريپتها ميتوانند بحث مسألهدار
ديگري براي Package
Migration Wizard باشند. در حالي كه
بيشتر اسكريپتهاي تبديل ActiveX
ميتوانند به وظيفه ActiceX Script
جديد تبديل شوند، اسكريپتهاي موجودي كه به مدل شيئي DTS قديمي مراجعه ميكنند، نميتوانند تبديل شوند.
ابزار خط فرمان ديگري كه توسط SQL Server 2005 Integration Services فراهم شده است، برنامه سودمند Packege Management است. ميتوانيد برنامه Packege Management
را با وارد كردن dtutil در خط فرمان اجرا كنيد. ابزار dtutil به شما امكان دستيابي به بستههايي را ميدهد كه در پايگاه داده SQL Server msdb ذخيره ميشوند. همچنين ميتواند براي كپي، حذف و امضاي بستههاي
موجود استفاده شود.
دو برنامه اضافي ميتوانند براي اجراي
بستهها استفاده شوند: dtexec
و dtexecui. همانگونه كه از نام آنها حدس زده ميشود، ابزار dtexec از خط فرمان اجرا ميشود، در حالي كه ابزار dtexecui يك رابط كاربر گرافيكي را نمايش ميدهد كه به شما امكان بارگذاري
و اجراي بستههاي Integration
Services را ميدهد. يك
جنبه قابل توجه ابزار dtexec
اين واقعيت است كه براي امنيت بهبود يافته، ميتواند با استفاده از آرگومانهاي
رمزگذاري شده اجرا شود. ابزار dtexecui
ميتواند براي توليد يك فايل متني استفاده شود كه حاوي فرامين و پارامترهاي مورد
نياز براي اجراي ابزار خط فرمان dtexec
هستند (از جمله گزينهاي براي توليد آرگومانهاي رمزگذاري شده). ميتوانيد ابزار dtexecui را در شكل 14-9 ببينيد.
