Power Platform是什么?也许目前很多人对它还不太了解。但是,谈到Power Platform的一位成员——Power BI,相信大多数读者对它已经比较熟悉。图1.1所示为微软公司官方的Power Platform架构图。Power Platform内含4个Power应用和3个通用组件。
图1.1 微软公司官方的Power Platform架构图
(1) Power BI :通过可视化分析让读者可以洞察数据蕴含的价值。Power BI既可以用于自助商业智能分析,也可与Azure数据库、数据湖相结合,实现企业级的商业智能应用。
(2) Power Apps :可用于替换Excel表格、纸质表单等传统方案,快速地以无代码或低代码的方式来开发应用程序;可与AI Builder、Dataverse相结合,实现丰富的应用场景。
(3) Power Automate :可用于一般工作流自动化场景、RPA(Robotic Process Automation,机器人流程自动化)应用。Power Automate原名Flow,加入RPA场景后于2019年10月正式更名为Power Automate。
(4) Power Virtual Agents :支持用户无代码创建智能聊天机器人,同时可与Power Automate深度集成,丰富应用场景。
(1) Dataverse :基于标准化数据模型的数据服务应用。简单而言,Dataverse是一个带有SaaS(Software as a Service,软件即服务)性质的线上数据库,支持用户通过自助式方式创建与定义数据库以及相应的数据服务规则。注意,Dataverse原有名称为Common Data Service(CDS),于2020年11月正式更名,但由于官网图片仍使用旧术语,本书中部分截图可能仍然使用旧术语。
(2) Data Connector :用于实现Power Platform与外部数据的数据连接,在写作本书时,Data Connector提供的标准接口达270多种,从微软公司的产品如SharePoint、SQL Server等,到社交媒体如Facebook、Twitter等应用,应有尽有。开发者可通过API(Application Programming Interface,应用程序编辑接口)开发任何定制化接口,如与微信、微博等定制化接口。
(3) AI Builder :可提供文本分类、表格处理、物体检测、预测等AI(Artificial Intelligence,人工智能)模型以及一系列标准即开即用AI功能,无须提供AI指示,用户也能自助式落地AI解决方案。
我们首先得从数字化转型这个话题聊起,目前人类社会已经处于数字化时代,即DT(Digital Technology,数字技术)时代,这意味着过去IT(Information Technology,信息技术)时代的生产工作方式与行为模式都将发生变革,而变革的引擎主要来自数字技术的发展。这并不是空泛的理论,而是切切实实涉及具体的商业场景细节。例如,日常录入数据的方式是通过纸质还是电子表格?数据的转化的过程是手动还是AI化?数据分析的能力仅限于传统Excel分析工具还是更为专业的Power BI?如果人们在现实工作中仍然被传统的技术与思维所束缚,那数字化转型只能永远是一个美好的愿望。Power Platform正是为解决数字化转型而生的一个整体性的解决方案平台。在Power Platform环境下,所有用户均可通过低代码或无代码方式落地各种数字化商业场景,并将结果充分与其他同事分享,形成规模效应,同时极大地提升用户体验。
数字化转型成功的关键因素有哪些呢?至少低代码是一个关键因素,因为它能有效降低学习成本。举例而言,现实中企业不可能要求所有业务人员个个精通如Python、R等数据分析工具,这些连IT人员都未必全部能掌握的工具,何况是业务人员呢?这样的人如果存在,一定凤毛麟角,而且拥有这种能力的人一般不会甘于一个普通的业务岗位,企业也很难将这种能力有效规模化。尤其对于非IT企业,精通IT技能并非也不应该是企业的核心价值所在。能否提升企业人员的数字化技能是数字化转型能否成功的核心因素。图1.2所示为高德纳(Gartner)公司低代码平台魔力象限图,Power Platform作为微软公司力推的低代码平台在业界广受好评,在同行业中处于领导者地位。
图1.2 高德纳公司低代码平台魔力象限图
何谓低代码?其本质是一种类似“乐高积木”的产物,Power Platform将各式各样通用功能封装成各类型积木,形成模块化组件。用户通过自助“拼积木”的方式,创建属于团队或个人的“乐高城堡”,这就是低代码的商业价值。业务人员无须学习编程语言就能实现设计网页端应用、自动化、大数据分析这样传统IT人员才能完成的任务。相信用过Power BI的读者对低代码工作方式有更加深刻的理解,从“Excel世界”转换到“Power BI世界”,原来复杂的Excel公式或者是VBA被相对简易的M、DAX语言替代了,同时还支持可视化交互等新功能。低代码应用能解决企业数字化转型过程中实际业务流程难以落地的难题(见图1.3)。
图1.3 Excel、PPT风格的操作体验
尽管Power BI是一款非常强大的数据可视化分析工具,但所谓“孤掌难鸣”,仅仅靠单一的数据化分析工具并不足以支撑企业数字化的全面转型。因此,继Power BI之后又出现了Power Apps、Power Automate等应用,这些应用和Office“兄弟”应用(见图1.4)相互协作、相得益彰,形成了强大的生态系统。
图1.4 Office 365应用列表
除了Microsoft 365(原名Office 365)云,Power Platform还与另外“两朵云”(Azure和Dynamics 365)深度集成,形成了全方位的数字化生态系统。从这个战略高度而言,微软公司的数字化应用是以Azure、Dynamics 365、Microsoft 365这3朵云与Power Platform的深度结合的云生态系统。
在谈到Power Platform对传统IT的挑战这个话题前,我们首先要谈到一个人:查尔斯·拉曼纳。此君自毕业十年后,在2019年被称为至今为止微软公司最年轻的VCP(Vice Corporate President,全球副总裁)。在如此年纪荣登如此重要的位置,其中很重要的原因归于查尔斯在领导Power Platform平台开发方面的卓越贡献,令Power Platform成为一支强而有力的新力量,号称微软公司的“第四架马车”。
微软公司对Power Platform的定位是全民开发平台,即无论是否拥有IT技能,用户均能在Power Platform上开发应用场景,同时Power Platform能为SaaS云托管服务。因此,许多传统上需要IT人员管理的工作如基础架构管理都将受到冲击。既然如此,那么传统的IT人员的价值何在?笔者认为,在低代码环境下,IT人员仍有自己的舞台角色:
(1)Power Platform平台的管理人员;
(2)Power Platform应用培训人员;
(3)Power Platform高级开发者。
Power Platform虽然是低代码平台,但学习成本仍然是存在的,IT人员充当的是“传道解惑”的角色。当业务人员通过自助方式实施个人或小组级别的数字化方案,IT人员则会聚焦在复杂的企业解决方案领域,如Power Platform与Azure平台的深度集成开发。当然,自助与企业的划分界限也并非总是泾渭分明的,部分企业会定位C.O.E(Center of Excellence,卓越中心)角色作为衔接IT与业务之间的“桥梁”。作为IT人员或C.O.E人员,对Power Platform的技术把握程度应比业务人员更为深入,这样才能更好地支持和引领业务的数字化发展。
从技术角度而言,Power Platform与Python、R语言既是竞争关系又是互补关系。对于Python、R语言,目前没有相关的低代码工具,因此在全民数字化转型领域,Power Platform凭借微软公司的生态环境,有不可忽视的优势。而Python、R语言在复杂的专业领域更有优势,至于“全民Python和R”,从今日的技术层面而言,还不具备实现的可能。幸运的是,Power Platform支持嵌入Python、R语言的开发代码,二者可以结合使用,集成“威力”更为惊人。笔者通过如图1.5所示的Excel、Power Platform及Python、R语言的学习难度与普及人数对比进行说明。对于大多数非IT专业背景的人,先达到“中学水平”,是更加切实可行的目标。即使已经是“大学水平”的读者,重新回顾“中学课本”,也必会有所收获。
图1.5 Excel、Power Platform及Python、R语言的学习难度与普及人数对比
Power BI是一款数据可视化分析解决方案,如果觉得数据可视化分析概念太抽象,可以将Power BI理解为加强版的Excel(尽管这种理解有些许偏差)。笔者对微软公司官网的Power BI简介(见图1.6)简单总结为:连接各种数据源,创建令人惊叹的交互式可视化分析;发布报表和仪表板,与团队协作和共享见解;无缝获取见解或者随时随地进行无缝访问。
图1.6 来自微软公司官网的Power BI简介
读者可能会问:但即使这样,何以见得此为Power BI的高明之处呢?其他BI工具(如Tableau)也可以达到这种效果啊!的确没有错,能实现这些功能的产品不止一家,但俗话说,“人比人得死,货比货得扔”。图1.7所示为高德纳公司2021年的BI平台魔力象限图,可见微软公司在领导者象限遥遥领先对手,且微软公司已经在过去多年连续处于领导者地位。此图的横轴为前瞻性维度,可理解为“远景的丰富程度”;纵轴为可执行能力维度,即目前产品功能与用户体验是否值得肯定的体现。虽然,魔力象限图是对微软品牌的总体打分,但Power BI作为微软公司目前最核心的可视化数据分析工具之一,足以代表微软公司整体在BI平台方面的最高制作水准。
图1.7 高德纳公司2021年的BI平台魔力象限图
除了上述的可执行能力与前瞻性两个维度的价值,笔者认为Power BI身上还具有这些特点:操作敏捷自助,可视化功能丰富,适用于个人/部门/企业各层次。今天,传统的固定化BI报表已不能满足现代快速变化的商业需求,决策者应该思考是否需要将由IT人员主导的特定分析转为由分析人员主导的探索性分析。而Power BI恰恰可以赋能分析人员在无须IT人员介入的情况下独立完成一系列的数据挖掘操作,让“人人都能学会数据分析”不再是一句空洞的口号。如果把一家企业的BI分析工具比喻成武器,那么传统的企业级BI工具的特点是精准、射程远、威力大,但需要专业人员操作,自身维护成本高;自助式BI工具的特点是易上手,普通人通过短期培训就能发挥出很大“威力”(见图1.8)。
图1.8 企业级BI与自助式BI的对比
这并不是说企业级BI工具不再重要了,对许多数据规模大、逻辑复杂的应用场景来说,仍然需要用企业级BI工具完成。因此,企业级BI工具目前仍然处于不可缺失的地位。企业应思考的不是二选一的问题,而是如何将传统的企业级BI工具和现代的自助式BI工具有机结合,发挥出最大的“威力”。例如,企业级BI工具在后方数据仓库搭建更有优势,专业IT人员可专注于数据仓库开发、数据治理等工作;分析人员则通过自助式BI连接后方数据仓库实现探索性分析,最大限度地释放生产力,从而事半功倍。图1.9所示为Azure Data Services架构图,是基于企业级应用平台Azure和各数据平台搭建的商业智能解决方案,Power BI在其中发挥可视化呈现的功能。Power BI既可用作自助式BI方案,也可以用作企业级BI方案。
图1.9 Azure Data Services架构图
有读者问,我用了这么多年的Excel难道不是一个自助式BI吗?我为什么还需要使用Power BI呢?虽然有争论,但Excel的确符合BI工具的许多特性。如果从这个角度理解,目前Excel的确仍然是市面上使用最广泛的“BI工具”。有这样一个笑话说明Excel的广泛用途。
问:BI工具中使用频率第三高的按键是什么?
答:导出为Excel。
问:那么第一与第二高的呢?
答:“Yes”和“No”。
那么,我们不妨对比Power BI与Excel这两款工具的差别。前文说Power BI是Excel加强版,那么它强在哪里呢?首先,Power BI解决了Excel传统的三大难题,如表1.1所示。
表1.1 传统Excel与Power BI主要功能对比
除此之外,Power BI比Excel更加完善的地方还有许多,以下只列举一些重要特性:
(1)Power BI增添了Power BI service分享发布功能,使内容发布与分享更为便利;
(2)Power BI添加了丰富而强悍的可视化组件,使人们更容易理解和洞察数据背后的规律;
(3)Power BI增加了AI高级分析功能,可帮助分析人员洞察数据;
(4)Power BI可与Office 365、Azure和Dynamic 365无缝对接,形成了强大、协同的生态体系。
既然Power BI如此强大,是否日后能直接用Power BI替代Excel呢?答案是否定的。我们来看Power BI不能做什么:
(1)Power BI不是编程工具,不能完成类似Excel VBA的复杂逻辑编写;
(2)Power BI不能处理非结构性数据;
(3)Power BI不能用于OLTP(Online Transaction Processing,联机事务处理);
(4)Power BI本身只是分析数据的工具,通常不用于回写数据。
基于这几点,Excel的优势就显现出来了。实际上,自Excel 2010开始,Excel已经支持Power Pivot、Power Query功能。我们姑且将Excel Power Pivot与Excel Power Query统称为Power Excel,这要与传统的Excel进行区分。如今的Excel使用者除了需要熟悉VLOOKUP和VBA这类传统Excel技能,也应该对模型方面的知识有所掌握,这样才是一个真正的Excel分析高手。图1.10所示为基于Power Query进行股票回归测试的Power Excel,使用的技术是VBA、Power Pivot与Power Query的集成。
图1.10 基于Power Query进行股票回归测试的Power Excel
Power BI与Power Excel在技术上是相通的,同宗同源,如图1.11所示,都有获取数据和分析数据模块。对比而言,Power BI更适合用于可视化分析方案,而Power Excel更适用于事务型与表格型的混合解决方案。
图1.11 Power BI与Power Excel数据模块的对比
Power BI的核心功能有四大模块:数据准备、数据建模、数据可视化、数据发布与共享。图1.12所示为关于Power BI组件的比喻,一个成功的可视化数据分析过程可以比喻为一次愉快的外出用餐体验。为提供愉快的用餐体验,餐馆务必在选备食材、烹饪与卖相、环境与服务上下足工夫。在Power BI语境下,数据准备代表食材购买与准备,数据建模代表烹饪色香味俱全的食物,数据可视化代表菜品卖相,Power BI service代表餐厅平台(环境与服务)。
图1.12 关于Power BI组件的比喻
有一句老话“Garbage in,garbage out”(垃圾进,垃圾出),用于强调数据准备的重要性。根据《哈佛商业评论》的调查研究,数据准备要花掉整个分析过程中80%的时间。因此一个工具是否能胜任数据准备的挑战,其关键性不言而喻。在Power BI中,仅使用Power Query就可以完成许多基础的数据准备任务。同时,资深用户还可以直接使用高级功能,通过编写M语言代码来完成更为复杂的数据准备任务,前提是用户需了解M语言知识(见图1.13)。
图1.13 Power Query主界面
建模部分可谓是Power BI的灵魂核心。DAX(Data Analysis Expression)是数据分析工具的核心语言,通过DAX,Power BI可实现丰富的分析场景,甚至在Excel或SQL中也未必能表达出的逻辑,用DAX则能举重若轻地完成。与许多人一样,笔者被DAX的简练、高深、优雅所深深折服。DAX表达式中一部分与Excel公式重合,如SUM、IF、TRIM等,通常这部分表达式用于计算列。另外如CALCULATE、ALLSELECTED、ALL等DAX独有表达式,通常用于度量、计算(见图1.14)。
图1.14 Power BI关系视图界面
除了Power BI可视化区中默认自带的30种可视化图形,Power BI可视化库至少还有200多种可视化图形供用户选择。当然,这并不是说用户需要了解每种图形的用法,实际上许多图形之间是相似的。用户能掌握30种主要图形足矣。另外,部分Power BI可视化图形支持高级分析功能,但用户需要为使用额外功能支付额外许可费用(见图1.15)。
图1.15 Power BI可视化界面
当制作报表完成后,我们可将报表发布至Power BI service中并与其他使用者共享分析结果。实际上,Power BI service本身与数据分析没有太多直接关系,它只作为报表发布与共享的服务平台,其终极目的是为用户提供良好的环境,包括在线报表的访问速度、完善的分享功能、安全的访问、友好的用户界面等,从而提升用户体验,这些功能往往非常关键。试想即使前面所有步骤都做到完美,但对于刷新一次需要5小时、查询一次需要10分钟的报表,谁会享受这样的报表服务呢?(见图1.16)
图1.16 Power BI service主界面
Power Apps是一款根据业务需求定制应用的低代码工具。图1.17所示为Power Apps官方功能介绍,企业中几乎任何人都可以通过预建模板、建议的拖放操作构建和启用应用。Power Apps支持嵌入AI Builder等高级应用,也可与Azure Functions集成,赋予开发人员更多扩展能力。
图1.17 Power Apps官方功能介绍
为什么需要Power Apps呢?在传统IT行业中,存在这样一个循环困境,新的商业机会往往需要新应用的支持,而市场中的标准应用又往往难以满足商业需求,于是寻求定制开发应用,但随之又要面临开发成本的上升与项目过程的拖延问题,最终好不容易完成交付应用,又发现原有商业需求发生变化,二次开发应用的成本过高,日常也难以维护。于是经过2~3年,又决定推翻已有应用,重新开始下一轮的循环。这就是传统应用开发中常见的挑战,开发的目的是让应用适用于人,但开发完成后的结果,往往是让人适应应用,这个过程影响的是用户的体验感和使用效率。Power Apps的商业价值在于打破这种循环困境,通过低代码的方式,用户可以自助、快速构建定制化的、灵活轻便的应用,并可应需求迭代增强应用的功能,极大地延长了应用的生命周期。
顾问公司Forrester发布的Power Apps推动业务转型的调研结果(2020年3月)表明,这些改变得益于业务人员由原来被动接受应用开发,转为主动自助应用开发。
如图1.18所示,Power Apps可提供画布应用、模型驱动应用和门户3种App,满足大多数商业场景的需求。它们的特征如下。
图1.18 Power Apps提供的3种App
(1) 画布应用 :用户可在画布般的界面上设计每个具体的细节,添加各种输入控件,如文本输入、相机拍摄、图片上传、邮件搜索等,这都是为了收集信息数据。该应用提供一些常用的场景如费用报告或现场检查。图1.19所示为画布应用示例。
图1.19 画布应用示例
(2) 模型驱动应用 :用于数据模型和业务流程中的应用管理,以拖曳的方式设计商业规则,并根据特定角色定制用户体验。图1.20所示为模型驱动应用示例。
图1.20 模型驱动应用示例
(3) 门户 :用于创建门户网站,并支持通用身份验证,例如Azure AD、LinkedIn、Microsoft账户、Okta等,门户示例如图1.21所示。
图1.21 门户示例
总体而言,Power Apps函数分为两大类:Excel类与非Excel类。顾名思义,Excel类函数与Excel中的函数高度一致,例如Sum、If、Trim等,对Excel用户来说门槛低。Power Apps函数示例如图1.22所示。
图1.22 Power Apps函数示例
非Excel类函数包括如Filter、AddColumns、ThisItem、ClearCollection等函数。图1.23所示为类似于Power BI DAX分析函数示例——Filter公式的用法介绍,熟悉DAX的读者不难发现该公式与DAX中的Filter用法完全一致。因此,如果读者已经掌握了Excel与DAX函数,那么也就掌握了Power Apps中大部分函数的用法。当然,仍有一部分公式是独立存在于Power Apps中的,例如,ThisItem、ClearCollection等,后文会对重要公式进行详解。
图1.23 类似于Power BI DAX分析函数示例