SSIS的疑问,是数据源就用Sql处理好,还是Sql找出明细数据,再用SSIS组件处理?

0
1.比如Group by,比如空值的判断,比如特殊值的替代,再比如Union all等等,应该在数据源设定时,就写好Sql查询语句,还是直接取最明细的数据然后使用ETL的组件进行处理?
  1. 我担心SSAS负担过重,资料过多,习惯性Group By到一定粒度的数据(比如日期+客户+产品型号为一笔数据,而非每天200笔的明细数据),这样的做法是否正确
已邀请:
3

梁勇 - 天道酬勤、上善若水。爱好商业智能 2013-07-29 回答

1、第一个我们要看我们的数据源是否来着同类数据存储区的数据,比如如果都是SQLSERVER数据库的话,我们直接写SQL处理就好;但如果数据源来自异类数据存储区的数据,比如 txt、Access、XML、Excel、Oracle 等数据库的话,我们就需要使用 SSIS组件来实现,通过使用转换+Union ALL组件来实现。

而空值的判断、特殊值替代 可以根据实际情况来决定,最好使用工具加SQL的结合方式来实现,哪种操作方便,就使用哪种,看情况而定。比如说从 Excel里面抽取的话,我们就可以考虑使用 SSIS组件来 添加 派生类及添加空值判断;从数据库里面抽取的话,我们就可以考虑直接使用SQL语句的判断方式来实现,总之 灵活使用,工具+SQL结合的方式来实现。

2、SSAS负担过重,这个在数据仓库设计的时候考虑的,具体的看下 数据仓库构建的五步法
a、确定主题 b、确定量度 c、确定事实粒度 d、确定维度 e、创建事实表 。具体的还要结合到具体业务来设计,请多看下我之前整理的一个数据仓库使用文档,可以去天善下载页面去下载:http://blog.tianshansoft.com/download
0

frederic 2013-08-06 回答

补充从效率方面来看,用SQL肯定要快的多,存在一个问题就是项目标准的约束,业务复杂的ETL如果用SQL维护会非常困难,业务也不清晰。

要回复问题请先登录注册