新足迹

 找回密码
 注册

精华好帖回顾

· 2024首发游——走马观新12天(最新更新到槟城) (2024-2-6) harbridge · 悉尼长登两周记 (2005-7-1) magie
· 自己做pest control的一点分享 (2019-1-20) sxfly1983 · 冬日,阳光,宁静,蓝山........ (2005-8-6) ufo
Advertisement
Advertisement
查看: 4896|回复: 55

请问论坛里谁是做Microsoft BI的? [复制链接]

发表于 2013-4-11 01:02 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如题。

顺便说一下主要focus在ssas, ssis, ssrs?
Advertisement
Advertisement

发表于 2013-4-12 18:33 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Come on. So many people discussing data warehouse and SQL topic but one one is BI Developer?

Anyway, I am and my LinkedIn profile is George Qiao.

发表于 2013-4-16 20:46 |显示全部楼层
此文章由 jl162401 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 jl162401 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我不做MS BI很多年了 不过有机会交流交流

发表于 2013-4-16 21:13 |显示全部楼层
此文章由 zcflying 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zcflying 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我现在的项目是BI (SSIS,SSAS) ,不过我的职责是测试,呵呵

发表于 2013-4-16 23:42 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
zcflying 发表于 2013-4-16 20:13
我现在的项目是BI (SSIS,SSAS) ,不过我的职责是测试,呵呵

说说怎么测试的?我挺感兴趣的。
a

发表于 2013-4-17 21:38 |显示全部楼层
此文章由 dc81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dc81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lz我来了!
话说一直想找同行交流。
只举一个例子,SSIS里的SCD,我一直不用书上教的正规法(嫌麻烦),喜欢用SP,很想知道别人是怎么做的。一般公司专门做这个的人只会雇一两个,都找不到可以交流、学习的。
Advertisement
Advertisement

发表于 2013-4-17 23:18 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dc81 发表于 2013-4-17 20:38
lz我来了!
话说一直想找同行交流。
只举一个例子,SSIS里的SCD,我一直不用书上教的正规法(嫌麻烦),喜 ...

SQL Server 2005 - SQL Server 2008 R2, 用SSIS Dimension Merge SCD (以前叫kimball scd), 最新的版本号1.6, 可以从codeplex下载,免费, open source, 比SSIS内置的SCD control快太多了

SQL 2012 上的 SSIS Dimension Merge SCD要收费, 由Pragmatic Works提供。

如果是pure T-SQL solution的话, 用 merge做upsert, 效率很高,一个merge就可以把update, insert, auditing全部搞定。

SQL 2008 R2和SQL 2012上还可以用CDC, 尤其SSIS2012的CDC splitter更简化了开发,理论上可以做到real time.

我个人比较喜欢用merge, 不依赖任何3rd party control,也没有roll back CDC的烦恼,and you have full control over how to generate SCD2 (or even SCD6 in some cases.)


P。S。记得给分哦

评分

参与人数 3积分 +15 收起 理由
waynepublic + 8 感谢分享
dc81 + 4 冬天到了,赶紧挣鞋穿!
icec + 3 感谢分享

查看全部评分

a

发表于 2013-4-17 23:20 |显示全部楼层
此文章由 ccj5124 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ccj5124 所有!转贴必须注明作者、出处和本声明,并保持内容完整
刚刚上了一门培训课,10778 Implementing Data Models and Reports with Microsoft SQL Server 2012

发表于 2013-4-18 09:55 |显示全部楼层
此文章由 dc81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dc81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
wonderdream 发表于 2013-4-17 22:18
SQL Server 2005 - SQL Server 2008 R2, 用SSIS Dimension Merge SCD (以前叫kimball scd), 最新的版本 ...

lz很精通嘛,多向你学习!
我说的SP也是指在Stored Procedure里面用Merge语句。

不过不太明白你说的“SSIS2012的CDC splitter理论上可以做到real time”, 你是指CDC可以有”自发“Trigger功能么?
似乎没有吧。 我记得CDC也是得靠SSIS package运行的时候,才能检索到底哪些data有change。
还盼详解。

我觉得SSIS 做ETL data load时(destination是SQL DB),如果data source是非主流数据源(比如mysql),经常出错。lz有经验可以分享么?

发表于 2013-4-18 10:08 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Thanks a lot for the score, now I just need 4 points to reach 50!!!

评分

参与人数 1积分 +4 收起 理由
jltc + 4 感谢分享

查看全部评分

发表于 2013-4-18 10:27 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dc81 发表于 2013-4-18 08:55
lz很精通嘛,多向你学习!
我说的SP也是指在Stored Procedure里面用Merge语句。

MS get the CDC technology from Attunity and Attunity actually have the data stream software called Attunity CDC Suite. that will allow you streaming the CDC in real-time fashion rather than SSIS's batch method.

I haven't dealt with MySQL but I don't have any issue with Oracle or DB2. In addition to making sure your design the SSIS right, you also need to make sure to use the most appropriate driver. If you cant figure out what causes the issue, I suggest you generate flat file from MySQL and then use the flat file as the data source. It sounds not very efficient but sometimes it can really help you to get rid of some nasty issue.

评分

参与人数 1积分 +4 收起 理由
dc81 + 4 习惯要好,先加分再看帖!

查看全部评分

a
Advertisement
Advertisement

发表于 2013-4-18 10:28 |显示全部楼层
此文章由 IsDonIsGood 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 IsDonIsGood 所有!转贴必须注明作者、出处和本声明,并保持内容完整
楼主你是来要浮云的吧~~~

发表于 2013-4-18 10:31 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
ccj5124 发表于 2013-4-17 22:20
刚刚上了一门培训课,10778 Implementing Data Models and Reports with Microsoft SQL Server 2012 ...

Are you getting MCSE?
a

发表于 2013-4-18 10:35 |显示全部楼层
此文章由 dc81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dc81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
wonderdream 发表于 2013-4-18 09:27
MS get the CDC technology from Attunity and Attunity actually have the data stream software called ...

哈哈 你们公司电脑也输不了中文吧   嘿嘿 今天我休假  家里电脑有中文输入

Yes I can deal with Oracle as well, just for MySQL there is a problem. "generate flat file from MySQL and then use the flat file as the data source"----not quite reality when OLTP bigdata is in MySQL! My current solution is Linked server + OpenQuery, this should not be the best solution. I am still looking...

发表于 2013-4-18 10:44 |显示全部楼层
此文章由 dc81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dc81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
wonderdream 发表于 2013-4-18 09:31
Are you getting MCSE?

话说这种MCTS,MCITP认证,我09年搞了一套(网上都有机经的,不需要培训)。那会儿是sql2008吧。 现在都2012了,该升级了。 我忘了这种认证的有效期是多久了。 如果我现在找新工作的话,还能把这个证书用上么?

发表于 2013-4-18 11:20 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dc81 发表于 2013-4-18 09:44
话说这种MCTS,MCITP认证,我09年搞了一套(网上都有机经的,不需要培训)。那会儿是sql2008吧。 现在都2 ...

Yeah, I cant type Chinese in the company.

I think the certification is always useful when you look for new job or working for a consultancy company.

But if you work for an end user company and have already got recognition, you don't need to spend the money unless the company pays for you.

P.S. The new BI certification for SQL Server 2012 now is called "Microsoft Certified Business Intelligence Solution Expert". It sounds much better, isn't it?

评分

参与人数 1积分 +4 收起 理由
dc81 + 4 恭喜换鞋!

查看全部评分

a
Advertisement
Advertisement

发表于 2013-4-18 20:06 |显示全部楼层
此文章由 dc81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dc81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
wonderdream 发表于 2013-4-18 10:20
Yeah, I cant type Chinese in the company.

I think the certification is always useful when you loo ...

请教lz一个问题,今天面试遇到问“Why does distinct count frequently perform poorly in a cube?”
怎么回答较好?

发表于 2013-4-18 22:50 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
http://sqlcat.com/sqlcat/b/whitepapers/archive/2008/04/17/analysis-services-distinct-count-optimization.aspx

SQLCAT whitepaper: Analysis Services Distinct Count Optimization

我不是专家,知道的很有限。具体的参考上述的白皮书。

说说优化的方法吧, Marco Russo的many to many 2.0里专门提到了用many to many的data modeling来优化,你可以读一下他的paper。 SQLCAT还提到了用SSD来优化。 你也可以create another measure group, partitioned by the column used for distinctcount calculation. 或者用SQL 2012的tabular mode SSAS, 因为是columnar engine,运行distinctcount飞快,甚至比其他的calculation更快。

当然,数据量决定一切,一般内置的distinctcount足够应付大多数情况了,数据量大的时候才需要考虑各种优化



评分

参与人数 1积分 +4 收起 理由
dc81 + 4 加分不手软

查看全部评分

a

发表于 2013-4-19 14:16 |显示全部楼层
此文章由 zombie 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zombie 所有!转贴必须注明作者、出处和本声明,并保持内容完整
上LINKEDIN一看,原来已经加过楼主了。

发表于 2013-4-19 14:25 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
月亮在哪里?

发表于 2013-4-19 21:28 |显示全部楼层
此文章由 dc81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dc81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
wonderdream 发表于 2013-4-18 21:50
http://sqlcat.com/sqlcat/b/whitepapers/archive/2008/04/17/analysis-services-distinct-count-optimizat ...

lz还是挺专家的,赞一下,加分!

再请教一个问题,如下:
假设cube里面的Fact table(measure)是有version的(比如用 merge做upsert,那么只有最latest的那行是CurrentRow)。
CustomerID   DocID  Amount   StartDate        EndDate        IsCurrent
c1                  doc1     $200      2011-01-01    2011-08-01     0
c1                  doc1     $205      2011-08-02    2013-02-28     0
c1                  doc1     $500      2013-03-01    9999-12-31     1

如果想要一个MDX 获得"2013-01-01"的Amount,该怎么写啊?

我只知道T-SQL里面用 where "2013-01-01" between StartDate and EndDate, 请问有对应的MDX么?
Advertisement
Advertisement

发表于 2013-4-19 22:11 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dc81 发表于 2013-4-19 20:28
lz还是挺专家的,赞一下,加分!

再请教一个问题,如下:

谢谢给分,啥时候我也有像你这么多的分阿
a

发表于 2013-4-19 22:31 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dc81 发表于 2013-4-19 20:28
lz还是挺专家的,赞一下,加分!

再请教一个问题,如下:

在MDX里实现point in time是一个challenge, 具体实现方法参见 http://cwebbbi.wordpress.com/2011/01/22/solving-the-events-in-progress-problem-in-mdx-part-2role-playing-measure-groups/

但如果你只是想get the latest version, 你可以:
1. create a degenerate dimension, join the fact table with fact relationship
2. create a attribute on IsCurrent column from the degenerated dimension
3. create a calculated measure, for example:
CREATE MEMBER Measures.CurrentAmount as aggregate(Measures.Amount, [your degenerate diminsion].[IsCurrent].&[1])
a

发表于 2013-4-19 22:37 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
顺便一提,Chris Webb 7月份来悉尼,有一个MDX training course.

He is one of the most well known MDX expert around the world. I will probably attend the training course even I have to pay myself.

评分

参与人数 1积分 +2 收起 理由
gwq88 + 2

查看全部评分

a

发表于 2013-4-19 23:20 |显示全部楼层
此文章由 ccj5124 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ccj5124 所有!转贴必须注明作者、出处和本声明,并保持内容完整
wonderdream 发表于 2013-4-19 21:37
顺便一提,Chris Webb 7月份来悉尼,有一个MDX training course.

He is one of the most well known MDX  ...

MDX 要被DAX取代了吧

发表于 2013-4-19 23:38 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
ccj5124 发表于 2013-4-19 22:20
MDX 要被DAX取代了吧

Wikipedia说:

While MDX was not an open standard, but rather a Microsoft-owned specification, it was adopted by the wide range of OLAP vendors. This included both vendors on the server side such as Applix, icCube, MicroStrategy, NCR, Oracle Corporation, SAS, SAP, Teradata, Whitelight, and vendors on the client side such as Panorama Software, PowerOLAP, XLCubed, Proclarity, AppSource, Jaspersoft, Cognos, Business Objects, Brio Technology, Crystal Reports, Microsoft Excel, and Microsoft Reporting Services.

评分

参与人数 1积分 +4 收起 理由
dc81 + 4 说得对!

查看全部评分

a
Advertisement
Advertisement

发表于 2013-4-19 23:41 |显示全部楼层
此文章由 dc81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dc81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
wonderdream 发表于 2013-4-19 21:31
在MDX里实现point in time是一个challenge, 具体实现方法参见 http://cwebbbi.wordpress.com/2011/01/22/ ...

你太厉害了,我其实就是问MDX实现point in time,谢谢你找到的资料!

“如果你只是想get the latest version, 你可以:
1. create a degenerate dimension, join the fact table with fact relationship
2. create a attribute on IsCurrent column from the degenerated dimension
3. create a calculated measure, for example:
CREATE MEMBER Measures.CurrentAmount as aggregate(Measures.Amount, [your degenerate diminsion].[IsCurrent].&[1])

------这个我曾用view实现。 就是创建一个view: select * from FactTable where IsCurrent=1
然后在该view的基础上slice&dice
把view当成一张新的Fact Table

实践下来此法performance不错。

发表于 2013-4-19 23:56 |显示全部楼层
此文章由 dc81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dc81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
wonderdream 发表于 2013-4-19 21:31
在MDX里实现point in time是一个challenge, 具体实现方法参见 http://cwebbbi.wordpress.com/2011/01/22/ ...

这个文章快速看了一下,似乎没有解决我的疑问。

假设cube里面的Fact table是有version的(比如用 merge做upsert,那么只有最latest的那行是CurrentRow)。
CustomerID   DocID  Amount   StartDate        EndDate        IsCurrent
c1                  doc1     $200      2011-01-01    2011-08-01     0
c1                  doc1     $205      2011-08-02    2013-02-28     0
c1                  doc1     $500      2013-03-01    9999-12-31     1

如果想要一个MDX 获得"2013-01-01"的Amount,该怎么写啊?

"2013-01-01" 是一个动态、用户输入的参数。

declare @PointInTIme datetime2(7)
select sum(Amount) from FactTable where @PointInTIme between StartDate and EndDate
----该T-SQL将得到某个PointInTIme的数量汇总。

请问有对应的MDX?

发表于 2013-4-20 00:13 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dc81 发表于 2013-4-19 22:56
这个文章快速看了一下,似乎没有解决我的疑问。

假设cube里面的Fact table是有version的(比如用 merge ...

http://www.purplefrogsystems.com/blog/2013/04/mdx-between-start-date-and-end-date/
a

发表于 2013-4-20 00:22 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dc81 发表于 2013-4-19 22:56
这个文章快速看了一下,似乎没有解决我的疑问。

假设cube里面的Fact table是有version的(比如用 merge ...

这篇blog你应该从part 1看起, http://cwebbbi.wordpress.com/2011/01/21/solving-the-events-in-progress-problem-in-mdx-part-1/

文章里的order date, ship date就是你的start date and end date

我认为chris的方法是最快的。
a

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部