大家都动手,一起用PowerPivot做自助式分析

在许多企业里,当商业用户需要分析数据时,他们往往会与IT部门的同事合作,从而创建一套商业智能解决方案。有时候,商业用户急需分析数据,并从中得到有用的信息,但是因为IT部门的项目比较多,或者商业用户要分析的资料不在IT部门的数据库里,IT 部门的同事可能需要比较长的时间来提供解决方案。因此,商业用户必须能通过自助的方式来为自己创建商业智能解决方案。 PowerPivot是什么?PowerPivot是Excel 2010的插件。PowerPivot让商业用户在熟悉的Excel环境中做强大的自助式分析。   图一:Excel 2010的插件——PowerPivot   图二: PowerPivot的环境 PowerPivot应用强大的列压缩技术,在内存中对海量的数据进行压缩。PowerPivot的引擎能对压缩后的数据进行聚合和计算,很快的让用户做互动性的分析。用户只要几下点击,便可以生成和发布出直观和互动的自助式商业智能解决方案。此外,用户可以把自己创建的PowerPivots发布到SharePoint Server 2010,与同事共享和协作。PowerPivot也让IT部门变得更强大。IT部门的同事可以同过SharePoint Server 2010中的Operation Dashboard管理PowerPivots。 今天,大家都动手,一起来做自助式分析!以下的学习资料供你参考: 通过如何应用PowerPivot来做自助式分析视频教程,大家可以学习 PowerPivot的基本功。 在2008 年十一月微软在北京和上海的技术大会,商务智能专家Donald Farmer和微软SQL中国研发部门经理赵晓燕与大家分享了商务智能的未来和Project Gemini如何让商业用户做自助式分析。参见体会Microsoft的更快、更高与更强——侧记TechEd 2008上海技术大会博文。 在2009年十一月微软的北京技术大会,Donald Farmer与我演示了PowerPivot(先前名称——Project Gemini)的各种强大功能。每一次的分享都让大家加深了对自助式商务智能的了解,和对PowerPivot的期待。参见精彩的微软技术大会(TechEd)- 你去了吗?博文。 各位IT朋友们可以到http://powerpivot.com/获取更多PowerPivot的资料。 微软商业智能(BI)团队


SSIS工程师为您揭秘数据流

我上个月有幸参加了在西雅图召开的PASS(Professional Association for SQL Server)峰会。我的同事Matt Masson做了个关于SQL Server 数据集成服务(Integration Services,SSIS)的讲座(下载),现场非常火爆,讲完后他被听众围住了个把小时。他的题目是Maximize Your SSIS Investment with Tuning Tricks and Tips,主要关于提升数据集成包(package)的性能。 他讲了四部分,其中第二部分深入浅出地介绍了SSIS数据流(Data flow)。我估计我国的用户会特别感兴趣这一块,因此在这里分享给你 🙂 数据流一瞥 SSIS的引擎(engine)是内存式(in-memory)的:从源(source)读数据,在内存中执行package,再把结果写到端(destination)。尽量不碰外存是其高性能的原因之一。很多以前使用ETL(Extract-Transform-Load)工具的人需要对此调整观念:那些工具先把数据加载到数据库里再做SQL转换,其实是ELT(Extract-Load-Transform)。Matt讲了个很有趣的案例:有位客户的package以前运行只要几分钟,自从服务器升级到新机器后竟然更慢了,要花一个小时。那个package很简单,只是源到端拷贝,中间没有转换(transform),因此客户很生气。Matt他们急忙去会诊,才发现这个package的源和端以前就在它所运行的那台机器上,在美国; 后来升级了的机器在中国,源和端都跑到了中国来,而package还是在美国那台机器上运行。结果这个package所做的就是从中国读出若干GB的数据到美国的内存,再拷回中国……Matt说,类似的客户问题其实并不少见。希望你读本文以后能避免这种设计了 🙂 SSIS在设计时(design time)阶段就确定了数据流的元数据(metadata)。它在运行之前就精确知道了运行时的列将有多宽,转换需要多少内存,等等。 数据流水线(pipeline) 当数据流启动时,源就开始把一行行数据填到一个类似桶的缓存(buffer)中。源根本不知道下游是什么。一旦缓存满了,桶就随着流水线流到下游组件(component)上,同时引擎抓一个新的空缓存过来给源。源根本不知道这一切,它只是不断地填桶。有时源填了太多的桶,转换和端都来不及应付了;此时引擎会启动反压(backpressure)机制,让源睡眠。等到流水线又有空间之后,源被唤醒继续填桶。其实在实现上,源甚至都不知道自己被催眠过(好可怜)……直到所有源数据行都发光了,源才在最后一个缓存上贴个“行集末(End Of Rowset)”的标签,把它发出去,告诉下游组件再没有新数据了。 转换与缓存拷贝 SSIS的高性能有部分归功于它在内存使用上比较聪明。在缓存之间拷贝数据是耗时的,因此引擎会尽量减少缓存拷贝。按照缓存使用的不同,可将众多转换组件分为三类。 第一类是同步(synchronous)转换,它们一般逐行对数据做就地修改,从不拷贝缓存。它们有可能增加新行,比如数据转换(Data Convert)和派生列(Derived Column)转换,而仍然是同步的:引擎事先确定了新列将加在哪里,提前就在缓存里加了空列,只是上游组件看不到这些空列罢了。异步(asynchronous)转换会动态创建新缓存,包括两小类: 部分阻塞(Partially Blocking)转换,一伺新缓存满了就把它输出,比如联合全体(Union All)组件接受多个输入流,一旦从各输入得到了足够多的行就把它输入到一个新缓存里。由于要拷贝数据,这种转换比同步转换慢;但和全阻塞(Blocking)转换相比就好多了。排序(Sort)、聚集(Aggregate)这些全阻塞转换在接收完所有输入行之前,是不会输出一行的。这是由运算本身的特点决定的:不到看到所有数据,是无法确定哪个是最小值的。 因此,在使用全阻塞转换时要格外审慎,尤其是数据量很大时。一旦内存用完,缓存被置换到硬盘上,性能就完了。要想提高数据流性能,最好设法从package中去除全阻塞转换。 线程机制 要理解数据流,还需要了解其线程机制。流水线在运行时被分成若干执行树(Execution Trees)。每个创建新缓存的组件就是一棵新执行树的起点;因此起点要么是个数据源,要么是个异步转换。下图的数据流中有5棵执行树,如蓝箭头所示。引擎限定了每棵树中最多工作的缓存数(目前定为五个),一旦更多缓存进来,就启动反压。注意到多播(Multicast)和条件分割(Conditional Split)转换都是同步的,它们在分割数据流时并不创建新缓存;引擎只是创建了一些能映射到同一块内存的虚拟缓存。所以即使你多播20次也不会看到内存消耗增多。   此图修改自Matt的幻灯片 值得一提的是,数据流线程调度在SQL 2008版本中被改进了:在2005版中,每棵树只分到一个线程执行,其问题是对于图中右边那种较长的树,虽然树里都是一序列同步转换,但每次只能在树中移动一个缓存,执行完它之后才能开始执行下一个缓存。很多人为了打碎较长的执行树,就在中间插入一个单输入的联合全体(Union All)组件,由于它是异步的,就能间接引入另一个线程。而现在,我们在2008版中改为让每个缓存上都有一个线程在执行,这样一棵树中就可以有多个线程在执行。可能第一个线程先把一个缓存进行了三个转换, 然后第二个线程捡起这个缓存继续向下游转换,同时第一个线程开始捡起下一个缓存。这样就再也不需要上述间接的方法了。 看完以上揭秘,你有收获吗? 杨珂,SSIS软件开发工程师

3

精彩的微软技术大会(TechEd)- 你去了吗?

每个微软技术大会(TechEd)对我来说都具有特别的意义。因为在这个里,我能遇到许多对微软技术有浓厚兴趣和热情的朋友们。在这个里,我们一起互动,一起讨论微软的最新技术。今年IT朋友们都共聚在北京的国家会议中心参加微软技术大会。  在这三天里,SQL Server 团队的讲师们也与大家分享了许多对云端数据库 (SQL Azure)、商业智能 (Business Intelligence)、数据库管理、虚拟化和跟踪及排错的最新发展。今年商业智能的巨人Donald Farmer 也前来赴约。Donald与大家分享了数据挖掘的技术和自助式商务智能。从数据挖掘的讲座中,大家深入了解如何应用数据挖掘的技术在 SQL Server 动态数据库管理视图(DMV) 的数据中找出异常。从自助式商务智功能的讲座中,Donald 介绍了自助式商务智能的重要性和PowerPivot 如何让熟悉Excel 的用户分析海量的数据。在演示中,大家都对PowerPivot 如何快速的分析了一亿行数据叹为观止,不约而同的热烈拍掌! 微软技术大会(TechEd)结束了!但我深信参加大会的朋友们都增加了对微软技术的了解与热情。真棒! 项目经理卓伟雄


使用微软SAP BI Connector组件分析处理数据

微软SAP BI Connector组件(Microsoft Connector for SAP BI)是由微软中国SQL Server商务智能团队开发的集成服务(Integration Services)新组件,它的主要功能是让用户更方便地在微软SSIS集成环境中与SAP NetWeaver BI交互数据。 该组件由三部分组成: SAP BI源:从SAP NetWeaver中取出数据 SAP BI目标:将数据导入到SAP系统中 SAP BI 连接:对集成服务包与SAP BI系统间的连接进行管理。 该组件已与微软SQL Server 2008 Feature Pack SP1同步发布,目前,SAP BI源已经得到了SAP的认证,而SAP BI目标的认证也正在进行中。你可以在这里下载该组件。 需要注意的是,安装使用SAP BI Connector组件必须满足以下条件: 操作系统为Windows Server 2003及以上的版本 安装SQL Server 2008 集成服务(SQL Server 2008 Integration Services) 安装Windows Installer 4.5 或之后的版本 从SAP BW中取出数据需要得到SAP Open Hub license 在SAP BI系统中,SAP_BW Support…

5

30分钟内加载1TB 的数据——SSIS打破商业ETL工具的记录

许多企业拥有海量的数据,并将其存储在多个不同的数据源。为了给用户提供有意义和可靠的信息,企业需要提取、转换和加载数据(Extract, Transform, and Load data,简称 ETL)。SQL Server 集成服务 (SSIS)可以让企业把来自异构数据源的任意数据加载到数据库。 2008年2月,微软宣布了SQL Server 集成服务数据加载的一个破记录壮举:SQL Server集成服务用不到30分钟的时间把1 TB 的数据从平面文件加载到SQL Server 2008。这比其他商业ETL工具的最佳时间快了30%。 该项测试把数据源分布在四台服务器中,每一台数据源服务器都是UNISYS ES3220L(2 sockets each with 4 core Intel 2GHz CPUs, 4GB RAM, Windows Server 2008, SQL Server 2008)。数据目的地的服务器是一台UNISYS ES7000/One(32 sockets each with 2 core Intel 3.4 GHz CPUs 256 GB RAM, Windows Server 2008 and SQL Server 2008)。集成服务将海量的数据通过千兆以太网络加载到数据目的地。测试用的数据来自TPC-H的数据生成程序DBGEN。…

1

体会Microsoft的更快、更高与更强——侧记TechEd 2008上海技术大会

2008年是奥运年,2008年对Microsoft来说也是至关重要的一年,多项重量级产品都在这一年发布。正如奥林匹克运动会所提倡的更快、更高与更强,在Microsoft这一年所发布的产品中,人们处处都可以看到Microsoft的更快、更高与更强的精神——在参加完TechEd 2008上海站的技术大会之后,我对此又有了更深切的感触。 TechEd 技术大会是Microsoft在全球为IT业内人士举办的年度技术教育大会。自1994年登陆中国以来,TechEd迄今为止已举办了13届。今年的TechEd技术大会分别在广州、上海和北京举办,与会者人数远远超过去年,达到6500多人。 图1 谢恩伟在2008 TechEd Keynote上介绍动态IT 2008年11月4日,上海站的TechEd技术大会在上海贵都大酒店盛大开幕了。微软中国研发集团服务器与开发工具事业部的总经理谢恩伟在Keynote上介绍了多款Microsoft服务器端最新产品和工具,包括Microsoft Virtualization、Windows HPC Server、SQL Server 2008以及Visual Studio 2008。在11月4日的Keynote上,微软及合作伙伴们对这些产品和工具进行了精彩的展示。对于IT经理们,最大的亮点莫过于Microsoft Virtualization产品的Demo。IT经理们在一天之中的忙碌工作以及遇到的各种问题被拍摄成一小段VCR,而Microsoft Virtualization产品针对VCR中各种问题都提供了快速而高效的解决方案。通过现场一位IT经理的现身说法,Microsoft产品的最新特性深深打动了在场听众的心。 作为TechEd 2008上海站SQL Server Booth中的一员,我也亲身感受到了TechEd与会者对SQL Server 2008新产品的热情和激动的心情。在SQL Server的展台周围有很多企业的IT架构人员和技术人员前来询问SQL Server产品的使用问题以及SQL Server 2008的新技术特性。与会者对SQL Server的存储能力和SQL Server商务智能(Business Intelligence – BI)中数据分析和挖掘关注度比较高。有些与会者所在公司的技术架构中并没有采用或者即将采用SQL Server数据库,他们对SQL Server新产品特性亦表现出了很高的关注度。我们展台派发的SQL Server 2008的试用光盘在当天下午第一节课程结束之前就被索取完毕。 图2 微软产品展区人头攒动 SQL Server 2008已经在今年7月份正式发布了,新产品同时凝结了Microsoft总部和中国SQL Server研发团队的努力和辛勤劳动。在4日、5日两天的课程中,来自美国 SQL Server Analysis Services的部门项目经理Donald Farmer和我所在SQL Server中 国研发中心SQL BI研发部门的部门经理赵晓燕一同主讲了《SQL Server 2008的BI新特性》和《商务智能的未来之路》两门课程。在4日的《SQL Server 2008的BI新特性》中,Donald和晓燕不仅对SQL…


微软为开发人员提供的成长环境

时间过得飞快,不知不觉来到SQL Server中国研发中心(SQL CRD)已半年多了。简单地记录一下自己的感想吧,免得再过些日子就全忘了 J 这半年来,作为一个SDE,我感触最深的就是微软为一个开发人员成长所提供的优越环境,包括世界级的项目机会、丰富的技术资源,以及大量的培训交流。 来微软之前,我和很多人一样,担心从事的会是一些边缘性的工作,无法接触到核心技术。事实证明我的担心完全是多余的,我们和Redmond总部的开发组在同一个平台上工作,共同应对各种各样的技术挑战。例如,我们组开发的产品是SQL Server Integration Service (SSIS),它是一个ETL工具,用于数据的抽取、转换和加载。当面临数据仓库的海量数据环境时,其核心引擎的性能至关重要。在这一点上,遇到的问题、可能的算法改进等,都是在整个组内讨论解决方法的,如果你的算法能有效提高性能,就会被采纳。考虑到微软产品的巨大影响力,你的每一个改进都将影响世界各地的亿万用户,这种成就感是难以名状的。 除了共同改进产品外,中国团队也独立负责一些组件,例如我们SSIS上海小组正忙于SAP BI Connector组件的研发。我们需要全面负责该组件所有的事项,从设计、开发、测试、文档到发布,我们上海小组都需要全面负责、协调各方面的资源。在SSIS下一个版本中,更是计划将核心引擎的很大部分放到中国来开发。在这种世界级、平台级的核心软件开发过程中,开发人员可以接触到最先进的技术,迅速地成长起来。 微软紧密的全球化协作开发也提供了难得的项目学习体验。由于工作需要,我们经常会在即时通信工具Office Communicator上和Redmond总部的开发人员探讨一些问题,然后发现这些问题涉及到其它组,于是又和印度的开发组交流。随后又收到另一个国家的微软顾问的信,希望你帮忙解答产品相关的问题。这不得不让人感叹,软件和互联网真的已经把地球变成了平的。在这种紧密的全球化协作开发中,一个技术人员的语言能力、沟通技巧、技术阅历都会得到迅速的提高。 除了这些世界级、国际化的项目机会外,微软内部丰富的技术资源更是开发人员成长的宝典。作为全球软件行业的旗舰,微软几十年来开发出众多影响深远的经典软件。这些软件研发过程中的经验教训经过一代代的积累,形成了微软内部的异常丰富的技术资源,包括大量的文档、流程和工具。打开SQL Server部门内部的服务器,各种各样的概念、流程和工具软件令人眼花缭乱。以至于我经常感叹,即使想把SQL Server部门内部应用的软件过程和工具等基本掌握,就是个令人望而生畏的任务,更不用提还有那么多其它的产品部门了。当软件工程课本上枯燥的理论化为日常工作中一个个真实的流程、工具时,一个初学者也会迅速成长为一个专业的软件工程师。 最后,微软为员工提供了丰富的培训交流,包括各种讲座、课程和人员交流计划。例如,目前SQL CRD上海就和Redmond有一个双向的交流学习项目。一个称为“丝绸之路”计划,它资助中国的开发人员去Redmond学习工作。另一个则称为“马可波罗”计划,它是反过来资助Redmond的人员到中国来工作一段时间。我在去年入职后,经过短暂的一段熟悉时间后,即受“丝绸之路”计划资助,派往Redmond和总部人员一起工作六周左右。到现在为止,我们SQLCRD BI组的正式员工几乎都被派出学习了一段时间。无论是在技术还是交流上,我们都从这些经历中获益匪浅。 丁晓宁

4

英雄由{此}诞生

其实一开始就想记录一下发布会当天的情况,由于最近事情比较多,一拖再拖。今天给自己定了目标无论如何要写一些东西,以纪念这个“历史上最大的IT发布会”。 2008年3月13号,一个阳光明媚的日子(其实是不是阳光明媚我也不记得了,呵呵)。由于通知是12点开始,我11点50就到了工人体育馆。到了才知道原来是12点开始入场,真正的开始要在下午1点半。不过这时已经有很多人开始入场了。入场时给每个人都派发了一个手提袋,不出我所料是今天要发布的几个产品的试用装和一些宣传资料。原来还担心这一个半小时不知道怎么打发,入场之后才发现有很多赞助商的展区,大家都在参观各种基于Windows技术平台的产品展示,还有的赞助商提供实际操作和抽奖机会。随着人流在体育馆外围转来转去的,收到不少的宣传资料,还领到了一袋妙芙蛋糕,正好填填肚子,呵呵。 快到1点半的时候,半个工体几乎已经座无虚席了(由于舞台搭在场地中间,只面对体育馆的一半座位,所以只有面向临时舞台的一半座位开放),原来预计的是6000人到场,据说大约到了7000人。遗憾的是没有带相机,错过了记录这个历史性事件的机会。大屏幕上滚动播放着IT相关产品以及微软产品的历史发展过程,配以激昂的音乐,让人听得热血沸腾,好像每个人都是大侠,来参加这个盛大的武林大会。 1点半,演出正式开始。先是由鲲鹏乐队给大家热了热身,接着在简短的介绍之后,重量级人物——鲍勃·穆格利亚——登台演讲。鲍勃·穆格利亚首先介绍了微软的“动态IT”的概念,进一步引出今天发布会的3大主角:Windows Server 2008、Visual Studio 2008 和SQL Server 2008。对于这三个产品功能的介绍并不是老生长谈的新功能列表,而是巧妙的和一家虚拟的网上咖啡店的业务需求联系在一起,分别介绍了Windows Server 2008的高安全性、易管理性和内置的虚拟技术;Visual Studio 2008的易用性和团队协作开发特性;以及SQL Server 2008在商业智能上的最新进展。由于每一个演示都是在一个虚拟的情节中进行,并没有太多的术语和直白的功能列举,还不时的穿插一些小幽默,使得整个的演示都很吸引人,我可以感觉到周围的人都看得津津有味。 对于SQL Server 2008的演示我是格外关注的,因为自己刚刚加入SQL中国研发团队,很想了解一下SQL Server最新的功能,同时也为了能加入这个团队而自豪。SQL Server 2008的演示基于其最新的商业智能特性,它可以从多个数据源将数据集成(SSIS – SQL Server Integration Services),对数据进行深入的分析(SSAS – SQL Server Analysis Services),然后以多种形式展现给业务人员和管理人员查看(SSRS – SQL Server Reporting Services),如下图所示: 更关键的在于,实现一个复杂的报表并不意味着需要多么复杂的操作和高深的知识,而就像普通的Office文档操作一样的简单和便捷。而商业智能这一部分也正是SQL中国研发团队的工作重点之一,我虽然来的时间很短,但也已经接触过几个SQL Server数据集成服务(SSIS)组的同事。一想到这个如此强大的产品就是由身边的人一点一滴的努力做出来的,觉得自己要更努力了。正像主持人最后所说的那样,技术前进的每一步都离不开每一个技术人员的努力,每一个人都是英雄。Hero Happens Here! 郭亚涛

2