In the Control Flow, the task is the smallest unit of work, and a task requires completion (success, failure, or just completion) before subsequent tasks are handled.

  • Workflow orchestration
  • Process-oriented
  • Serial or parallel tasks execution
  • Synchronous processing

In the Data Flow, the transformation and the adapter are the basic components;

  • Information-oriented
  • Data correlation and transformation
  • Coordinated processing
  • Streaming in nature
  • Source extraction and destination loading

Multiple components are running at the same time because the Data Flow Transformations are working together in a coordinated streaming fashion, and the data is being transformed in groups (called buffers) as it is passed down from the source to the subsequent transformations.

  • Data buffer architecture
  • Transformation types
  • Transformation communication
  • Execution tree

Instead of data being passed down through the transformations, groups of transformations pass over the buffers of data and make in-place changes as defi ned by the transformations.

Blocking nature: Non-blocking (sometimes called streaming), semi-blocking, blocking Communication mechanism: Synchronous and asynchronous

All transformations fall into one of three categories: non-blocking, semi-blocking, or blocking. These terms describe whether data in a transformation is passed downstream in the pipeline immediately, in increments, or after all the data is fully received.

Non-Blocking, Streaming, and Row-Based Transformations 

Most of the SSIS transformations are non-blocking. This means that the transformation logic applied in the transformation does not impede the data from moving on to the next transformation after the transformation logic is applied to the row. Two categories of non-blocking transformations exist: streaming and row-based. The difference is whether the SSIS transformation can use internal information and processes to handle its work or whether the transformation has to call an external process to retrieve information it needs for the work. Some transformations can be categorized as streaming or row-based depending on their configuration, which are indicated in the list below.

Streaming transformations are usually able to apply transformation logic quickly, using precached data and processing calculations within the row being worked on. In these transformations, it is usually the case that a transformation will not slip behind the rate of the data being fed to it. These transformations focus their resources on the CPUs, which in most cases are not the bottleneck of an ETL system.

Audit

Cache

Transform

Character Map

Conditional Split

Copy Column

Data Conversion

Derived Column

Lookup (with a full-cache setting)

Multicast

Percent Sampling

Row Count

Script Component (provided the script is not confi gured with an asynchronous output)

Union All (the Union All acts like a streaming transformation but is actually a semi- blocking transformation because it communicates asynchronously)

Row-based:

DQS Cleansing

Export Column

Import Column

Lookup (with a no-cache or partial-cache setting)

OLE DB Command Script Component (where the script interacts with an external component)

Slowly Changing Dimension (each row is looked up against the dimension in the database)

Semi-Blocking Transformations  are the ones that hold up records in the Data Flow for a period of time before allowing the memory buffers to be passed downstream.

Data Mining Query

Merge

Merge Join

Pivot

Term Lookup

Unpivot

Union All (also included in the streaming transformations list, but under the covers, the Union All is semi-blocking)

SSIS 2012 can throttle the sources by limiting the requests from the upstream transformations and sources, thereby preventing SSIS from getting into an out-of-memory situation. \

Blocking Transformations 

These components require a complete review of the upstream data before releasing any row downstream to the connected transformations and destinations.

Aggregate

Fuzzy Grouping

Fuzzy Lookup

Row Sampling

Sort

Term Extraction

Script Component (when confi gured to receive all rows before sending any downstream)

Synchronous and Asynchronous Transformation Outputs 

synchronous and asynchronous refer more to the relationship between the Input and Output Component connections and buffers.

A transformation output is asynchronous if the buffers used in the input are different from the buffers used in the output. In other words, many of the transformations cannot both perform the specifi ed operation and preserve the buffers (the number of rows or the order of the rows), so a copy of the data must be made to accomplish the desired effect.

All the semi-blocking and blocking transformations already listed have asynchronous outputs by defi nition — none of them can pass input buffers on downstream because the data is held up for processing and reorganized.

A synchronous transformation is one in which the buffers are immediately handed off to the next downstream transformation at the completion of the transformation logic.

Both the Multicast and the Conditional Split can have multiple outputs, but all the outputs are synchronous.

With the exception of the Union All, it functions like a streaming transformation, is really an asynchronous transformation.

Synchronous transformation outputs preserve the sort order of incoming data, whereas some of the asynchronous transformations do not. The Sort, Merge, and Merge Join asynchronous components, of course, have sorted outputs because of their nature, but the Union All, for example, does not.

An execution tree is a logical grouping of Data Flow Components (transformations and adapters) based on their synchronous relationship to one another. Groupings are delineated by asynchronous component outputs that indicate the completion of one execution tree and the start of the next.

the process thread scheduler can assign more than one thread to a single execution tree if threads are available and the execution tree requires intense processor utilization. Each transformation can receive a single thread, so if an execution tree has only two components that participate, then the execution tree can have a maximum of two threads. In addition, each source adapter receives a separate thread.

It is important to modify the EngineThreads property of the Data Flow so that the execution trees are not sharing process threads, and extra threads are available for large or complex execution trees. Furthermore, all the execution trees in a package share the number of processor threads allocated in the EngineThreads property of the Data Flow. A single thread or multiple threads are assigned to an execution tree based on availability of threads and complexity of the execution tree.

The value for EngineThreads does not include the threads allocated for the number of sources in a Data Flow, which are automatically allocated separate threads.

SSIS ->> Control Flow And Data Flow的更多相关文章

  1. SSIS的 Data Flow 和 Control Flow

    Control Flow 和 Data Flow,是SSIS Design中主要用到的两个Tab,理解这两个Tab的作用,对设计更高效的package十分重要. 一,Control Flow 在Con ...

  2. Spring Cloud Data Flow整合Cloudfoundry UAA服务做权限控制

    我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 前言 关于Spring Cloud Data Flow这里不多介绍,有兴趣可以看下面的文章.本文主要介绍如何整合Dat ...

  3. SSIS Data Flow 的 Execution Tree 和 Data Pipeline

    一,Execution Tree 执行树是数据流组件(转换和适配器)基于同步关系所建立的逻辑分组,每一个分组都是一个执行树的开始和结束,也可以将执行树理解为一个缓冲区的开始和结束,即缓冲区的整个生命周 ...

  4. [转]Data Flow How-to Topics (SSIS)

    本文转自:http://technet.microsoft.com/en-us/library/ms137612(v=sql.90).aspx This section contains proced ...

  5. SSIS Data Flow优化

    一,数据流设计优化 数据流有两个特性:流和在内存缓冲区中处理数据,根据数据流的这两个特性,对数据流进行优化. 1,流,同时对数据进行提取,转换和加载操作 流,就是在source提取数据时,转换组件处理 ...

  6. 微软BI 之SSIS 系列 - 理解Data Flow Task 中的同步与异步, 阻塞,半阻塞和全阻塞以及Buffer 缓存概念

    开篇介绍 在 SSIS Dataflow 数据流中的组件可以分为 Synchronous 同步和 Asynchronous 异步这两种类型. 同步与异步 Synchronous and Asynchr ...

  7. SSIS ->> Data Flow Design And Tuning

    Requirements: Source and destination system impact Processing time windows and performance Destinati ...

  8. Data Flow的Error Output

    一,在Data Flow Task中,对于Error Row的处理通过Error Output Tab配置的. 1,操作失败的类型:Error(Conversion) 和 Truncation. 2, ...

  9. Intel® Threading Building Blocks (Intel® TBB) Developer Guide 中文 Parallelizing Data Flow and Dependence Graphs并行化data flow和依赖图

    https://www.threadingbuildingblocks.org/docs/help/index.htm Parallelizing Data Flow and Dependency G ...

随机推荐

  1. 【Subsets】cpp

    题目: Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset ...

  2. ionice

    ionice – 获取或设置程序的IO调度与优先级. 命令格式: ionice [[-c class] [-n classdata] [-t]] -p PID [PID]… ionice [-c cl ...

  3. 【BZOJ】【2500】幸福的道路

    树形DP+单调队列优化DP 好题(也是神题……玛雅我实在是太弱了TAT,真是一个250) 完全是抄的zyf的……orz我还是退OI保平安吧 第一步对于每一天求出一个从第 i 个点出发走出去的最长链的长 ...

  4. 【CodeForces】【#285】Div.2

    生平第一场Codeforce……纪念一下,虽然跪的跟渣渣似的……啊不就是跪成渣渣了…… A.B暴力过去的……不知道会不会超时……C我犯了个2B错误,让输出总共多少条边,我都求出来边集E了……直接输出E ...

  5. yebis 和phyreengine的集成

    被虐了几个礼拜阿, 暗无天日阿,花样被虐阿 设置 backbuffer commandbuffer这种问题还在其次,和他们的support要phyreengine 的sample就可以了 虐我千百遍的 ...

  6. map线程

    来看看map线程到底是如何运行的 很早就知道一个map是一个线程,以后有可能改成一个map一个进程,那就先来看看一个map一个线程是如何运作的 其实刚开始整个服务器就是两个线程,但发现这样服务器支持的 ...

  7. ActiveMQ主从配置

    这种方式有个问题,activemq1有消息没消费完但是突然宕机,虽然程序会自动连到activemq2.但是activemq1的消息只有等机器恢复后才会被消费. 1.启动:我这里使用的是apache-a ...

  8. Windows7 64位安装配置Apache2.4+PHP5.4+MySQL5.5+Xdebug

    PHP更新已经到了5.4.7了,之前是用PHPstudy安装的PHP5.2.13版本,今天有空,就把之前的集成安装卸载了.换上了新一代PHP,记录一下.. 环境:Windows7 64位(内部版本76 ...

  9. Matlab命令系列之目录操作

    Matlab命令系列之目录操作 filesep 用于返回当前平台的目录分隔符,Windows是反斜杠(),Linux是斜杠(/).有时此命令结合ispc命令使用,可以灵活的设置目录分割符. fullf ...

  10. 两台机器间libevent通信:No route to host问题

    最近学习libevent库,遂在两台虚拟机间模拟通信,程序没逻辑错误,但客户端总是提示No route to host问题,想到可能是linux的防火墙问题导致的,于是关掉防火墙: Ubuntu系统防 ...