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

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

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

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

مشاهده و خرید کامل‌ترین دوره Power bi از نیک آموز

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 spilt transformation.

مرحله چهارم: 

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

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

  • ROWS < 400: Sales Amount < 400
  • ردیف های بین ۴۰۰ تا ۲۰۰۰: Sales Amount >= 400 && Sales Amount < 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 split 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 split 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 split 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
معرفی نویسنده
تیم فنی نیک آموز
مقالات
401 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
title sign
معرفی محصول
title sign
دیدگاه کاربران

  دوره حضوری و غیرحضوری  

هوش تجاری
Enterprise BI

Data Warehouse - ETL - OLAP
با تدریس: مسعود طاهری
مشاهده سرفصل دوره
close-link