آشنایی با Split Transformation در SSIS

آشنایی با Split Transformation در SSIS

نوشته شده توسط: تیم فنی نیک آموز
۲۶ تیر ۱۴۰۱
زمان مطالعه: ۱۸ دقیقه
۲.۷
(۳)

در این آموزش قصد داریم با component به نام Split Transformation  در پکیج SSIS  مایکروسافت بیشتر آشنا شویم که یک تبدیل تقسیم شرطی در SSIS درست مانند شرط IF یا عبارت CASE در TSQL است. شرایط داده شده را بررسی می‌کند و براساس نتیجه شرط. خروجی به مسیر مقصد مناسب ارسال می‌شود. دارای یک ورودی و چندین خروجی است

SSIS Multicast Transformation زمانی بسیار مفید است که بخواهیم تبدیل‌های مختلف را به صورت موازی روی یک مجموعه داده اعمال کنیم. به عنوان مثال، اگر قرار باشد دو نوع تبدیل روی یک مجموعه داده انجام دهیم. سپس از SSIS Multicast Transformation برای ایجاد دو کپی از یک داده استفاده کنید. بعد، روی هر کپی، می توانیم تبدیل های مختلفی را انجام دهیم.

مثالی از پیاده سازی Multi cast transformation  در پکیج SSIS Microsoft

گام اول

برای Control flow ،data flow task را از جعبه ابزار بکشید و رها کنید و آن را به عنوان SSIS Conditional Split Transformation نام‌گذاری کنید. بر روی آن کلیک کنید  و data flow tab در SSIS باز می‌شود

گام دوم:

OLEDB Source را از  Tool box به Data flow region بکشید و رها کنید. روی OLEDB Source در Data flow region داده دوبار کلیک کنید، تنظیمات  Connection manager می‌شود و فضایی برای نوشتن  SQL Statement ما فراهم می‌کند.

دستوری که برای  OLEDB Source تقسیم شرطی ssis ما استفاده می کند

حال در ادامه با استفاده از دستور use  دیتابیس۲۰۱۹  Adenture works فراخوانی می‌کنیم و میان جدول Fact internet sales , Dim Product براساس فیلد داده مشترک یا همان dim Product عملیات inner join  می زنیم و مرتب سازی براساس فیلد English Product name  می‌باشد برای این منظور کوئری زیر را می‌ویسیم:

--فراخوانی دیتابیس 
use AdventureWorksDW2019
--inner join  میان جداول dim product, fact internet sales 
SELECT PROD.[EnglishProductName]
     ,PROD.[Color]
     ,[SalesOrderNumber]
     ,[UnitPrice]
     ,[ExtendedAmount]
     ,[ProductStandardCost]
     ,[TotalProductCost]
     ,[SalesAmount]
     ,[TaxAmt]
     ,[Freight]
FROM [FactInternetSales]
INNER JOIN
[DimProduct] AS PROD ON
  [FactInternetSales].[ProductKey] = PROD.[ProductKey]
ORDER BY PROD.[EnglishProductName]

خروجی کوئری فوق مطابق تصویر زیر می‌باشد:

حال در ادامه تنظیمات زیر در OLEDB Source انجام می‌دهیم.

گام سوم: برای تأیید ستون‌ها، روی Column tabکلیک کنید. در این تب می‌توانیم تیک ستون‌های ناخواسته را نیز برداریم.

حال در ادامه روی ok کلیک کنید

تنظیمات Conditional spilit transformation

مرحله چهارم: Conditional Split Transformation را از tool box به data flow region بکشید و رها کنید و روی آن دوبار کلیک کنید تا شرایط فراهم شود.

شرایطی که ما در این تبدیل تقسیم شرطی SSIS استفاده کردیم عبارتند از:

  • ROWS < 400: SalesAmount < 400
  • ردیف های بین ۴۰۰ تا ۲۰۰۰: SalesAmount >= 400 && SalesAmount < 2000

سطرهای باقی مانده به عنوان خروجی پیش فرض عمل می‌کنند و ما آن را به عنوان [Rows > 2000] نام گذاری کردیم. با توجه به موارد فوق، می‌توانید مشاهده کنید که ما از ۲ شرط و یک خروجی پیش فرض در Conditional Split Transformation در SSIS استفاده کرده‌ایم. بنابراین، در مجموع سه خروجی دریافت می کنیم.

گام پنجم: سه OLEDB Destination را از tool box به data flow region بکشید و رها کنید و آنها را به عنوان Condition Split 1 ،Condition Split 2 و Condition Split 3 تغییر نام دهید.


گام ششم:
 فلش را از Conditional Split Transformation به مقصد OLE DB (تقسیم شرطی ۱) بکشید و رها کنید، پنجره Input Output Selection برای انتخاب خروجی مناسب ظاهر می شود. اجازه دهید مطابق شکل زیر خروجی [Rows <400] را انتخاب کنیم.

روی دکمه ok کلیک کنید

مرحله هفتم: اکنون باید OLE DB Connection Manager و جزئیات جدول مقصد را ارائه کنیم. بنابراین بر روی SSIS Conditional Split 1 دوبار کلیک کنید و اطلاعات مورد نیاز را ارائه دهید

از اسکرین شات بالا، می توانید مشاهده کنید که ما [Conditional Split 1] را در داخل پایگاه داده انتخاب کردیم.

گام هشتم: روی تب Mappings کلیک کنید تا بررسی کنید که آیا ستون‌های منبع دقیقاً به ستون‌های مقصد نگاشت شده اند یا خیر.

روی دکمه ok  کلیک کنید

گام نهم: یک فلش دیگر را از SSIS Conditional Split Transformation به مقصد OLE DB (تقسیم شرطی ۲) بکشید و رها کنید تا پنجره Input Output Selection را انتخاب کنید تا خروجی را انتخاب کنید. این بار مطابق شکل زیر خروجی [ردیف های بین ۴۰۰ تا ۲۰۰۰] را انتخاب می کنیم از اسکرین شات بالا، می توانید مشاهده کنید که ما [Conditional Split 2] را در داخل پایگاه داده انتخاب کردیم.

گام ۸ را تکرار کنید و روی ok کلیک کنید.

گام دهم: یک فلش دیگر را از SSIS Conditional Split Transformation به OLE DB Dest (Conditional Split 3) بکشید و رها کنید. در اینجا ما داده‌های خروجی پیش فرض را پیکربندی می‌کنیم. بنابراین، روی OLE DB Destination دابل کلیک کنید و اطلاعات را ارائه دهید

از اسکرین شات بالا، می‌توانید مشاهده کنید که ما [Conditional Split 3] را در داخل پایگاه داده انتخاب کردیم. مرحله ۸ را تکرار کنید و روی ok کلیک کنید. ما توسعه بسته تبدیل تقسیم شرطی SSIS را به پایان رساندیم. زمان اجرای این بسته فرا رسیده است

بیایید نتیجه را در جدول [conditional spilit 1] ببینیم. SSMS را باز کنید و عبارت select را بنویسید تا نتیجه را بررسی کنید

--خروجی spilit column1
SELECT [EnglishProductName] AS NAME
      ,[Color]
      ,[SalesOrderNumber] AS NUMBER
      ,[UnitPrice]
      ,[ExtendedAmount] AS ExtndAmount
      ,[ProductStandardCost] AS standardCost
      ,[TotalProductCost] AS ProductCost
      ,[SalesAmount] AS Amount
      ,[TaxAmt] AS Tax
      ,[Freight]
  FROM  [condition spilit 1]

خروجی کوئری فوق مطابق تصویر زیر می‌باشد.

بیایید با نوشتن عبارت  select زیر، نتیجه را در جدول [condition spilit 2] ببینیم تا نتیجه را بررسی کنیم.

--خروجی جدول spilit column2
خروجی کوئری محصولاتی نمایش می دهد که فروش دلاری آن ها بین ۴۰۰ تا ۲۰۰۰ دلار باشد
  SELECT [EnglishProductName] AS NAME
      ,[Color]
      ,[SalesOrderNumber] AS NUMBER
      ,[UnitPrice]
      ,[ExtendedAmount] AS ExtndAmount
      ,[ProductStandardCost] AS standardCost
      ,[TotalProductCost] AS ProductCost
      ,[SalesAmount] AS Amount
      ,[TaxAmt] AS Tax
      ,[Freight]
  FROM [condition spilit 2]

خروجی کوئری فوق مطابق تصویر زیر می‌باشد.

بعد، نتیجه را در جدول [condition spilit 3 ] ببینید.  SSMS را باز کنید و عبارت انتخاب زیر را بنویسید تا نتیجه را بررسی کنید

خروجی کوئری زیر محصولاتی را نمایش می‌دهد که فروش دلاری آنها بیشتر از ۲۰۰۰ دلار باشد.

  --خروجی جدول spilit column 3
SELECT [EnglishProductName] AS NAME
      ,[Color]
      ,[SalesOrderNumber] AS NUMBER
      ,[UnitPrice]
      ,[ExtendedAmount] AS ExtndAmount
      ,[ProductStandardCost] AS standardCost
      ,[TotalProductCost] AS ProductCost
      ,[SalesAmount] AS Amount
      ,[TaxAmt] AS Tax
      ,[Freight]
  FROM [Condition spilit 3]

خروجی کوئری فوق مطابق تصویر زیر می‌باشد.

چه رتبه ای می‌دهید؟

میانگین ۲.۷ / ۵. از مجموع ۳

اولین نفر باش

title sign
دانلود مقاله
آشنایی با Split Transformation در SSIS
فرمت PDF
۱۳ صفحه
حجم ۱ مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
239 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
پروفایل نویسنده
title sign
معرفی محصول
title sign
دیدگاه کاربران