摘要:
开篇介绍上午在天善回答看到这个问题-SSIS 导出数据文件,能否在第一列增加一个行号,很快就帮助解决了,方法就是在SQL查询的时候加一个ROW_NUMBER()就可以了。后来想起在两年前我的第一个BI项目上也有类似的文件输出需求,但是比这个要复杂的多,因为涉及到多个输入列的逻辑判断和计算问题,比如还... 阅读全文
随笔分类 - 01 - SSIS
微软BI 之SSIS 系列 - 在 SSIS 输出平面文件时根据运行日期生成不同的文件名称
2013-12-25 00:00 by BIWORK, 5066 阅读, 收藏,
摘要:
开篇介绍在SSIS中操作文件的输入和输出是非常方便的,这个例子讲解一个最简单的需求:比如每天从数据库中查询一批数据要输出到文件,每天产生一个文件,那么文件的名称按照"文件名+日期"的格式加以区别,比如 Employee20131225.txt 。测试案例我的测试数据非常简单,就是一个查询语句,要将这... 阅读全文
微软BI 之SSIS 系列 - 通过 OLE DB 连接访问 Excel 2013 以及对不同 Sheet 页的数据处理
2013-12-17 16:31 by BIWORK, 17201 阅读, 收藏,
摘要:
文章更新历史2014年9月7日 - 加入了部分更新内容,在文章最后提到了关于不同 Office Excel 版本间的连接问题。开篇介绍这篇文章主要总结在 SSIS 中访问和处理 Excel 数据的四个方面的主题内容 (都是处理以 .xlsx 结尾的 Excel 文件)-如何在 SSIS 中集成对 M... 阅读全文
微软BI 之SSIS 系列 - 变量查询语句引起列输出顺序不一致的解决方法
2013-12-04 12:47 by BIWORK, 2283 阅读, 收藏,
摘要:
开篇介绍这个问题来自于 天善BI社区,看了一下比较有意思,因为我自己认为在SSIS中处理各种类型文件的经验还比较丰富(有一年的时间几乎所有ETL都跟文件相关),但是这个问题确实之前没有特别考虑过。研究了一下,找到了解决的方法,赶紧记录下来。简单描述一下这个问题,如果我们的 SOURCE 是直接从表里... 阅读全文
微软BI 之SSIS 系列 - 两种将 SQL Server 数据库数据输出成 XML 文件的方法
2013-11-19 13:07 by BIWORK, 5622 阅读, 收藏,
摘要:
开篇介绍在 SSIS 中并没有直接提供从数据源到 XML 的转换输出,Destination 的输出对象有 Excel File, Flat File, Database 等,但是并没有直接提供 XML 文件输出的配置。但是我们仍然可以通过下面这些方法来实现:方法一:在数据流中使用平面文件对字符串 ... 阅读全文
微软BI 之SSIS 系列 - 数据仓库中实现 Slowly Changing Dimension 缓慢渐变维度的三种方式
2013-10-16 00:09 by BIWORK, 12035 阅读, 收藏,
摘要:
开篇介绍关于 Slowly Changing Dimension 缓慢渐变维度的理论概念请参看数据仓库系列 - 缓慢渐变维度 (Slowly Changing Dimension) 常见的三种类型及原型设计本篇文章总结了实现缓慢渐变维度的几种方式,并且分析了 Changing Attribute 和... 阅读全文
微软BI 之SSIS 系列 - 通过设置 CheckPoints 检查点来增强 SSIS Package 流程的重用性
2013-10-13 15:57 by BIWORK, 4367 阅读, 收藏,
摘要:
开篇介绍通常一个 ETL Package 是由多个控制流和数据流共同组成,有的时候 ETL 的步骤可能会比较多,整个流程执行下来的时间可能比较长。假设在 ETL Package 中包含5个Task,前3个Task执行超过1个小时,到了第4个Task的时候发生失败。如果下次执行的时候重新从第1个任务开... 阅读全文
微软BI 之SSIS 系列 - 理解Data Flow Task 中的同步与异步, 阻塞,半阻塞和全阻塞以及Buffer 缓存概念
2013-09-20 00:49 by BIWORK, 3875 阅读, 收藏,
摘要:
开篇介绍在 SSIS Dataflow 数据流中的组件可以分为 Synchronous 同步和 Asynchronous 异步这两种类型。同步与异步 Synchronous and AsynchronousSynchronous 同步组件同步组件有一个非常重要的特征 - 同步组件的输出和它的输入共享... 阅读全文
BI 系列随笔列表 (SSIS, SSRS, SSAS, MDX, SQL Server)
2013-09-18 18:25 by BIWORK, 38664 阅读, 收藏,
摘要:
微软 BI ETL 架构设计 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改的记录数 微软 BI SSIS 系列 微软BI 之SSIS 系列 - 在 SSIS 中读取 Shar 阅读全文
微软BI 之SSIS 系列 - 使用 Multicast Task 将数据同时写入多个目标表,以及写入Audit 与增量处理信息
2013-09-18 17:46 by BIWORK, 6836 阅读, 收藏,
摘要:
开篇介绍在 SSIS Data Flow 中有一个 Multicast 组件,它的作用和 Merge, Merge Join 或者 Union All 等合并数据流组件对比起来作用正好相反。非常直观,它可以将一个数据流平行分开成为多个数据流供下游其它 Data Flow 组件使用。使用 Multic... 阅读全文
微软BI 之SSIS 系列 - 在 SSIS 中使用 Web Service 以及 XML 解析
2013-09-17 21:44 by BIWORK, 6620 阅读, 收藏,
摘要:
开篇介绍Web Service 的用途非常广几乎无处不在,像各大门户网站上的天气预报使用到的第三方 Web Service API,像手机客户端和服务器端的交互等都可以通过事先设计好的 Web Service 接口来实现两个不同平台的信息沟通。记得第一次做 IPhone 手机客户端与服务器端交互的 ... 阅读全文
微软BI 之SSIS 系列 - Merge, Merge Join, Union All 合并组件的使用以及Sort 排序组件同步异步的问题
2013-09-08 21:41 by BIWORK, 11582 阅读, 收藏,
摘要:
开篇介绍SSIS Data Flow中有几个组件可以实现不同数据源的数据合并功能,比如Merger, Merge Join和Union All。它们的功能比较类似,同时也比较容易混淆,下面是对它们之间的区别的对比总结。下面通过三个Data Flow来演示这三个组件的使用以及相关的配置。测试数据源-第... 阅读全文
微软BI 之SSIS 系列 - Lookup 组件的使用与它的几种缓存模式 - Full Cache, Partial Cache, NO Cache
2013-09-04 20:28 by BIWORK, 11443 阅读, 收藏,
摘要:
开篇介绍先简单的演示一下使用 Lookup 组件实现一个简单示例 - 从数据源表 A 中导出数据到目标数据表 B,如果 A 数据在 B 中不存在就插入新数据到B,如果存在就更新B 和 A 表数据保持统一。随后再来解释在这个过程中使用到的一些术语,以及分析一下 Lookup 中出现的几种缓存模式,各自... 阅读全文
微软BI 之SSIS 系列 - 利用 SSIS 模板快速开发 SSIS Package
2013-06-20 17:39 by BIWORK, 7020 阅读, 收藏,
摘要:
开篇介绍在做 ETL 项目的时候,往往很多 Package 的开发都是基于相同的模型和流程。比如在 Package 开始运行时需要向 Process Log 表中插入记录,在 Package 运行结束的时候更新运行状态。在错误处理阶段同一个项目中的所有 Package 也是相同的处理方式,除此之外还... 阅读全文
在 Visual Studio 2012 开发 SSIS,SSAS,SSRS BI 项目
2013-05-12 21:16 by BIWORK, 16010 阅读, 收藏,
摘要:
新安装了 SQL Server 2012 和 Visual Studio 2012.准备在 VS 2012 中创建一个 BI 项目, 但是发现找不到这一项.后来想起来在装完 SQL Server 2012 以后, 以前的 BIDS 工具的名称也变成了 SQL Server Data Tools (SSDT), 但是实际上使用的还是 Visual Studio 2010 Shell查看了一下资料, 原来如果要在 Visual Studio 2012 中集成 BI 项目的话还需要集成一个插件Microsoft SQL Server Data Tools - Business Intelligenc 阅读全文
微软BI 之SSIS 系列 - 在 SSIS 中读取 SharePoint List
2013-05-10 17:31 by BIWORK, 4868 阅读, 收藏,
摘要:
开篇介绍由于项目需要我们会从SharePoint 上读取一些配置数据,同时也有可能执行一些回写操作去更新SharePoint 的数据。之前没有做过这样的操作,有的也应该是通过 C# 编程去获取或者写入一些数据。查阅了一些相关的文章,自己也动手测试了一下如何在 SSIS Package 中访问Shar... 阅读全文
SSIS 小脚本 - 时间参数验证
2013-01-14 11:16 by BIWORK, 1207 阅读, 收藏,
摘要:
项目中也经常使用到时间参数的验证,例如根据某一时间范围来从Source中过滤一些数据. 在运行Package之前需要配置这些时间格式的参数,因此需要验证这些参数是否是正确的时间格式. 并且通常还有时间大小的验证,例如起始时间要小于结束时间./* Microsoft SQL Server Inte... 阅读全文
SSIS 小脚本 - 文件路径验证
2013-01-14 11:00 by BIWORK, 1698 阅读, 收藏,
摘要:
之前项目中经常有文件的读取或者输出操作,其中最重要的就是在处理文件输入/输出之前验证文件的路径是否存在,如果不存在就输出错误./* Microsoft SQL Server Integration Services Script Task Write scripts using Micros... 阅读全文
容易遗忘的一些小代码之 PIVOT 和 UNPIVOT
2013-01-07 15:23 by BIWORK, 664 阅读, 收藏,
摘要:
这个代码以前也经常使用, 不过一段时间之后,每每有人问起如何使用或者要求帮忙检查出错问题时,就要回头再看看这个例子.还好自己搞过,留个底子在这里. 对 PIVOT 和 UNPIVOT 最简单描述 - 行转列,列转行!!!SSIS 中也有这样的一个控件,实现的效果也是一样的.--------------------------------------------------------------------- PIVOT demo from MSDN document---------------------------------------------------------------- 阅读全文
容易遗忘的一些小代码之 Merge Operation and Output Clause
2013-01-07 15:17 by BIWORK, 712 阅读, 收藏,
摘要:
根据与源表, 对目标表执行插入、更新或删除操作.根据在另一个表中找到的差异在一个表中插入,更新或删除行,可以对两个表进行同步. 在数据仓库应用中,这种SQL语句的使用比SSIS工具的使用更加容易维护些,因为表同步的逻辑可以写在存储过程中,维护的时候只需要维护存储过程即可,而不需要打开Package去检查SSIS Component的配置. /** Merge Operation and Output Clause**/-- Source tableDECLARE @SourceTable TABLE( ID INT PRIMARY KEY, DSPT VARCHAR(50))-- Ta... 阅读全文