BIWORK 的微软 BI 博客

专注于微软BI的BIWORK,微软 SQL SERVER 2015年 MVP —— 人生如棋,我愿为卒,行动虽缓,可谁曾见我后退过!

3
推荐
2229
阅读

微软BI 之SSIS 系列 - 对于平面文件中 NULL 值处理过程中容易极易混淆的几个细节

开篇介绍最近有人问我有关文件处理中空值处理的相关问题: OLE DB Destination 中的 Keep Nulls 如何控制 NULL 值的显示?为什么选中了 Keep Nulls 但是数据库中没有 NULL 值? 为什么在 Flat File Source 中勾选上了 Retain null values..但目标表上显示的是一个当前日期,而不是 NULL ?单开此文来解释这些非常容易混...

发表了文章 • 2019-01-04 11:04 • 0 条评论

1
推荐
2027
阅读

微软BI 之SSIS 系列 - 在 SSIS 输出平面文件时根据运行日期生成不同的文件名称

开篇介绍在 SSIS 中操作文件的输入和输出是非常方便的,这个例子讲解一个最简单的需求:比如每天从数据库中查询一批数据要输出到文件,每天产生一个文件,那么文件的名称按照"文件名+日期"的格式加以区别,比如 Employee20131225.txt 。测试案例我的测试数据非常简单,就是一个查询语句,要将这些查出来的数据...

发表了文章 • 2018-12-25 10:56 • 1 条评论

0
推荐
2146
阅读

微软BI 之SSIS 系列 - 在 SSIS 中将指定目录下的所有文件分类输出到不同文件夹

开篇介绍比如有这样的一个需求,旧的一个业务系统通常将产出的文件输出到同一个指定的目录下的不同子目录,输出的文件类型有 XML,EXCEL, TXT 这些不同后缀的文件。现在需要在 SSIS 中将它们分类整理到不同的文件夹下,比如 XML 的全部拷贝到 A 文件夹, EXCEL 全部拷贝到 B 文件夹。 案例分析其实文件操作在 C# 中...

发表了文章 • 2018-11-23 10:59 • 0 条评论

0
推荐
1890
阅读

微软BI 之SSIS 系列 - XML Task 中XSLT 样式表转换错误记录

开篇介绍此文章专门记录 XSLT 样式表转换过程中的语法问题错误一 值与属性的倒置修改了几次样式表,但还是一如既往的报错,报错信息如下:[XML Task] Error: An error occurred with the following error message: "Attribute and namespace nodes cannot be added to the parent element after a text, comment, pi, or...

发表了文章 • 2018-10-23 20:50 • 0 条评论

1
推荐
2412
阅读

微软BI 之SSIS 系列 - 两种将 SQL Server 数据库数据输出成 XML 文件的方法

开篇介绍在 SSIS 中并没有直接提供从数据源到 XML 的转换输出,Destination 的输出对象有 Excel File, Flat File, Database 等,但是并没有直接提供 XML 文件输出的配置。但是我们仍然可以通过下面这些方法来实现:方法一:在数据流中使用平面文件对字符串 XML 转换输出方法二:在控制流中使用 Script Task 输出 XML 文...

发表了文章 • 2018-09-03 19:41 • 0 条评论

0
推荐
3200
阅读

微软BI 之SSIS 系列 - MultiCast 多播输出到多个目标文件

开篇介绍MultiCast 多播转换可以将一个输入转换成一个或者多个向下的输出,但是它没有错误输出。简单总结,即一个输入多个输出无错误输出。它主要用在的场景就是需要将一个输入流中的数据创建成不同的逻辑数据副本,对不同的多个目标表文件的时候,不同的文件或者目标表可以选择数据源中的不同列输出。比如有一个 Excel ...

发表了文章 • 2018-08-25 11:21 • 0 条评论

0
推荐
3941
阅读

微软BI 之SSIS 系列 - For Loop 循环时间 和 Foreach Loop 循环处理文件

开篇介绍几乎所有的编程语言中都有循环这样的一个概念,最常见的就是 for,while 等循环语句,在有的编程语言中也有 foreach 这样的遍历语法。在 SSIS 中,也有这样的循环控件,它们本身不执行具体的操作,只是用来提供一个循环处理的逻辑空间供其它的任务流控件循环调用。这里我们要学习的就是 For Loop Container 与 F...

发表了文章 • 2018-08-22 17:32 • 0 条评论

0
推荐
10351
阅读

微软BI 之SSIS 系列 - Execute SQL Task

开篇介绍在 BI 项目中,有一个非常常用的控制流控件 - Execute SQL Task,在数据从数据源加载到目标表之前它经常会被用来执行一些清空表的操作。除此之外,它的在项目中的常用的情形还包括:执行插入,更新,Merge 等数据操作,包括可能的删除一些 Working table 和创建 Working table 等操作。SSIS 日志中调用存储过程...

发表了文章 • 2018-08-22 12:09 • 1 条评论

0
推荐
2350
阅读

微软BI 之SSIS 系列 - SSIS 时间参数验证脚本

项目中也经常使用到时间参数的验证,例如根据某一时间范围来从Source中过滤一些数据. 在运行Package之前需要配置这些时间格式的参数,因此需要验证这些参数是否是正确的时间格式. 并且通常还有时间大小的验证,例如起始时间要小于结束时间./* Microsoft SQL Server Integration Services Script Task Write scripts u...

发表了文章 • 2018-06-23 11:42 • 1 条评论

0
推荐
2256
阅读

微软BI 之SSIS 系列 - 在 SQL 和 SSIS 中实现行转列的 PIVOT 透视操作

开篇介绍记得我在 2006年左右刚开始学习 SQL Server 2000 的时候,遇到一个面试题就是行转列,列转行的操作,当时写了很长时间的 SQL 语句最终还是以失败而告终。后来即使能写出来,也是磕磕碰碰的。虽然很能锻炼 SQL 功底,每次都要挣扎一番,溺水的感觉。记得SQL Server 2005 以后就有了 PIVOT 和 UNPIVOT 这两个函数...

发表了文章 • 2018-06-23 10:52 • 0 条评论

1
推荐
2233
阅读

微软BI 之SSIS 系列 - 在 SQL 和 SSIS 中实现行转列的 PIVOT 透视操作

开篇介绍记得笔者在 2006年左右刚开始学习 SQL Server 2000 的时候,遇到一个面试题就是行转列,列转行的操作,当时写了很长时间的 SQL 语句最终还是以失败而告终。后来即使能写出来,也是磕磕碰碰的,虽然很能锻炼 SQL 功底,每次都要挣扎一番,溺水的感觉。记得SQL Server 2005 以后就有了 PIVOT 和 UNPIVOT 这两个函...

发表了文章 • 2018-06-20 19:52 • 0 条评论

1
推荐
2455
阅读

微软BI 之SSIS 系列 - Precedence Constraint 详解优先约束的使用

开篇介绍Precedence Constraint 优先约束 - 在控制流中使用,用来链接控制流中各种 Task,Container,并且要求满足一定的条件才能执行相关联的 Task 或者 Container。 比如下图中,第一个 Execute SQL Task 叫做 Precedence-Executable 优先可执行任务,而Script Task 由于在关联箭头的下游,所以它叫做 Constrained-Exe...

发表了文章 • 2018-06-20 11:31 • 0 条评论

1
推荐
2459
阅读

微软BI 之SSIS 系列 - 使用 Multicast Task 将数据同时写入多个目标表,以及写入Audit 与增量处理信息

开篇介绍在 SSIS Data Flow 中有一个 Multicast 组件,它的作用和 Merge, Merge Join 或者 Union All 等合并数据流组件对比起来作用正好相反。非常直观,它可以将一个数据流平行分开成为多个数据流供下游其它 Data Flow 组件使用。 使用 Multicast Task 的几种情形第一种,从同一个数据源中取出一部分数据直接放到 ...

发表了文章 • 2018-06-07 19:37 • 0 条评论

0
推荐
2066
阅读

微软BI 之SSIS 系列 - 变量查询语句引起列输出顺序不一致的解决方法

开篇介绍这个问题来自于 天善BI社区,看了一下比较有意思,因为我自己认为在 SSIS中处理各种类型文件的经验还比较丰富(有一年的时间几乎所有ETL都跟文件相关),但是这个问题确实之前没有特别考虑过。研究了一下,找到了解决的方法,赶紧记录下来。简单描述一下这个问题,如果我们的 SOURCE 是直接从表里面查询,然...

发表了文章 • 2018-06-07 19:28 • 0 条评论

0
推荐
2971
阅读

微软BI 之SSIS 系列 - 利用 SSIS 模板快速开发 SSIS Package

开篇介绍在做 ETL 项目的时候,往往很多 Package 的开发都是基于相同的模型和流程。比如在 Package 开始运行时需要向 Process Log 表中插入记录,在 Package 运行结束的时候更新运行状态。 在错误处理阶段同一个项目中的所有 Package 也是相同的处理方式,除此之外还有设计到 Package 的配置还有一些参数和验证流程...

发表了文章 • 2018-06-03 21:11 • 0 条评论