Lessons in this course (13)

6. Transformations and their types

Intermediate★ Must knowLesson 6 of 13
TransformationPurposeBlocking type
Derived ColumnNew/replace column via expressionNon-blocking (synchronous)
Data ConversionConvert data types (e.g. DT_STR → DT_WSTR)Non-blocking
Conditional SplitRoute rows by conditions (like CASE)Non-blocking
MulticastSend all rows to many outputsNon-blocking
LookupMatch against reference dataNon-blocking (synchronous)
Row CountCount rows into a variableNon-blocking
Copy Column, Character Map, AuditSimple row operationsNon-blocking
OLE DB CommandRun SQL per row (slow!)Non-blocking but row-by-row
Script ComponentCustom C# (source, transformation or destination)Depends
Merge, Merge Join, Union AllCombine inputs (Merge/Merge Join need sorted input)Semi-blocking
Pivot / UnpivotReshape columns/rowsSemi-blocking
SortSort rows (optionally remove duplicates)Fully blocking
AggregateGROUP BY, SUM, COUNT...Fully blocking
Fuzzy Lookup / Fuzzy GroupingApproximate matching, dedupFully blocking
Slowly Changing DimensionSCD wizard (types 0, 1, 2)Row-by-row
Percentage/Row Sampling, Term ExtractionSampling/text miningVaries

Synchronous (non-blocking): output rows = input rows, same buffer, fastest. Asynchronous: new buffers; semi-blocking passes some rows before all input is read; fully blocking must read all input before output (Sort, Aggregate) → memory heavy.