一些Microsoft BI的题目,虽然对于实践操作没什么帮助,但是扎实的理论是实践的基础。部分答案不唯一,有不对之处望指出。

文件操作类


1、什么是控制流,什么是数据流,控制流和数据流之间的关系是什么?
控制流:对执行流程中任务的控制
数据流:主要是用来定义数据从源到目标的过程,中间包含数据的转换,查找,分类等等。
每个控制流中包含多个数据流。
2、Connection Manager 连接管理器的作用是什么?不同的数据流组件可以使用同一个 Connection Manager 对象吗?
连接管理器的作用:建立与外部数据源的连接。
数据流组件的类型不同,不能同时使用。
3、在 OLE DB Source 中什么是 External Column? 什么是 Output Column ?
External Column:指的是数据源中的列
Output Column:指的是从数据源中输出的列名
4、请描述一下 Flat File Connection Manager 连接管理器 和 Flat File Destination 组件的关系。
Flat File Connection Manager:指的是源平面文件
Flat File Destination:指的是最终生成的目标平面文件
5、在 Flat File Connection Manager 连接管理器中 Text Qualifier 的作用是什么?在什么时候需要被用到?
Text Qualifier:指文本周围是否有限定符,在文本需要被其他字符包围时使用
6、在 Flat File Connection Manager 连接管理器中 Row Delimiter 和 Column Delimiter 的作用分别是什么?
Row Delimiter: 行分割符号
Column Delimiter:列分割符号
7、描述一下比较常用的 Column Delimiter 有哪些?至少四种。
{,},{|},{;},{:},{CR},{LF},{t}
8、在 SSIS 2012 中,有那四种文件格式类型?例如 Delimited 是第一种。
分割符号,固定宽度,右端未对齐,固定宽度行分割
https://www.cnblogs.com/biwork/p/3905816.html
9、请举例说明 Delimited 文件格式的使用场景,所针对的文件格式是什么样子的?
列与行都有分割符号。
10、请举例说明 Fixed width 文件格式的使用场景,所针对的文件格式是什么样子的?
每一列的宽度是固定的
11、请举例说明 Fixed width with row delimiters 文件格式的使用场景,所针对的文件格式是什么样子的?
列的宽度是固定,行存在分割符号
12、请举例说明 Ragged right 文件格式的使用场景,所针对的文件格式是什么样子的?
最后一列宽度不固定。
13、请描述 Fixed width with row delimiters 与 Ragged right 的区别和联系。
最后一列的宽度不固定(Ragged right 应该有特定的列表示分割符)
14、在这四种文件格式中,哪一种是针对不换行的定长文件格式的,Delimited,Fixed width,Fixed width with row delimiters,Ragged right?
Fixed width
15、请描述如何使用数据流组件中 Flat File Source 组件的用法。
拖动 Flat File Source到数据流页面,设定数据源,映射输出列
16、请描述数据流组件中 OLE DB Destination 组件的用法。
拖动OLE DB Destination组件到数据流页面,绑定数据源。
17、对于源文件中有列标题和没有列标题的文件分别应该在 Flat File Connection Manager 中设置什么?
在常规页签中设置:“在第一个数据行中显示数据列名称”
18、请描述控制流组件中 Execute SQL Task 组件的基本用法,使用目的?
执行SQL语句,可能返回单行,数据集合,没有返回值
为了更新数据源中的数据,或读取数据源中的数据
执行存储过程,对数据库对象进行更改
19、如果源端使用使用变量类型的 SQL 语句,它的 Output Column 顺序会发生改变,如何解决这个问题?
在OLE DB Source 的column 中 把所有的列删掉,再按照指定的顺序重新勾选要output 的列。
https://www.cnblogs.com/biwork/p/3457350.html
20、如果在源文件中有空值,如何让它在输出到目标表的时候使用目标表列种的默认值 Default Value ?
不用设置任何选项
21、如果在源文件中有空值,如何让它在输出到目标表的时候显示为 NULL ?
选中"保留NULL”选项
22、如果在源文件中有空值,如何让它在输出到目标表的时候显示空白字符串 ?
选中"保留标示"选项
22、请举例说明在 Flat File Source 中 ‘Retain null values from the source as null values in the data flow’ 的用法?
指定提取数据时,是否保留空值,当为false时,字符串时用空字符串代替,数据用0代替
23、请描述在 OLE DB Destination 的两种不同的 Data Access mode ‘Table or View’ 和 'Table or View - Fast Load ’ 对于源文件空值处理的影响?
后者可以使用快速加载选项处理数据
24、请描述在 OLE DB Destination 的 ‘Table or View - Fast Load’ 模式下 Keep Nulls 配置的作用?
指在加载数据时,是否复制空值。
25、请总结在 OLE DB Destination 中 Access Mode 中的各种配置对源文件中 NULL 值的影响?
保留默认值
复制空值
26、描述在 OLE DB Destination 中的 Data Access Mode ‘Table or view’ 和 ‘Table or view - fast load’ 的区别?
fast load 对大容量的插入进行了优化。
27、描述在 OLE DB Destination 中 Table or view - fast load 中 Keep Identity,Table Lock,Check Constraints 的大概作用?
保留标示
表锁定,其他用户只能 读取,不能修改
约束检查,在数据更改时进行数据约束检查
28、在数据流中,可以通过什么方式查看在数据流执行过程中的数据?
启用数据查看器
29、如何输出不规则的平面文件,即此目标文件包含有多个 Section,每个 Section 的格式各不相同,请描述一下思路?
https://www.cnblogs.com/biwork/p/3950378.html。
30、在 Flat File Destination 组件中,‘Overwrite data in the file’ 选项的作用是什么,可以在什么场景下使用的到?
重写文件内容,在文件已经存在的情况下。
31、描述在数据流源端中,比如 Flat File Source 组件,它的 Error Output 选项中包含了哪些基本的信息?
Error output :组件失败,忽略失败,重定向行
32、请描述在数据流源端中,比如 Flat File Source 组件它的 Error Output 中 Error 和 Truncation 的区别是什么?它们有哪几种配置类型?
https://www.cnblogs.com/ljhdo/p/5493973.html
Error:指发生错误时应执行的操作
Truncation:指发生截断时应该执行的操作
Redirect row:组件失败,忽略失败,重定向行
33、请分别解释在源端的 Error Output 中,Fail Component, Ignore failure, Redirect row 的作用分别是什么?
Fail Component:发生错误或截断时数据流任务失败
Ignore failure:忽略错误或截断,并且将数据行定向到转换或源的输出
Redirect row:将错误或截断的数据行定向到源,转换或目标的错误输出。
34、当在源端的 Error Output 的 Error 选项中选择了 Ignore failure,当目标表对数据有严格的验证时,源文件中出现转换错误,包执行后出现什么情况?
包执行失败
35、当在源端的 Error Output 的 Error 选项中选择了 Ignore failure,当目标表对数据有严格的验证时,源文件中出现转换错误,且目标表的 Error Output 也选择了 Ignore failure,包执行后会出现什么情况?
包成功执行,失败的行未能成功执行到目标数据源。
36、当在源端的 Error Output Truncation 选择了 Ignore failure,当目标表对数据有严格的验证时,源文件中出现超长的字符,包执行后出现什么情况?
包失败
37、当在源端的 Error Output Truncation 选择了 Ignore failure,当目标表对数据有严格的验证时且目标表的 Error Output 也选择了 Ignore failure,源文件中出现超长的字符时,包执行后会出现什么情况?
包成功执行,目标中的记录比源中的少,发生截断的记录被忽略。
38、当包执行失败的时候,可以在什么位置查看到包执行的整个流程,以及报错的信息?
执行结果的标签页面中。
39、对于源端的 Error Output 重定向 Redirect Row 的输出是什么内容,包含了哪些信息?
错误输出列,错误代码,错误列
40、对于目标端的 Error Output 重定向 Redirect Row 的输出是什么内容,包含了哪些信息?
错误输出列,错误代码,错误列
41、如果需要获取类似于错误行所有 Column 的数据,以及 Error Code 以及 Error Column 编号应该是在源端还是目标端的 Error Output 进行配置?
源端进行配制
42、如果需要获取所有完整的正行的错误行数据到错误文件或错误表留给以后手工检查,应该是在源端还是目标端的 Error Output 进行配置?
源端配制
43、SSIS 2012 ETL 中有没有 XML Destination 控件吗?
没有
44、如何在数据流中将数据输出到 XML 文件? 需要使用到哪些基本的控件,在 SQL 查询的时候应该要注意什么?
利用SQL直接输出XML平面文件,对查询的结果再次进行查询。
45、如何在控制流中奖数据输出到 XML 文件?
利用脚本任务直接生成XML文件
46、在使用平面文件构建 XML 文件输出的时候,对输出数据的类型有什么样的特别要求? 为什么要使用平面文件 Flat File 而不使用 Raw File ?

47、在 Execute SQL Task 中,什么时候会使用 Result Set 为 XML 的配置? 如何将 Result Set 为 XML 的返回值赋值给包中的变量?
结果集用于包含 FOR XML子句的 SELECT 语句
48、在 Script Task 中,支持那两种编程 Script?
C#,VB
49、在 Script Task 中,如何访问包中的变量并取值?
Dts.Variables[“User::name”].Value
50、如何在 Script Task 中将字符串输出到一个文件,会使用到 C# 的那些知识,需要引入什么命名空间?
System.IO
51、什么是 XSD?
XSD=XML Schemas Definition XML结构定义
52、在使用 XML Source 时,当只有 XML 文件,但没有 XSD 文档的时候应该如何解决 ?
首先生成XSD 文档
53、什么是 CSV 文件,它的全称是什么?
CSV:逗号分隔文件 comma-separated values
54、在 SSIS 2012 ETL 中并没有 CSV Source 和 CSV Destination,应该分别使用那种数据流控件来表示 CSV 的 Source 和 Destination?
平面目标文件
55、在数据流中 Derived Column 的作用是什么? 表达式中可以实现哪些基本的操作?
根据存在的列,产生新的列,类型转换,字符串处理
56、在构建 CSV 输出的时候,使用 Flat File Destination 组件时应该选用哪种文件格式?
.csv 格式
57、SSIS 2012 ETL 中默认支持到 Excel 的最高版本是哪一个版本?
EXCEL 2010 32位
58、在处理 2013 版本的 Excel 的时候通常需要安装什么样的驱动?
AccessDatabaseEngine2010.exe
59、对 Excel 2013版本支持的驱动通常情况下是需要在 64位模式下还是32位模式下运行包?
32模式下运行
60、描述一下如何将表中的数据输出到同一个 Excel 文件的不同的 Sheet 页中,实现的思路和过程是什么?
使用条件拆分组件设置数据输出到同一个EXCEL的不同sheet页面中
61、如何将一个 Excel 文件的不同 Sheet 页的数据加载到同一个表或者不同表的实现思路和过程是什么?
Foreach 循环读取excel的sheet数据然后插入表中。

控制流控件类

62、描述一下 Execute SQL Task 的作用,在 ETL 开发过程中哪些情况下会使用到 Execute SQL Task?
执行SQL语句,获取单个数据,获取数据集合
63、在 Execute SQL Task 中的 Parameter Mapping 中 Direction 有哪几种类型?
三种:Input ,Output,ReturnValue
64、如何配置 Execute SQL Task 的参数,在 Parameter Mapping 中 Parameter Name 的作用是什么?
为子方便参数的调用
65、在 Execute SQL Task 中调用带有 Output 参数的存储过程,在配置 Parameter Mapping 中,应该为此 Output 参数配置哪一种 Direction?
Output
66、在 Execute SQL Task 中如何获取带有返回值的 Return Value 的存储过程?
使用输出参数
67、如果要记录一个包的开始启动时间,执行结束时间已经包执行的唯一ID,以及包最终执行状态,应该使用到哪些系统变量,并如何实现这个基本的 Log记录?
StartTime,GUID,
68、在 Execute SQL Task 中 Result Set 有哪四种类型,举例说明每一种类型的 Result Set 的使用场景?
无,单行,完整数据集,XML
69、如何在变量中保存 Execute SQL Task 返回的 Full Result Set,应该使用哪一种变量类型来保存?
object
70、如何遍历访问 Execute SQL Task 中返回的 Full Result Set,有那两种基本的实现方式?
foreach 行遍历,脚本遍历,将result Set 加载到table,遍历table
71、在哪些情况下会使用到父子包 Parent Package and Child Package,使用父子包设计的好处 ?
可以在运行时更改包的配制值
72、如果需要将 Parent Package 的参数传入 Child Package 需要打开 Package 的哪个配置选项?
父包变量
73、在 SSIS ETL 2012 中对于 Package Configuration 第一次打开和第二次打开的位置有什么变化?
没有发现变化
74、在 Package Configuration Wizard 中, Configuration Type 配置有那几种类型,配置父子包的时候应该选择哪一种?
XML 配制文件,SQL SERVER,环境变量,父包变量,注册表项
75、如何将 Parent Package 中的值传入到 Child Package 包中的变量?
配制父包变量
76、如何在 Parent Package 调用 Child Package,在控制流中使用到哪一个控件?
控制流页面添加"执行包任务"
77、给包变量赋值有哪三个阶段?
初始值赋值
包运行赋值
脚本赋值
78、如何在包运行之前给包中的变量赋值?
设置变量的默认值
79、可以通过哪些控制流控件调用结束后通过返回值给一个变量赋值?
FOREACH,执行SQL任务
80、如何在包运行的过程中给一个变量赋值,可以使用到哪些控制流控件?
执行SQL任务
81、在控制流中 File System Task 可以对文件做哪些基本的操作?
复制目录,删除目录,删除目录内容,移动目录,创建目录,复制文件,删除文件,移动文件,重命名文件,设置属性
82、在 Script Task 中如何获取指定目录下的所有文件名称,或者指定文件后缀类型的文件名称?
fileinfo,directory.getfiles(path,pattern)
83、在 SSIS 2012 ETL 中,XML Task 有那六大操作类型 Operation Type ,这六种类型各自的作用分别是什么 ?
validate,XSLT,XPATH,Merge,Diff,Patch
84、XML Task 中,如何使用 Validate 操作来验证一个 XML 文件?

85、XML Task 中,如何使用 XML 样式表对 XML 文件进行格式转换,XLST 文件的作用是什么?
86、XML Task 中,如何使用 XPATH 查找和抽取 XML 文件中的内容,比如如何返回一个节点,或者节点集合,值等?
87、XML Task 中,如何使用 Merge 操作来合并两个 XML 文件中的内容到第三个新的文件,或者将 XML 文件内容插入到另外一个 XML 文件指定的位置?
88、XML Task 中,使用 Diff 操作比较两个 XML 文件,可以输出哪些内容? 这些内容分别描述的是什么?
89、XML Task 中,使用 Patch 操作时一般需要哪几种 XML 文件来参与? 这几种 XML 文件的内容分别应该是什么?

90、请描述使用 Send Mail Task 的场景?

91、在使用 Send Mail Task 的时候有哪些限制,局限性?

92、在使用 Send Mail Task 需要建立哪种类型的连接?
SMTP连接管理器
93、使用 Send Mail Task 是否可以发送带附件的邮件类型?
可以发送
94、SSIS 中 Event Handler 的作用是什么? OnError 事件有什么样的作用,我们可以利用 OnError 处理哪些问题?
根据程序被触发的事件,来处理对应的事情
当程序异常错误发生时,触发的事件,捕获错误。
95、什么是变量的 Scope? 控制流控件中 Scope 下的变量和 OnError Scope 下的变量有哪些差别?
Scope:指变量起作用的范围。

96、如果要访问非域中的非Windows 验证下的 SMTP 服务器并发送邮件,在 SSIS 2012 ETL 中我们还可以使用什么样的方式?

97、在控制流 Script Task 中,默认引用的命名空间中是否包含了对 Windows.Forms 的引用?

98、在控制流 Script Task 中,它的 Entry Point 是什么? 这个方法的作用是什么?
Main,运行时作为脚本任务代码入口点调用的方法
99、在控制流 Script Task 中,ReadOnlyVariables 和 ReadWriteVariables 分别是表示什么意思?
ReadOnlyVariables:只读变量
ReadWriteVariables:可读可写变量
100、如何调试 Script Task 中的脚本,有哪两种基本的方式,调试的过程是什么?
在代码中设置断点
脚本任务中设置断点
101、在 SSIS 2012 ETL 中,Script Task 有哪一种 Bug 从 2008、2008R2 版本到 2012 版本一直都存在,这个 Bug 是什么?
变量的只读属性,只有设置readonly=true后会起作用
102、在 SSIS 2012 ETL 项目中,对于参数的验证一般有哪些,为什么需要这些验证,所起到的作用是什么?
如果项目或包遇到无法解析的参数值时,不验证会导致包执行失败。
通过验证,可以确认所有参数都具有必需的值者可以使用特定的环境引用解析必需的值。
103、在你的项目中,对文件类的验证一般都有哪些,分别是什么,请描述一下验证的过程?

104、描述 SSIS 2012 ETL 控制流的 Execute Process Task 的作用,我们可以使用它来做哪些操作?
执行命令行,或可执行的文件.exe.
105、如何使用 Execute Process Task 来实现压缩和解压缩操作?
通过命令直接调用ZIP7进行解压与压缩。
106、For Loop Container 的作用是什么?它类似于编程语言中的哪一种语法,有哪三个基本的配置?
循环遍历其中的值,for 循环,起始值,判断条件,结束值
107、可以在 For Loop Container 中循环时间吗?如何实现?

108、Foreach Loop Container 最常见的使用场景是什么? 如何使用 Foreach Loop Container 来循环和遍历在指定目录下同类型的文件?
文件夹遍历,多个foreach loop
109、描述一下你所知道的 Foreach Loop Container 中的迭代器 Enumerator,大概有哪几种?
文件,item,ADO,ADO.NET NodeList
110、在 Foreach Loop Container 中,Foreach File Enumerator 主要在什么时候使用?
遍历文件夹下的目录和文件
111、在 Foreach Loop Container 中,Foreach ADO Enumerator 主要在什么时候使用? 它对循环的变量在类型上有什么特别要求?
枚举表或表中的行,循环变量的类型为Object.
112、在 Foreach Loop Container 中,Foreach From Variable Enumerator 主要在什么时候使用?对循环的变量在类型上有什么要求,请举例说明使用的场景?
枚举变量中的值,对XML的变量进行枚举
113、在 Foreach Loop Container 中,使用 Foreach ADO.NET Schema Rowset Enumerator 可以解决什么样的问题? 请举例说明。
枚举ADO.NET架构的值
114、Precedence Constraint 优先约束是什么? 它是在控制流中还是数据流中使用?它的作用是什么?
优先约束在控制流中链接包中的可执行文件,容器,任务,并指定决定可执行文件是否运行的条件。
115、Precedence Constraint 优先约束中约束有哪两种选项,作用分别是什么?
表达式与约束
表达式:根据表达式的结果决定执行条件
约束:根据值的结果决定执行条件
116、Precedence Constraint 中,Constraint 约束有哪几种值,作用分别是什么?
成功:没有错误发生
失败:出现错误
完成:执行已经完成
117、Precedence Constraint 中,Expression 表达式约束是如何使用的?
根据表达式的运算结果TRUE/FALSE来使用
118、Precedence Constraint 中,请描述一下在多约束的情况下,Logical AND 和 Logical OR 是如何使用的?
logical AND :全部为TRUE
logical OR : 其中一个为TRUE
119、使用 SQL Profilling Task 数据探测的作用是什么? 可以帮助我们了解到什么样的信息?
探测数据库的配制信息,主键,null值,长度,分布状况
120、使用 SQL Profilling Task 对数据源连接有什么样的限制?
只能是SQL SERVER 数据库
121、使用 SQL Profilling Task,对于数据探测的结果通常是以什么形式来保存的?
XML格式
122、对于 SQL Profilling Task 的输出结果,应该使用 SQL Server 2012 中的哪种工具来进行查看?
数据配制文件查看器
123、SQL Profilling Task 中,Null Ratio Profile (NULL 比例统计) 的作用是什么,可以通过它检测到哪些信息?
检测数据库单元格的空值情况,选中列中空值的百分比
124、SQL Profilling Task 中,Column Length Distribution Profiles (列长度分布统计数据) 的作用是什么,它包含哪些基本信息?
使用默认设置来计算列长度分布
125、SQL Profilling Task 中,Statistics Profiles (列统计信息) 的作用是什么,它包含哪些基本信息?
使用选定列来统计最小值,最大值,平均值,标准偏差
126、SQL Profilling Task 中,Value Distribution (列值分布统计) 的作用是什么,它包含哪些基本信息?
统计列的值的分布情况,非重复数量,每个值所占比例
127、SQL Profilling Task 中,Pattern Profiles (列模式,正则表达式分配统计) 的作用是什么,它包含哪些基本信息?
列的值适用的正则表达式值
128、SQL Profilling Task 中,Candidate Key Profile (候选主键探查) 的作用是什么,它包含哪些基本信息?
显示候选键的组合强度,小于100%说明有重复
129、SQL Profilling Task 中,Functional Dependency Strength Profile (函数依赖关系统计) 的作用是什么,它包含哪些基本信息?
显示决定列与依赖列的依赖程度,决定列,依赖列,依赖强度
130、SQL Profilling Task 中,Value Inclusion Profile (值包含统计) 的作用是什么,它包含哪些基本信息?
外键列在逐渐列中是否有效
131、在使用 Bulk Insert 控件时,是否可以对长度类型进行控制,包括类型转换?
不能控制,批量插入,是通过文件直接操作SQL
132、在分别使用 Bulk Insert 控件,SSIS Data Flow Fast Load,SQL Bulk Insert 语句插入数据的效率表现是怎么样的?
Bulk Insert 控件效率最高,其次,SSIS Data Flow Fast Load,SQL Bulk Insert最后

数据流控件类

133、请描述一下 Conditional Split 的使用方法和使用场景? 它可以写表达式吗? 它可以访问到上游数据的列,变量,以及使用函数吗?
根据不同的列的值,决定数据流的路径,可以写表达式进行判断,只能访问系统变量,用户变量,可以使用函数
134、请描述一下 Data Conversion 与 Derived Column 的使用方法,以及它们之间的区别是什么?
Data Conversion:对数据流中的不匹配数据类型进行转换
Derived Column:产生新的列,不仅可以实现数据类型的转换,还可以派生新的列
135、请描述一下 Multicast 多播的使用方法和使用场景? 请举例说明。
一个输入,多个输出。
136、请描述一下 Aggregate 聚合控制的使用方法,为什么我们要尽量避免在数据流 Data Flow 中使用 Aggregate 控件,在什么情况下可能避免不了要使用它?
Aggregate 聚合:主要是为了汇总数据。
在数据流中,数据量比较大,数据聚合是阻塞的。
137、你是如何理解 Synchronous 同步,Asynchronous 异步,Blocking 阻塞这几个概念的?
同步:等执行结果完成返后才返回,同步组件的输入输出共享同一个缓存
异步:执行开始后就返回,输入输出使用的缓存不是同一个。
阻塞:等待直到可执行时后返回
138、请描述一下 Lookup 控件的基本使用方式,它可以解决什么问题?
查找匹配或不匹配的行的数据
139、在 Lookup 中什么是输入源,引用数据集,缓存的数据是哪一部分的数据?
输入源:来自数据源的数据
引用数据集:生成引用数据集,
缓存的是引用数据集
140、Lookup 有那两种连接方式,分别是什么?
缓存连接管理器
OLE DB连接管理器
141、Lookup 中 OLE DB Connection 连接模式下有哪几种缓存模式?分别是什么?
完全缓存:在执行查找转换前,生成引用数据集并将其加载到缓存中
部分缓存:在执行查找的过程中生成引用数据集
将在引用数据集内有匹配项的行加载到缓存中,并将数据集内没有匹配的行加载到缓存中
不缓存:在执行查找的过程中生成引用数据集
142、Lookup 中字符串对比的时候,在默认 Full Cache 条件下会出现 CASE SENSITIVE 的问题,如何设计或者配置能让字符串比较不区分大小写?
用数据转换列先转换,在Lookup中用函数 lower 和upper 处理SQL语句。
143、Lookup 中 OLE DB Connection 连接模式下 Full Cache 完全缓存模式下数据完全缓存在什么地方,它的缓存过程是什么?
缓存中,在执行查找转换前,生成引用数据集并将其加载到缓存中。
144、Lookup 中 OLE DB Connection 连接模式下 Partial Cache 部分缓存中的匹配缓存区和不匹配缓存区分别指什么?
匹配行:引用数据集内的匹配行
不匹配行:指数据集内没有匹配项的行
145、Lookup 中 OLE DB Connection 连接模式下 No Cache 的工作机制是什么?
在执行查找转换的过程中生成引用数据集
不向缓存中加载任何数据
146、什么是运行时缓存,Cache Transform 缓存转换控件中运行时缓存是如何实现的,请描述使用的过程?
包运行时调用第一个缓存转换将数据写入连接管理器。
如果包中包含多个缓存转换,后续缓存将无法执行写入操作
147、什么是文件缓存,Cache Transform 缓存转换控件中的文件缓存是如何实现的,情描述使用的过程?

148、Cache Transform 中的运行时缓存和文件缓存在使用的时候有什么区别,对同包和不同的包调用缓存时有什么样的使用要求?

149、请描述 Merge 合并转换控件的使用方式,它对输入的数据源有什么要求与限制?
合并转换将两个排序后的数据集合并为一个数据集,两个输入数据集合必须已经排序
150、尽管在 OLE DB Source 查询时使用了排序的 SQL 语句,但是仍然在关联到 Merge 控件的时候出现错误,通常是什么原因,应该如何解决?
没有在控件设置数据集已经排序。
设定数据源属性 IsSorted=true,并在输出列中设置排序的顺序
151、请描述 Sort 排序转换控件的使用方式,如何理解它的 Asynchronous 异步和 Blocking 阻塞特性?
按升序或降序对输入数据进行排序,并将排序后的数据复制到转换输出
152、Merge Join 转换控件的特点是什么?它有哪几种 Join 的方式,如何使用?请描述各种 Join 方式的使用过程。
输入数据必须有序,内部联接,左外部联接,完全外部联接。
153、Union All 转换控件的使用和 Merge,Merge Join 转换控件的使用有什么不同? 它们三者直接的异同点是什么?
Union All :输入数据集可以不排序,合并数据
Merge :输入的数据集合必须有序,合并数据
Merge Join: 输入的数据必须有序,关联数据
154、如果需要在数据流 Data Flow 中记录从源插入的目标的条数,可以有什么样的实现方法?
利用包的事件 ProExecute 和 PostExecute 事件查询总行数,做差运算。
155、请描述一下 Row Count 转换控件的使用,如何记录数据流 Data Flow 中条数并赋值给一个变量,且插入到日志中?
定义一个变量,并指定变量给控件。
156、如何在 SQL 以及 SSIS 中实现 PIVOT 操作?
https://www.cnblogs.com/biwork/p/4197075.html
PIVOT 操作及为数据的行转列操作。
157、在 SSIS 2012 ETL 中,PIVOT 转换控件中的 Pivot Key, Set Key, Pivot Value 分别是指什么?
pivot key:表上面一行(标题行)的值的列
set key:指定用于表左侧列的值的列
PIVOT VALUE:指要汇总的列的值
158、在 SSIS 2012 ETL 中,如何通过 PIVOT 控件自动生成转换的列 Pivoted Output Columns?需要通过什么样的设置?
先输入所有的透视列的值,点击按钮“立即生成”。
159、如何在 SQL 以及 SSIS 中实现 UNPIVOT 操作? 在使用 UNPIVOT 的过程中,能不能从聚合数据还原到 PIVOT 之前的细节数据?

不能还原到PIOVT之前的细节数据

160、在 SSIS 2012 ETL 中,UNPIVOT 转换控件中的 Input Column, Destination Column 以及 Pivot Key value column name 分别指的是什么?
输入列:从可用输入列中选取的值
目标列:提供数据列的名称
透视键值:提供透视键值列的名称
161、在数据流 Data Flow 中,Script Component 大概能够使用到的场景有哪些? 它有哪几种转换类型?
使用系统提供的控件无法实现功能
目标转换,源转换,转换
162、在数据流 Data Flow 中,Script Component与控制流 Control Flow 中的 Script Task 有哪些不同?
Script Task:
脚本任务在设计器的控制流中配置,在包的数据流外部运行
脚本任务可以完成几乎所有一般用途的任务
脚本任务在包工作流中的某个点运行自定义代码,除非放在循环或事件中,否则只运行一次
脚本任务有三个页面:常规,脚本,表达式,ReadOnlyVariables,ReadWriteVariables,ScriptLanguage
使用 Dts 属性访问包的其他功能。
Script Component:
脚本组件在数据流页面配制,表示数据流任务中的源,转换,目标
脚本组件也运行一次,通常为数据流中的每行数据运行一次主处理例程。
脚本组件有四个页面:输入列,输入和输出,脚本,连接管理器
脚本组件使用类型化的取值函数属性访问特定包功能
使用this.Variables访问变量
163、请分别说明 Script Component 中默认的类型下 PreExecute(), PostExecute(), InputXXX_ProcessInputRow() 方法各自的作用是什么?
事件PreExecute:指事件开始执行前
事件PostExecute:指事件结束执行后
事件InputXXX_ProcessInputRow():在数据转换过程中,处理每行数据时触发
164、Script Component 中 InputXXX_ProcessInputRow(Input0Buffer Row) 参数 Row 的生命周期是什么,它表示什么?
当前行,当前行的数据
165、如何使用 Script Component 来实现数据流 Data Flow 中从源到目标的行计数?

166、如何使用 Script Component(Source 类型)来访问并遍历一个平面文件的每一行?
先创建平面文件连接管理器,在代码中读取平面文件连接管理器,循环读取文件,
167、如何在 Script Component (Source 类型)创建一个或者多个 Output 输出?
在脚本组件编辑器页面添加输出参数
168、描述一下在 Script Component (Source 类型) 中的 Script 中创建输出流的过程,即 CreateNewOutputRows() 方法的使用。

169、如何在 Script Component (Source 类型)中的 Script 访问输出 Buffer,如何添加一个新的 Output 行往下输出?

170、什么是 Script Component 同步 Transformation?应该如何设置?
同步:不需要将缓冲区复制到新的内存空间中。
设置属性 SynchronousInputId 为 “无”
171、Script Component (Transformation 类型) 中的 Output 中 SynchronousInputID 的作用是什么? 如果值是 None 或者 0 表示是什么意思?

172、Script Component (Transformation 类型) 中的 InputXXX_ProcessInputRow(Input0Buffer Row) 方法中,Row 包含了那两部分的内容?

173、在数据流 Data Flow 转换组件中,如何判断这个转换组件是一个同步 Synchronous 的还是一个异步 Asynchronous 转换组件?有哪些基本的判断方法?

174、如果需要将 Script Component (Transformation 类型) 由同步 Synchronous 变为异步 Asynchronous 需要做哪些设置?

175、在 Script Component (Transformation - 类型 - 异步) 中,如果有多个输出,同步转换和异步转换是否可以共存?

176、在 Script Component (Transformation - 类型 - 异步) 中,InputXXX_ProcessInput() 方法和 InputXXX_ProcessInputRow() 方法的区别是什么?

177、在 Script Component (Transformation - 类型 - 异步) 中,InputXXX_ProcessInput(Input0Buffer Buffer) 方法中的 Buffer 参数应该如何理解? 它包含的数据应该是什么?

178、为什么说 Script Component (Transformation - 同步) 是一个 Non-Blocking 无阻塞转换,而(Transformation - 异步)是一个 Semi-Blocking 半阻塞转换?

179、如果我们在 Script Component 中脚本中同时看到这两个方法 InputXXX_ProcessInput() 和 InputXXX_ProcessInputRow(),我们对 Script Component 的配置可能采取哪些方式? 它们要表达的转换形式可能是什么?

180、描述一下在你所经历过的项目或者练习中对 Script Component(Destination - 类型) 的使用是如何进行的?
在函数输入0_ProcessInputRow中遍历每一列的值
181、如何在 Script Component 中访问连接数据库中的数据表?需要采用 OLE DB 连接方式还是 ADO.NET 连接方式?
用属性this.ComponentMetaData.InputCollection[0]访问,两者都可以
182、请描述一下在 Script Component 中访问连接数据库并向指定数据表插入数据的过程,所需要涉及到的 SQL 对象有哪些?
先获得数据库连接字符串,利用SqlConnection建立,SqlCommand 执行插入SQL命令
SqlConnection,SqlCommand
183、请大致描述一下在 Script Component 组件的四种转换操作中(Source, 同步 Transformation,异步
Transformation,Destination)通常哪一种或者哪两种转换方式效率要高一些,哪一种或者哪几种转换方式效率要低一些,请大致分析一下原因。

184、结合数据流中的这些组件 Data Conversion, Derived Column, Aggregate,Sort,Script Component 描述一下你是如何理解阻塞,半阻塞,完全阻塞,同步,异步这些概念的? 以及描述一下你所了解的控件哪些是属于阻塞,半阻塞,完全阻塞,同步,异步类型的?
同步组件:同步组件的输出和输入共享一个缓存,即输入多少行就有输出多少行,输入输出同步,同时发生
Data Conversion, Derived Column
异步组件:它的输出用的是一个新缓存,它不会重用输入的缓存。
Sort,Aggregate,Merge,Merge join,Script Component
阻塞:也称为行转换,整个过程不建立新行,也不删除行
半阻塞:转换组件会控制输入行一段时间。转换组件接到一行数据不会立即处理,等这批处理完后在返回。
Merge,Merge Join,Pivot,Unpivot,Union All
完全阻塞:会完全控制全部数据。全部处理完了才返回。
Aggregate,Fuzzy Grouping,Fuzzy Lookup,Sort
185、在数据流中 OLE DB Command 组件与控制流中的 Execute SQL Task 有哪些异同点?
相同:都可以直接执行SQL语句
异同:Execute SQL Task,在控制流中除非循环,否则执行一次SQL语句
OLE DB Command,有多少行,就执行多少次
186、在数据流中 OLE DB Command 组件与 OLD DB Destination 有哪些异同点?
对数据流中的每一行运行SQL语句
187、在 OLE DB Command 中使用普通的带参数的 SQL 语句与带参数的 Stored Procedure 有什么样的细微差别?
OLE DB Command:每次执行SQL语句需要编译一次,Stored Procedure,不需要
188、虽然说 OLE DB Command 是一个同步转换组件,但为什么还是要说它是一个 Performance Killer 性能杀手,它的执行特点是什么?
每次运行SQL 都要重新连接,消耗性能比较大
189、同步转换组件的效率是否一定要比异步转换组件的效率要高,如果不一定的话可以举出两个例子来说明。

190、在一些使用场景下,可以通过什么样的方式来实现替换 OLE DB Command 的使用,以达到提升效率的目标?
可能使用数据源组件或目标数据源组件,或脚本组件
191、描述一下什么是 Slowly Changing Dimension 缓慢渐变维度,在什么场景下我们需要使用到这个概念来解决一些实际问题?
协助数据仓库维度表中的记录更新与插入
在维护数据仓库维度表时会使用
192、描述一下你所了解的解决缓慢渐变维度的一些设计方式和方法?

193、什么是 Business Key 业务主键,什么是 Surrogate Key 代理主键? 使用 Surrogate Key 可以解决什么样的问题,有什么样的好处?
唯一的标示一条记录且值不会改变
代理铸件,主键的备用键
194、在 SSIS 中可以通过哪种控件来实现 SCD,描述一下其实现的步骤,包括在 SSIS 2012 ETL 中 SCD 提到的三种 SCD Type 有哪些?
lookup,union all
195,描述一下在 SSIS 2012 ETL 中的 SCD 数据流执行的过程,SCD Type 1 和 SCD Type 2 的逻辑实现过程?

196,除了 SSIS 2012 ETL 自带的 SCD 转换控件以外,还可以通过哪些方式来实现 SCD?

197、在微软 SSIS 2012 ETL 中,对于 SCD Type 2 的可以通过起始时间的设置,或者状态的设置二选一来实现标识当前维度和维护历史维度行,如何设计让这两者并存出现在维度表中?

198、请大致说下对于增量数据的加载有哪些实现方式? 比如对有时间戳的原始数据和没有时间戳的原始数据增量加载可以如何设计和实现?

199、请描述一下 Check Point 的使用场景以它的实现过程和基本的配置。

200、如何设计一个 ETL 来监控某指定数据库,比如数据仓库各表的大小,行数每天的变化情况? 并根据这些变化情况大致了解每天的增长量,对以后增长趋势的预测?

201、如何设计一个 ETL 监控或者同步指定目录下各中文件,或指定后缀文件的大小变化,及相关属性变化等信息,比如数据库文件大小变化的监控?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值