代码改变世界

微软BI SSIS 2012 ETL 控件与案例精讲面试 200 问(SSIS 面试题,ETL 面试题)

2014-12-21 21:01  BIWORK  阅读(6712)  评论(4编辑  收藏  举报

开篇介绍

本自测与面试题出自 微软BI SSIS 2012 ETL 控件与案例精讲 (http://www.hellobi.com/course/21) 课程,对于学完本课程的每一课时和阅读完相关辅助阅读博客之后,都需要通过以下自测题来巩固课程中所学习到的基本知识点。具体相关学习方法与面试准备可以参考 微软BI SSIS 2012 ETL 控件与案例精讲课程学习方式与面试准备详解 一文。

自测与面试 200 问

此自测题也可以作为面试题来准备,虽然对于 ETL 控件的面试大多不会考察到这么细的粒度,但是仍然可以作为面试官考察 BI 开发者对基础知识点的掌握的熟练程度与深度。在 SSIS 中,一个基本的配置改变,对数据的走向与控制可能就会有天壤之别,所以这些基础的技能点还是值得大家在学习 SSIS ETL 控件的过程中好好总结的。

自测题分类

  • 文件操作类(自测题 1 - 62 )
  • 控制流控件类(自测题 63 - 133)
  • 数据流控件类(自测题 134 - 202)
  1. 什么是控制流,什么是数据流,控制流和数据流之间的关系是什么?
  2. Connection Manager 连接管理器的作用是什么?不同的数据流组件可以使用同一个 Connection Manager 对象吗?
  3. 在 OLE DB Source 中什么是 External Column? 什么是 Output Column ?
  4. 请描述一下 Flat File Connection Manager 连接管理器 和 Flat File Destination 组件的关系。
  5. 在 Flat File Connection Manager 连接管理器中 Text Qualifier 的作用是什么?在什么时候需要被用到?
  6. 在 Flat File Connection Manager 连接管理器中 Row Delimiter 和 Column Delimiter 的作用分别是什么?
  7. 描述一下比较常用的 Column Delimiter 有哪些?至少四种。
  8. 在 SSIS 2012 中,有那四种文件格式类型?例如 Delimited 是第一种。
  9. 请举例说明 Delimited 文件格式的使用场景,所针对的文件格式是什么样子的?
  10. 请举例说明 Fixed width 文件格式的使用场景,所针对的文件格式是什么样子的?
  11. 请举例说明 Fixed width with row delimiters 文件格式的使用场景,所针对的文件格式是什么样子的?
  12. 请举例说明 Ragged right 文件格式的使用场景,所针对的文件格式是什么样子的?
  13. 请描述 Fixed width with row delimiters 与  Ragged right 的区别和联系。
  14. 在这四种文件格式中,哪一种是针对不换行的定长文件格式的,Delimited,Fixed width,Fixed width with row delimiters,Ragged right?
  15. 请描述如何使用数据流组件中 Flat File Source 组件的用法。
  16. 请描述数据流组件中 OLE DB Destination 组件的用法。
  17. 对于源文件中有列标题和没有列标题的文件分别应该在 Flat File Connection Manager 中设置什么?
  18. 请描述控制流组件中 Execute SQL Task 组件的基本用法,使用目的?
  19. 如果源端使用使用变量类型的 SQL 语句,它的 Output Column 顺序会发生改变,如何解决这个问题?
  20. 如果在源文件中有空值,如何让它在输出到目标表的时候使用目标表列种的默认值 Default Value ?
  21. 如果在源文件中有空值,如何让它在输出到目标表的时候显示为 NULL ?
  22. 如果在源文件中有空值,如何让它在输出到目标表的时候显示空白字符串 ?
  23. 请举例说明在 Flat File Source 中 'Retain null values from the source as null values in the data flow' 的用法?
  24. 请描述在 OLE DB Destination 的两种不同的 Data Access mode 'Table or View' 和 'Table or View - Fast Load ' 对于源文件空值处理的影响?
  25. 请描述在 OLE DB Destination 的 'Table or View - Fast Load' 模式下 Keep Nulls 配置的作用?
  26. 请总结在 OLE DB Destination 中 Access Mode 中的各种配置对源文件中 NULL 值的影响?
  27. 描述在 OLE DB Destination 中的 Data Access Mode 'Table or view' 和 'Table or view - fast load' 的区别?
  28. 描述在 OLE DB Destination 中 Table or view - fast load 中 Keep Identity,Table Lock,Check Constraints 的大概作用?
  29. 在数据流中,可以通过什么方式查看在数据流执行过程中的数据?
  30. 如何输出不规则的平面文件,即此目标文件包含有多个 Section,每个 Section 的格式各不相同,请描述一下思路?
  31. 在 Flat File Destination 组件中,'Overwrite data in the file' 选项的作用是什么,可以在什么场景下使用的到?
  32. 描述在数据流源端中,比如 Flat File Source 组件,它的 Error Output 选项中包含了哪些基本的信息?
  33. 请描述在数据流源端中,比如 Flat File Source 组件它的 Error Output 中 Error 和 Truncation 的区别是什么?它们有哪几种配置类型?
  34. 请分别解释在源端的 Error Output 中,Fail Component, Ignore failure, Redirect row 的作用分别是什么?
  35. 当在源端的 Error Output 的 Error 选项中选择了 Ignore failure,当目标表对数据有严格的验证时,源文件中出现转换错误,包执行后出现什么情况?
  36. 当在源端的 Error Output 的 Error 选项中选择了 Ignore failure,当目标表对数据有严格的验证时,源文件中出现转换错误,且目标表的 Error Output 也选择了 Ignore failure,包执行后会出现什么情况?
  37. 当在源端的 Error Output Truncation 选择了 Ignore failure,当目标表对数据有严格的验证时,源文件中出现超长的字符,包执行后出现什么情况?
  38. 当在源端的 Error Output Truncation 选择了 Ignore failure,当目标表对数据有严格的验证时且目标表的 Error Output 也选择了 Ignore failure,源文件中出现超长的字符时,包执行后会出现什么情况?
  39. 当包执行失败的时候,可以在什么位置查看到包执行的整个流程,以及报错的信息?
  40. 对于源端的 Error Output 重定向 Redirect Row 的输出是什么内容,包含了哪些信息?
  41. 对于目标端的 Error Output 重定向 Redirect Row 的输出是什么内容,包含了哪些信息?
  42. 如果需要获取类似于错误行所有 Column 的数据,以及 Error Code 以及 Error Column 编号应该是在源端还是目标端的 Error Output 进行配置?
  43. 如果需要获取所有完整的正行的错误行数据到错误文件或错误表留给以后手工检查,应该是在源端还是目标端的 Error Output 进行配置?
  44. SSIS 2012 ETL 中有没有 XML Destination 控件吗?
  45. 如何在数据流中将数据输出到 XML 文件? 需要使用到哪些基本的控件,在 SQL 查询的时候应该要注意什么?
  46. 如何在控制流中奖数据输出到 XML 文件?
  47. 在使用平面文件构建 XML 文件输出的时候,对输出数据的类型有什么样的特别要求? 为什么要使用平面文件 Flat File 而不使用 Raw File ?
  48. 在 Execute SQL Task 中,什么时候会使用 Result Set 为 XML 的配置? 如何将 Result Set 为 XML 的返回值赋值给包中的变量?
  49. 在 Script Task 中,支持那两种编程 Script?
  50. 在 Script Task 中,如何访问包中的变量并取值?
  51. 如何在 Script Task 中将字符串输出到一个文件,会使用到 C# 的那些知识,需要引入什么命名空间?
  52. 什么是 XSD?
  53. 在使用 XML Source 时,当只有 XML 文件,但没有 XSD 文档的时候应该如何解决 ?
  54. 什么是 CSV 文件,它的全称是什么?
  55. 在 SSIS 2012 ETL 中并没有 CSV Source 和 CSV Destination,应该分别使用那种数据流控件来表示 CSV 的 Source 和 Destination?
  56. 在数据流中 Derived Column 的作用是什么? 表达式中可以实现哪些基本的操作?
  57. 在构建 CSV 输出的时候,使用 Flat File Destination 组件时应该选用哪种文件格式?
  58. SSIS 2012 ETL 中默认支持到 Excel 的最高版本是哪一个版本?
  59. 在处理 2013 版本的 Excel 的时候通常需要安装什么样的驱动?
  60. 对 Excel 2013版本支持的驱动通常情况下是需要在 64位模式下还是32位模式下运行包?
  61. 描述一下如何将表中的数据输出到同一个 Excel 文件的不同的 Sheet 页中,实现的思路和过程是什么?
  62. 如何将一个 Excel 文件的不同 Sheet 页的数据加载到同一个表或者不同表的实现思路和过程是什么?
  63. 描述一下 Execute SQL Task 的作用,在 ETL 开发过程中哪些情况下会使用到 Execute SQL Task?
  64. 在 Execute SQL Task 中的 Parameter Mapping 中 Direction 有哪几种类型?
  65. 如何配置 Execute SQL Task 的参数,在 Parameter Mapping 中 Parameter Name 的作用是什么?
  66. 在 Execute SQL Task 中调用带有 Output 参数的存储过程,在配置 Parameter Mapping 中,应该为此 Output 参数配置哪一种 Direction?
  67. 在 Execute SQL Task 中如何获取带有返回值的 Return Value 的存储过程?
  68. 如果要记录一个包的开始启动时间,执行结束时间已经包执行的唯一ID,以及包最终执行状态,应该使用到哪些系统变量,并如何实现这个基本的 Log记录?
  69. 在 Execute SQL Task 中 Result Set 有哪四种类型,举例说明每一种类型的 Result Set 的使用场景?
  70. 如何在变量中保存 Execute SQL Task 返回的 Full Result Set,应该使用哪一种变量类型来保存?
  71. 如何遍历访问 Execute SQL Task 中返回的 Full Result Set,有那两种基本的实现方式?
  72. 在哪些情况下会使用到父子包 Parent Package and Child Package,使用父子包设计的好处 ?
  73. 如果需要将 Parent Package 的参数传入 Child Package 需要打开 Package 的哪个配置选项?
  74. 在 SSIS ETL 2012 中对于 Package Configuration 第一次打开和第二次打开的位置有什么变化?
  75. 在 Package Configuration Wizard 中, Configuration Type 配置有那几种类型,配置父子包的时候应该选择哪一种?
  76. 如何将 Parent Package 中的值传入到 Child Package 包中的变量?
  77. 如何在 Parent Package 调用 Child Package,在控制流中使用到哪一个控件?
  78. 给包变量赋值有哪三个阶段?
  79. 如何在包运行之前给包中的变量赋值?
  80. 可以通过哪些控制流控件调用结束后通过返回值给一个变量赋值?
  81. 如何在包运行的过程中给一个变量赋值,可以使用到哪些控制流控件?
  82. 在控制流中 File System Task 可以对文件做哪些基本的操作?
  83. 在 Script Task 中如何获取指定目录下的所有文件名称,或者指定文件后缀类型的文件名称?
  84. 在 SSIS 2012 ETL 中,XML Task 有那六大操作类型 Operation Type ,这六种类型各自的作用分别是什么 ?
  85. XML Task 中,如何使用 Validate 操作来验证一个 XML 文件?
  86. XML Task 中,如何使用 XML 样式表对 XML 文件进行格式转换,XLST 文件的作用是什么?
  87. XML Task 中,如何使用 XPATH 查找和抽取 XML 文件中的内容,比如如何返回一个节点,或者节点集合,值等?
  88. XML Task 中,如何使用 Merge 操作来合并两个 XML 文件中的内容到第三个新的文件,或者将 XML 文件内容插入到另外一个 XML 文件指定的位置?
  89. XML Task 中,使用 Diff 操作比较两个 XML 文件,可以输出哪些内容? 这些内容分别描述的是什么?
  90. XML Task 中,使用 Patch 操作时一般需要哪几种 XML 文件来参与? 这几种 XML 文件的内容分别应该是什么?
  91. 请描述使用 Send Mail Task 的场景?
  92. 在使用 Send Mail Task 的时候有哪些限制,局限性?
  93. 在使用 Send Mail Task 需要建立哪种类型的连接?
  94. 使用 Send Mail Task 是否可以发送带附件的邮件类型?
  95. SSIS 中 Event Handler 的作用是什么? OnError 事件有什么样的作用,我们可以利用 OnError 处理哪些问题?
  96. 什么是变量的 Scope? 控制流控件中 Scope 下的变量和 OnError Scope 下的变量有哪些差别?
  97. 如果要访问非域中的非Windows 验证下的 SMTP 服务器并发送邮件,在 SSIS 2012 ETL 中我们还可以使用什么样的方式?
  98. 在控制流 Script Task 中,默认引用的命名空间中是否包含了对 Windows.Forms 的引用?
  99. 在控制流 Script Task 中,它的 Entry Point 是什么? 这个方法的作用是什么?
  100. 在控制流 Script Task 中,ReadOnlyVariables 和 ReadWriteVariables 分别是表示什么意思?
  101. 如何调试 Script Task 中的脚本,有哪两种基本的方式,调试的过程是什么?
  102. 在 SSIS 2012 ETL 中,Script Task 有哪一种 Bug 从 2008、2008R2 版本到 2012 版本一直都存在,这个 Bug 是什么?
  103. 在 SSIS 2012 ETL 项目中,对于参数的验证一般有哪些,为什么需要这些验证,所起到的作用是什么?
  104. 在你的项目中,对文件类的验证一般都有哪些,分别是什么,请描述一下验证的过程?
  105. 描述 SSIS 2012 ETL 控制流的 Execute Process Task 的作用,我们可以使用它来做哪些操作?
  106. 如何使用 Execute Process Task 来实现压缩和解压缩操作?
  107. For Loop Container 的作用是什么?它类似于编程语言中的哪一种语法,有哪三个基本的配置?
  108. 可以在 For Loop Container 中循环时间吗?如何实现?
  109. Foreach Loop Container 最常见的使用场景是什么? 如何使用 Foreach Loop Container 来循环和遍历在指定目录下同类型的文件?
  110. 描述一下你所知道的 Foreach Loop Container 中的迭代器 Enumerator,大概有哪几种?
  111. 在 Foreach Loop Container 中,Foreach File Enumerator 主要在什么时候使用?
  112. 在 Foreach Loop Container 中,Foreach ADO Enumerator 主要在什么时候使用? 它对循环的变量在类型上有什么特别要求?
  113. 在 Foreach Loop Container 中,Foreach From Variable Enumerator 主要在什么时候使用?对循环的变量在类型上有什么要求,请举例说明使用的场景?
  114. 在 Foreach Loop Container 中,使用 Foreach ADO.NET Schema Rowset Enumerator 可以解决什么样的问题? 请举例说明。
  115. Precedence Constraint 优先约束是什么? 它是在控制流中还是数据流中使用?它的作用是什么?
  116. Precedence Constraint 优先约束中约束有哪两种选项,作用分别是什么?
  117. Precedence Constraint 中,Constraint 约束有哪几种值,作用分别是什么?
  118. Precedence Constraint 中,Expression 表达式约束是如何使用的?
  119. Precedence Constraint 中,请描述一下在多约束的情况下,Logical AND 和 Logical OR 是如何使用的?
  120. 使用 SQL Profilling Task 数据探测的作用是什么? 可以帮助我们了解到什么样的信息?
  121. 使用 SQL Profilling Task 对数据源连接有什么样的限制?
  122. 使用 SQL Profilling Task,对于数据探测的结果通常是以什么形式来保存的?
  123. 对于 SQL Profilling Task 的输出结果,应该使用 SQL Server 2012 中的哪种工具来进行查看?
  124. SQL Profilling Task 中,Null Ratio Profile (NULL 比例统计) 的作用是什么,可以通过它检测到哪些信息?
  125. SQL Profilling Task 中,Column Length Distribution Profiles (列长度分布统计数据) 的作用是什么,它包含哪些基本信息?
  126. SQL Profilling Task 中,Statistics Profiles (列统计信息) 的作用是什么,它包含哪些基本信息?
  127. SQL Profilling Task 中,Value Distribution (列值分布统计) 的作用是什么,它包含哪些基本信息?
  128. SQL Profilling Task 中,Pattern Profiles (列模式,正则表达式分配统计) 的作用是什么,它包含哪些基本信息?
  129. SQL Profilling Task 中,Candidate Key Profile (候选主键探查) 的作用是什么,它包含哪些基本信息?
  130. SQL Profilling Task 中,Functional Dependency Strength Profile (函数依赖关系统计) 的作用是什么,它包含哪些基本信息?
  131. SQL Profilling Task 中,Value Inclusion Profile (值包含统计) 的作用是什么,它包含哪些基本信息?
  132. 在使用 Bulk Insert 控件时,是否可以对长度类型进行控制,包括类型转换?
  133. 在分别使用 Bulk Insert 控件,SSIS Data Flow Fast Load,SQL Bulk Insert 语句插入数据的效率表现是怎么样的?
  134. 请描述一下 Conditional Split 的使用方法和使用场景? 它可以写表达式吗? 它可以访问到上游数据的列,变量,以及使用函数吗?
  135. 请描述一下 Data Conversion 与 Derived Column 的使用方法,以及它们之间的区别是什么?
  136. 请描述一下 Multicast 多播的使用方法和使用场景? 请举例说明。
  137. 请描述一下 Aggregate 聚合控制的使用方法,为什么我们要尽量避免在数据流 Data Flow 中使用 Aggregate 控件,在什么情况下可能避免不了要使用它?
  138. 你是如何理解 Synchronous 同步,Asynchronous 异步,Blocking 阻塞这几个概念的?
  139. 请描述一下 Lookup 控件的基本使用方式,它可以解决什么问题?
  140. 在 Lookup 中什么是输入源,引用数据集,缓存的数据是哪一部分的数据?
  141. Lookup 有那两种连接方式,分别是什么?
  142. Lookup 中 OLE DB Connection 连接模式下有哪几种缓存模式?分别是什么?
  143. Lookup 中字符串对比的时候,在默认 Full Cache 条件下会出现 CASE SENSITIVE 的问题,如何设计或者配置能让字符串比较不区分大小写?
  144. Lookup 中 OLE DB Connection 连接模式下 Full Cache 完全缓存模式下数据完全缓存在什么地方,它的缓存过程是什么?
  145. Lookup 中 OLE DB Connection 连接模式下 Partial Cache 部分缓存中的匹配缓存区和不匹配缓存区分别指什么?
  146. Lookup 中 OLE DB Connection 连接模式下 No Cache 的工作机制是什么?
  147. 什么是运行时缓存,Cache Transform 缓存转换控件中运行时缓存是如何实现的,请描述使用的过程?
  148. 什么是文件缓存,Cache Transform 缓存转换控件中的文件缓存是如何实现的,情描述使用的过程?
  149. Cache Transform 中的运行时缓存和文件缓存在使用的时候有什么区别,对同包和不同的包调用缓存时有什么样的使用要求?
  150. 请描述 Merge 合并转换控件的使用方式,它对输入的数据源有什么要求与限制?
  151. 尽管在 OLE DB Source 查询时使用了排序的 SQL 语句,但是仍然在关联到 Merge 控件的时候出现错误,通常是什么原因,应该如何解决?
  152. 请描述 Sort 排序转换控件的使用方式,如何理解它的 Asynchronous 异步和 Blocking 阻塞特性?
  153. Merge Join 转换控件的特点是什么?它有哪几种 Join 的方式,如何使用?请描述各种 Join 方式的使用过程。
  154. Union All 转换控件的使用和 Merge,Merge Join 转换控件的使用有什么不同? 它们三者直接的异同点是什么?
  155. 如果需要在数据流 Data Flow 中记录从源插入的目标的条数,可以有什么样的实现方法?
  156. 请描述一下 Row Count 转换控件的使用,如何记录数据流 Data Flow 中条数并赋值给一个变量,且插入到日志中?
  157. 如何在 SQL 以及 SSIS 中实现 PIVOT 操作?
  158. 在 SSIS 2012 ETL 中,PIVOT 转换控件中的 Pivot Key, Set Key, Pivot Value 分别是指什么?
  159. 在 SSIS 2012 ETL 中,如何通过 PIVOT 控件自动生成转换的列 Pivoted Output Columns?需要通过什么样的设置?
  160. 如何在 SQL 以及 SSIS 中实现 UNPIVOT 操作? 在使用 UNPIVOT 的过程中,能不能从聚合数据还原到 PIVOT 之前的细节数据?
  161. 在 SSIS 2012 ETL 中,UNPIVOT 转换控件中的 Input Column, Destination Column 以及 Pivot Key value column name 分别指的是什么?
  162. 在数据流 Data Flow 中,Script Component 大概能够使用到的场景有哪些? 它有哪几种转换类型?
  163. 在数据流 Data Flow 中,Script Component与控制流 Control Flow 中的 Script Task 有哪些不同?
  164. 请分别说明 Script Component 中默认的类型下 PreExecute(), PostExecute(), InputXXX_ProcessInputRow() 方法各自的作用是什么?
  165. Script Component 中 InputXXX_ProcessInputRow(Input0Buffer Row) 参数 Row 的生命周期是什么,它表示什么?
  166. 如何使用 Script Component 来实现数据流 Data Flow 中从源到目标的行计数?
  167. 如何使用 Script Component(Source 类型)来访问并遍历一个平面文件的每一行?
  168. 如何在 Script Component (Source 类型)创建一个或者多个 Output 输出?
  169. 描述一下在 Script Component (Source 类型) 中的 Script 中创建输出流的过程,即 CreateNewOutputRows() 方法的使用。
  170. 如何在 Script Component (Source 类型)中的 Script 访问输出 Buffer,如何添加一个新的 Output 行往下输出?
  171. 什么是 Script Component 同步 Transformation?应该如何设置?
  172. Script Component (Transformation 类型) 中的 Output 中 SynchronousInputID 的作用是什么? 如果值是 None 或者 0 表示是什么意思?
  173. Script Component (Transformation 类型) 中的 InputXXX_ProcessInputRow(Input0Buffer Row) 方法中,Row 包含了那两部分的内容?
  174. 在数据流 Data Flow 转换组件中,如何判断这个转换组件是一个同步 Synchronous 的还是一个异步 Asynchronous 转换组件?有哪些基本的判断方法?
  175. 如果需要将 Script Component (Transformation 类型) 由同步 Synchronous 变为异步 Asynchronous 需要做哪些设置?
  176. 在 Script Component (Transformation - 类型 - 异步) 中,如果有多个输出,同步转换和异步转换是否可以共存?
  177. 在 Script Component (Transformation - 类型 - 异步) 中,InputXXX_ProcessInput() 方法和 InputXXX_ProcessInputRow() 方法的区别是什么?
  178. 在 Script Component (Transformation - 类型 - 异步) 中,InputXXX_ProcessInput(Input0Buffer Buffer) 方法中的 Buffer 参数应该如何理解? 它包含的数据应该是什么?
  179. 为什么说 Script Component (Transformation - 同步) 是一个 Non-Blocking 无阻塞转换,而(Transformation - 异步)是一个 Semi-Blocking 半阻塞转换?
  180. 如果我们在 Script Component 中脚本中同时看到这两个方法 InputXXX_ProcessInput() 和 InputXXX_ProcessInputRow(),我们对 Script Component 的配置可能采取哪些方式? 它们要表达的转换形式可能是什么?
  181. 描述一下在你所经历过的项目或者练习中对 Script Component(Destination - 类型) 的使用是如何进行的?
  182. 如何在 Script Component 中访问连接数据库中的数据表?需要采用 OLE DB 连接方式还是 ADO.NET 连接方式?
  183. 请描述一下在 Script Component 中访问连接数据库并向指定数据表插入数据的过程,所需要涉及到的 SQL 对象有哪些?
  184. 请大致描述一下在 Script Component 组件的四种转换操作中(Source, 同步 Transformation,异步 Transformation,Destination)通常哪一种或者哪两种转换方式效率要高一些,哪一种或者哪几种转换方式效率要低一些,请大致分析一下原因。
  185. 结合数据流中的这些组件 Data Conversion, Derived Column, Aggregate,Sort,Script Component 描述一下你是如何理解阻塞,半阻塞,完全阻塞,同步,异步这些概念的? 以及描述一下你所了解的控件哪些是属于阻塞,半阻塞,完全阻塞,同步,异步类型的?
  186. 在数据流中 OLE DB Command 组件与控制流中的 Execute SQL Task 有哪些异同点?
  187. 在数据流中 OLE DB Command 组件与 OLD DB Destination 有哪些异同点?
  188. 在 OLE DB Command 中使用普通的带参数的 SQL 语句与带参数的 Stored Procedure 有什么样的细微差别?
  189. 虽然说 OLE DB Command 是一个同步转换组件,但为什么还是要说它是一个 Performance Killer 性能杀手,它的执行特点是什么?
  190. 同步转换组件的效率是否一定要比异步转换组件的效率要高,如果不一定的话可以举出两个例子来说明。
  191. 在一些使用场景下,可以通过什么样的方式来实现替换 OLE DB Command 的使用,以达到提升效率的目标?
  192. 描述一下什么是 Slowly Changing Dimension 缓慢渐变维度,在什么场景下我们需要使用到这个概念来解决一些实际问题?
  193. 描述一下你所了解的解决缓慢渐变维度的一些设计方式和方法?
  194. 什么是 Business Key 业务主键,什么是 Surrogate Key 代理主键? 使用 Surrogate Key 可以解决什么样的问题,有什么样的好处?
  195. 在 SSIS 中可以通过哪种控件来实现 SCD,描述一下其实现的步骤,包括在 SSIS 2012 ETL 中 SCD 提到的三种 SCD Type 有哪些?
  196. 描述一下在 SSIS 2012 ETL 中的 SCD 数据流执行的过程,SCD Type 1 和 SCD Type 2 的逻辑实现过程?
  197. 除了 SSIS 2012 ETL 自带的 SCD 转换控件以外,还可以通过哪些方式来实现 SCD?
  198. 在微软 SSIS 2012 ETL 中,对于 SCD Type 2 的可以通过起始时间的设置,或者状态的设置二选一来实现标识当前维度和维护历史维度行,如何设计让这两者并存出现在维度表中?
  199. 请大致说下对于增量数据的加载有哪些实现方式? 比如对有时间戳的原始数据和没有时间戳的原始数据增量加载可以如何设计和实现?
  200. 请描述一下 Check Point 的使用场景以它的实现过程和基本的配置。
  201. 如何设计一个 ETL 来监控某指定数据库,比如数据仓库各表的大小,行数每天的变化情况? 并根据这些变化情况大致了解每天的增长量,对以后增长趋势的预测?
  202. 如何设计一个 ETL 监控或者同步指定目录下各中文件,或指定后缀文件的大小变化,及相关属性变化等信息,比如数据库文件大小变化的监控?

可按对应课程案例名称(案例XXX)查找自测和面试题

  • 001_从数据库导出数据到平面文件  (1-7)
  • 002_平面文件输出格式的区别  (8-14)
  • 003_从平面文件导入数据到数据库之一 (15-19)
  • 004_从平面文件导入数据到数据库之二 (15-19)
  • 005_平面文件空值处理 (20-29)
  • 006_不规则的平面文件输出技巧 (30-31)
  • 007_Error Output 错误输出 (32-39)
  • 008_Error Output 错误捕获 (40-43)
  • 009_两种输出 XML 文件的方式 (44-51)
  • 010_XML 文件的加载导入 (52-53)
  • 011_CSV 文件的导入与导出 (54-57)
  • 012_EXCEL2013 文件的导入与导出 (58-62)

 控制流控件类 - 14

  • 013_Execute SQL Task 与输入输出返回值 (63-71)
  • 014_Execute Package Task 父子包与参数传递 (72-77)
  • 015_Expression Task 与变量赋值的三个阶段 (78-81)
  • 016_使用File System Task 中处理文件和目录 (82-83)
  • 017_XML Task 之文件验证与样式转换 (85-86)
  • 018_XML Task 之XPATH抽取与MERGE合并 (87-88)
  • 019_XML Task 之 Diff 与 Patch 互逆操作 (89-90)
  • 020_使用 Send Mail Task 监控包错误并发送邮件 (91-97)
  • 021_Script Task 中读写变量的操作与断点调试 (98-102)
  • 022_Script Task 中的文件参数验证 (103-104)
  • 023_使用 Execute Process Task 压缩与解压缩文件 (105-106)
  • 024_For Loop 时间与 Foreach Loop 文件加载 (107-114)
    • 关于 Foreach ADO Enumerator
    • 关于 Foreach ADO.NET Schema Rowset Enumberator
    • 关于 Foreach From Variable Enumerator
  • 025_Precedence Constraint 优先约束详解 (115-119)
  • 026_使用 SQL Profilling Task 进行数据探测 (120-131)
  • 027_BCP Bulk Insert Data Flow Bulk Insert 四种文件导入方式 (132-133)

 数据流控件类 - 22

  • 028_使用 Conditional Split 条件拆分 (134)
  • 029_Data Conversion 与 Derived Column 之比较 (135)
  • 030_使用 MultiCast 多播输出到多个目标 (136)
  • 031_使用 Aggregate 聚合输出(同步异步与阻塞) (137-138)
  • 032_初步使用 Lookup 查找转换 (139-142)
  • 033_Lookup 的 OLE DB 缓存 Full Cache  Partial Cache 和 No Cache (143-147)
  • 034_Lookup 与 Cache Transform 运行时缓存共享 (147)
  • 035_Lookup 与 Cache Transform 文件缓存共享 (148-149)
  • 036_Merge 合并与 Sort 排序(异步与阻塞) (150-152)
  • 037_Merge Join 的特点 (153)
  • 038_Union All 的使用与 Merge Merge Join 之比较 (154)
  • 039_使用 Row Count 记录从数据源写入目标表的条数  (155-156)
  • 040_在 SQL 和 SSIS 中使用 PIVOT 进行行列转换 (157-159)
  • 041_在 SQL 和 SSIS 中使用 UNPIVOT 转换操作 (160-161)
  • 042 _初步使用 Script Component 记录数据流行数 (162-166)
  • 043_使用 Script Component Source 解析不规则文件 (167-170)
  • 044_使用 Script Component 同步 Transformation 解析不规则文件 (171-174)
  • 045_使用 Script Component Transformation 异步转换不规则文件 (175-180)
  • 046_使用 Script Component Destination 和 ADO.NET 解析不规则文件(一) (181-185)
  • 046_使用 Script Component Destination 和 ADO.NET 解析不规则文件(二) (181-185)
  • 047_OLE DB Command 性能杀手 (186-191)
  • 048_数据仓库 Slowly Changing Dimension 缓慢渐变维度 (192-194)
  • 049_Slowly Changing Dimension 的实现 (195-198)
  • 案例作业及其它(199-202)