近两年来,Modern Data Stack 越来越成为了一个热门的技术话题。越来越多的企业组织在完成了信息化,在线化转型后,都把数据智能化作为下一个战略目标,出现了“数据是新的石油”的说法。
于是一方面,大数据的浪潮席卷而来,每家公司都在致力于收集更多的数据,推动了 Hadoop,数据湖等技术的兴起。另一方面,AI 成了从海量数据中获取业务价值的“炼金术”,几乎每家公司都在不遗余力的投入各种 AI 项目的尝试与探索。
但经过几年的实践,现实给我们上了很好的一课,大家越来越发现 光有更多的数据并不一定代表更好的业务产出,现有的算法也很难在混乱的数据中挖到业务洞见 。于是 Modern Data Stack 应运而生,其主要目的就是围绕数据与业务决策打造一个更好的基础设施,来提升数据的产出价值。这背后的驱动因素主要来自两方面:
这两个因素推动了我们的 Data Stack 从早年的传统数仓,再到 2010 年前后开始出现的数据湖,再到现在的云原生数据平台的演化过程。
传统数据栈的典型架构就是“数据源 -> ETL 工具 -> 数据仓库 -> BI 软件”这几个步骤。这里面最大的瓶颈来自于数据仓库,从一开始并没有区分 OLTP 和 OLAP,到后来逐渐有了 MPP 架构,都是为了去提升数据分析消费场景下的数仓服务性能与可扩展性。总体来说当时数仓都是价格昂贵的商业系统,使用门槛较高。为了更好地实现数据分析消费,我们不得不在数仓的输入和输出两端做各种优化,例如通过复杂的 ETL,将数据预先做筛选清洗,并聚合到较高的维度,避免出现超大的数据量。在 BI 软件层面,也做了很多查询优化,缓存,二次计算,Cube 等方面的技术创新,使得系统整体能服务更多的用户的复杂查询和并发操作。
在 2010 年左右大数据技术开始兴起,但当时的 SQL-on-Hadoop 技术主要还是应用在 ETL 这种批处理操作中,并没有对实时交互分析产生多大的影响。当时还出现了知名的 Lambda 架构等,其中也仍然需要数据仓库层对外提供分析服务。
2016 年开始逐渐火热的云原生浪潮带来了不少新的思路,其中一个很重要的想法就是做“ 拆分 ”,出现了存储和计算两个模块分离的云数仓,使得其扩展能力得到了极大的提升,并且成本方面也能控制的比较好。传统 ETL 对于数据应用造成的一个最大困难就在于我需要提前设计好分析消费时需要的表结构,一旦后续出现变更,需要消耗巨大的时间和成本来重新执行 ETL,甚至可能原先的数据都不存在了。有了几乎可以“无限扩展”的云数仓,我们可以把 ETL 也拆分了,其中 EL 两步主要做数据的“复制”,把所有可用信息都导入到云数仓中,后续再根据需求灵活的执行 T 就可以。
ETL 到 ELT
这个“拆分”还在不断自我增强,计算和存储拆开了,EL 和 T 拆开了,那么调度自然也需要单独一个模块来跨组件统筹,元数据分散在各个系统也不行,于是数据管控,可观测性也都拆了出来。这跟微服务兴起后,服务发现,消息系统,可观测性等都有了自然的需求是类似的,我们也可以把 DevOps 中的很多概念对应到 DataOps 上。于是现在,现代数据栈的全景图就变成了下面这个模样:
面向现代数据应用的各类公司
也难怪要叫现代数据“栈”了。
相比于数仓和数据湖平台,Modern Data Stack 以云数据库为中心 ,引发了一系列的产品技术的变化,进而影响到了企业组织,业务流程的改进优化,形成了新一代平台的特点与优势,包括:
后面我们会针对这些特性做进一步的展开分析。
在之前的聊聊云原生数据平台 一文中,我们已经详细介绍过 Modern Data Stack 的典型架构,其中主要包括以下几个部分:
典型的 Modern Data Stack 架构
今天我们的主题会围绕着数据分析与消费这个方向来展开。
数据分析与消费是整个 Data Stack 中面向用户量最广的一个环节,也是让数据最终产生业务价值的“门户”,影响了整体技术栈的演进。延续前面提到的 Modern Data Stack 特性,我们来看下针对分析领域出现的趋势。
对于用户来说,最显著的变化来自于数据分析的流程从 IT 为中心转向了以业务为中心。例如传统数据分析产品的典型流程如下:
从这个过程中,可以看出很多问题:
这几个因素叠加,让传统的数据消费变得非常低效,容易出错,相关项目的 ROI 较低甚至很容易回退到抛开数据凭经验决策的旧方法上去。
理想中的现代数据分析流程如下:
怎么样,是不是感觉好了很多!
为了实现这个理想的分析流程,也就给 Modern Data Stack 中的数据分析部分提出了很多挑战。很多现代 BI 软件的发展趋势都顺应了这些挑战:
接下来我们会主要从这四个方面来详细阐述现代 BI 产品的演进趋势。
传统的企业级软件栈都是以硬件采购,私有化部署模式为主的。这种方式在启动成本,产品项目的快速交付与迭代,持续的运维开销,可扩展性等方面都具有比较大的问题。
以数据分析中的 ETL 数据准备为例,一般在业务系统更新数据后,每天会在固定的时间段触发大量的 ETL 计算操作,将业务数据载入到分析系统中。这个时候就对计算资源提出了非常高的要求,需要采购大量的服务器资源才能够满足。一旦完成了 ETL 操作,整个系统的负荷又会很快下降到一个较低的水平,大量的服务器资源又处于一个闲置的状态,造成浪费。而现代云服务就能比较好的解决这类弹性计算资源的需求问题,降低成本。
随着云原生技术的兴起和成熟,越来越多的企业都开始拥抱“上云”,带来了诸多好处:
云服务让用户可以专注于核心业务
随着这个大的发展趋势,数据分析软件也必须符合云原生的架构标准,才能充分享受到这些“技术红利”。具体如:
当然云服务时代也给企业带来了新的挑战,尤其是在新应用的部署越来越方便的今天, 如何更好的去管理和优化云计算的费用开销,成了一个新的课题 。以往碰到一些效率低下的 SQL 查询,或者没有被用户使用的 workflow,顶多占用一些已有的硬件资源而已。但在云服务时代,一条有问题的 Snowflake 查询,就可能要花掉公司几百块钱。如果这个查询被反复执行,而其产出结果却没人来消费,那就真的是“烧钱”了。而且云服务本身的可选项也越来越丰富,同一件事情可能有好几种不同的云服务和计费方式可以选择,进一步提升了问题难度。
另一方面,如何满足企业级应用中多租户,资源隔离以及计算优先级等问题,即使在云计算时代也仍然是一个需要面对的重要课题。
我们观远数据在这块处在国内比较领先的状态, 从 16 年第一行代码开始就跑在了 K8s 环境上,很多基础能力都同时考虑了私有化部署和公有云服务对接的兼容性 。这几年更是与很多超头部企业一起共建,积累了很多大型公有云,私有云基础设施深度集成协作的经验,能够在上万 CPU 的集群上执行复杂的计算调度,服务整个企业多个事业部 3 万名以上的活跃数据分析师、决策者用户。
在管理云计算开销方面,我们也做了不少创新的实践, 推出了“云巡检”功能,与后面提到的数据管控与观测能力一起,在保证高质量的数据分析应用交付的同时,还能不断控制降低不必要的计算开销 ,可谓是云时代的必备核心功能了。
前面有提到,以往的分析软件以服务 IT 部门为主,业务方发起需求,由 IT 部门来进行满足。所以分析系统以一种被动提供服务,响应需求的形式存在,周期长,效率低。现代分析软件的一个重要趋势就是 将被动服务转变为主动打造“数据产品” ,做更系统和长远的规划,协同业务部门一起来推动数据赋能决策。
实现自助分析的一个核心观念转变是打造数据产品,而非被动响应服务。那么什么是数据产品呢?
简单来说,就是通过提供数据,来满足各类企业决策和流程应用的产品。我们在日常生活中其实也在很多情况下不经意间在使用数据产品,例如出门逛街时找吃饭的地方,我们就会打开大众点评应用,上面列出了各种饭店的类型,多个维度的评分,评价人数,具体的评论信息等数据,我们通过分析这一系列的数据,最终做出选择(想象一下如果这个过程需要通过 dashboard 来完成)。这个过程与企业内部的业务决策者流程很相似,所以说 数据产品并不只是复杂的 dashboard 的形态,而需要根据不同的用户角色来进行特定的交互设计 。例如对于很多业务人员来说,移动端的数据智能应用就更加方便易用,而不是碰到任何的业务问题都需要打开电脑来做复杂的看板分析。
日常生活中的数据产品
数据产品的构建需要引入产品设计思维:
需要注意的是数据产品的核心还是在分析型应用,辅助决策和业务流程,而不是自研各种 data infra。相反,为了实现数据产品化,投资于自助式的数据类软件会是非常有帮助的。他们相当于 提供了一个底层的“数据操作系统”,提供标准的数据收集,存储,消费能力 ,帮助企业的数据团队能更好的在这之上去构建数据应用产品。
产品思维中很重要的一点是明确目标客户,我们来看下数据产品需要服务的目标用户有哪些。一般来说,企业的数据分析决策相关人员会分成下图中的几类角色:
数据产品用户组成
当然这几个典型分类在不同规模的公司也会有不同的体现,相对小型的公司可能会主要分为数据开发者和消费者两类,而大型公司可能在这个基础上进一步细分出数据工程师,BI 工程师,数据运维,数据产品经理,数据大使等角色来。
另外这里只考虑了数据方面的相关角色,没有把软件开发,基础架构,云服务运维等方面的角色放进来。如果考虑商业化问题,那么我们还需要关注企业管理者角色的思考与决策方式,可能会对具体的采购行为有较大的影响力。
这几类角色的用户数量会呈现一个倒三角的分布,例如典型的例子可能是决策者 10000 人,分析师 1000 人,看板开发 300 人,AI 建模 30 人这样的比例。
为了服务多种多样的用户群体,就对现代数据分析软件提出了更高的要求。传统的 BI 软件基本上都只能提供可视化,看板的组合,但我们知道对于市场部门来说,体验最好的肯定是 Google Analytics 这类的分析形式;对于门店店长来说,通过移动端数据应用来获取信息与实时分析或许效率更高;而对于数据科学家,则必须提供灵活的 notebook 支持。因此 现代的自助分析软件就需要提升在数据消费方面的能力 ,例如支持定制化的可视化,低代码的数据应用开发,各种连接器来实现“反向 ETL”,或提供高级探索实验所需要的 notebook,SQL IDE 支持等。
除了业务用户, 数据产品的“开发者”用户群体也同样重要 ,我们在下面一节来展开描述。
在产品思维之外,数据产品从技术角度也给了我们很多不一样的思考角度。作为软件工程师,我们应该对敏捷开发,持续集成,DevOps 这些工程实践都非常熟悉了。而报表、仪表盘这类数据产品的开发,目前大都还处在一种非常“原始”的状态:
因此新一代的分析软件都开始借鉴很多软件工程的思想,提出了“Analytics as Software”的新主张。
典型的例子如 dbt,Looker 等产品中,都支持通过代码(DSL)来构建数据处理逻辑和数据模型。使用代码来定义看起来像是提高了使用门槛,跟自助式分析的初衷相违背,但我认为实际上并不矛盾。面向数据产品的“开发者”用户,以及对分析应用的底层构建来说, 需要有足够的复杂逻辑表达能力和简洁性 ,代码是一种非常理想的表达形式。
以代码为核心逻辑的载体,我们就可以利用上很多软件工程的最佳实践 ,例如版本控制,Code Review,代码包复用,自动化测试,持续集成发布,易于自动化集成等。在企业级应用中对数据的需求和重视程度的不断提升, 数据产品项目中涉及到的各种数据源,获取方式,指标定义,数据处理逻辑等各类信息的复杂度已经完全不亚于常规的软件系统了 。不借助这些优秀的工程实践,仅仅靠项目规范把控会很容易积累起数据产品的技术债,效率低下且难以持续。例如 dbt 就是一个非常优秀的以代码为核心的数据转换框架,这两年非常火爆,风头超过了很多主打无代码的拖拽式 ETL 工具:
以代码为核心的数据处理转换
除了以代码为核心,我们还可以 将产品的核心能力通过 public API 进行开放 ,方便各类分析需求与业务流程的深度集成串联,并进行持续的监控和运维,不断优化数据产品的性能,效率和用户体验。前面举了大众点评的例子,可以想象一下如市场投放,风控,客户营销,供应链优化等方面,都会有类似的业务流程结合数据分析的需求。通过开放 API 的 composable 能力,我们就可以 让分析产品的形态更加多样化,更好的满足用户从分析到决策动作的全流程 。这对于构建 data-driven 的企业文化来说也是至关重要的一点。
以代码为核心,分离了“定义”与“运行”,API 开放了底层能力,两者相结合,我们就可以构建一个更加开放的数据应用生态平台 ,让更多的分析工程师,社区爱好者来贡献各类数据插件与应用,基于统一的数据平台,打破企业的数据孤岛,覆盖更多的业务领域。想象一下 如果 Facebook,Uber 这些软件如果诞生在现在,可能就会成为数据平台上的一个应用,甚至两者之间的信息也能做到互通 。这种数据应用市场的未来想象空间是非常巨大的,极有可能颠覆很多现有的企业级业务软件系统,我们也已经观察到不少相关的案例出现。
如果只是以代码为核心,那么自助式分析的门槛就会变得更高。即使面对开发者用户,我们也需要注意 将业务逻辑跟执行细节能够很好的区分开来 ,例如应该把底层技术细节进行隐藏,无论用的是 OLAP 数据库还是时序数据库,无论是批处理还是流式处理,用户都只需要关心业务的核心逻辑即可,所以数据产品中比较流行的代码基本都是 DSL 形式,降低学习门槛。
而面向业务用户,需要进一步隐藏细节,低代码仍然是一个重要的产品形态 。在 DSL 的基础上,构建业务用户容易理解和使用的低代码产品,也是非常自然的一步。接下来主要讨论下两者之间的关系。
我们日常使用的代码,大都是经过精心设计的通用语言或领域特定语言(如 SQL),可以类比成我们日常使用的汉语,具有非常高的灵活性和扩展性,可以表达任何内容。但缺点是有一定的门槛,就好比大家都认识字,但是写作文的沟通表达能力就可能天差地别。
而低代码的产品则是在代码的基础上做了一层封装,从技术角度来说就是只能调用一些相对固定的 API,通过不同参数,API 的组合来表达业务逻辑。类比到日常生活中,可能比较像手势,或者 emoji 这类符号,对自然语言也是做了一定的封装,好处在于门槛极低,大家都很容易使用和理解如 这样的 emoji。但扩展性和灵活性就会比较低了,我们很难把一堆 emoji 组成一篇复杂的文章。
值得注意的是,并不是说汉语掌握的很好的人就完全不需要 emoji 了, 能够流畅做代码开发的专业人员,也完全可以利用低代码工具来辅助提升其开发效率 ,主要是看应用场景是否是高度需要定制化的。例如我们在做数据模型开发时,如果每次微小的修改都需要人工 pull 代码,checkout 分支,做修改,commit,提 PR,跑测试,review 完成后合并发布,显然是很不友好的。所以可以看到像语雀文档这样的产品里,就隐含集成了一些版本控制的能力,以无代码的方式提升了文档的开发和运维效率。
从前面的用户分层来看,业务决策者和业务分析师在面对很多相对固定的场景时,完全可以使用低代码的方式来实现其相关需求,甚至不需要了解很多底层运作的细节,其易用性和用户体验会明显更优。即使是分析工程师和数据科学家,也可以利用低代码的工具来辅助提升效率。但在一些定制化程度很高的场景,例如业务场景中的 AI 模型开发,很可能需要做很多的特殊处理,这时候如果强行套用低代码工具,可能反而给自己的工作增加了束缚。这也是为何之前很多拖拽式建模开发工具没有得到大规模应用的原因之一。
最后, 代码和低代码工具应该做到紧密结合,这样才能让不同角色的用户能够紧密协作,且在产品体验上能够体现一致性与流畅度 。因为代码的表达能力更强,所以个人认为核心逻辑的存储应该以代码为准,这样也能同时享有前面提到的软件工程实践所带来的各种优越性和便利。通过低代码的方式开发的 ETL,流程编排,可视化,机器学习等逻辑,应该都能直接转化为代码来进行存储,这样就能同时享受到两种方式所带来的优势。这方面的一个优秀的例子是 Looker,业务用户可以用低代码的方式来创建可视化:
通过用户界面编辑可视化
而这些可视化的背后都自动生成了相应的代码,用户完全可以用管理代码项目的方式来管理整个项目,如创建分支,测试,提交 PR,合并发布等。
自动生成 LookML 代码
沿着数据产品的思考逻辑,最后我们再来看下如何提升分析产品的易用性和用户体验。这对于扩大产品的用户渗透率来说是非常关键的一点。近年来一个非常重要的趋势就是 通过 AI 的能力,来辅助用户使用数据分析产品,降低门槛并提升效率 。
其中一些典型的场景包括:
数据问答与推荐
以业务决策用户为例,要做到数据分析与最终的决策结合,比较自然的步骤是先了解发生了什么,再了解为什么会发生这个变化,最终再给出如何提升的建议。传统的做法一般是通过监控发现问题,然后再由业务分析师进行深入的交互式分析,通过查看海量的看板,执行不同的筛选条件,下钻上卷,最终形成一些结论与决策者讨论。
增强分析的一个核心目标就是为了提升这个流程的效率。当发现公司的销售额出现了预期外的波动时,可以自动进行关键因子的分析,找出引起变化的业务根源,例如是因为某个客群的销售额下降了,再进一步实现客群转化率,续约率,增购的自动建模分析,从几个方向上给出操作建议。这三个步骤可以直接形成一个图文并茂的“数据故事”推送给客户,快速形成感知,理解和决策。
数据分析增强
这背后具体的功能点包括:
通过这些能力,可以大大提升分析应用的实时性,分析深度,个性化场景化的诉求满足,降低产品使用门槛,更好的实现分析与决策建议的结合。用户可以把更多的精力放到提出更好的业务问题和设想上来,而减少在重复性分析工作上的投入开销。
增强分析另外一大方向是扩展数据分析的能力范围,实现 operational analytics 支撑业务决策。我们会在后面的决策智能部分再展开这部分。
这一节的内容比较多,我们围绕数据产品这个中心点,阐述了多个现代自助分析产品所需要具备的核心能力,包括:
国外已经有很多产品在这些方面走在了前面,例如这几年非常火的 Looker,Mode,GoodData 等 BI 产品,以及在增强分析领域的先驱 ThoughtSpot,Pyramid 等,有很多值得我们借鉴之处。
我们观远数据在这几个方面也有了不少的探索实践:
随着自助式数据产品形态的成熟,接下来一个比较明显的挑战是应用场景数量的爆炸,大量的用户和大量的数据内容两者自由组合,就会出现很多管控上的挑战。 一方面自助分析的确给我们带来了灵活,敏捷,可以快速满足业务需求,但如果缺乏系统性的管控又会很快陷入低效和混乱的泥潭之中 。
在很多企业级分析项目中我们都会看到,相关的参与者需要耗费 50-80% 的时间来处理各种数据问题,检查数据源,核对计算口径,处理各类数据质量问题。
项目上线运行后,也需要持续保证数据的可靠性,一旦出现没有及时更新,数据质量出错或者服务不可用等问题,都会影响到公司的日常运作。这也是我们之前提到的 数据产品需要有相应的 SLA 的要求,而且数据的不可用(不仅仅是服务不中断,而数据质量也要得到保证)相比软件系统来说会更加的难以发现和处理 。这里一个典型的指标是“data downtime”,等于 出问题的次数 * (发现数据问题的耗时 + 解决数据问题的耗时)
。
如果 data downtime 的指标居高不下,那么很容易进入数据混乱,缺乏信任,用户各自构建更多的缺乏保障的数据的恶性循环,最终大家会逐渐抛弃现有系统,回到之前通过 Excel 取数和分析的时代。这一节我们就来讨论下如何应对这个挑战,实现受管控的自助分析。
当前的很多自助分析产品,大都处于“野蛮生长”的状态。用户可以自由的接入数据,做处理,构建指标,创建可视化分析等,但对于什么是可信的数据源,如何确保指标的一致性和复用,如何持续确保看板数据的正确性,如何找到跟业务最相关的分析内容等问题缺乏考虑。很多企业在这方面的实践还处于建设“数据门户”的阶段,可以想象一下 如果没有搜索引擎,回到 internet 早年的“门户时代”,我们获取和利用信息的效率肯定是大打折扣的 。
在数据处理和计算方面,我们已经有了 SQL 标准,但在元数据领域缺乏统一标准,这也是数据管控需要解决的核心问题。很多时候 我们可以获取数据,也可以获取到 schema 信息,但这份数据是什么时候更新的,有多少用户在使用这份数据,是否通过了相关的数据质量检查,企业统一的指标认证等问题,我们都不得而知 。数据的上游和下游只管读取和写入数据,但却彼此不知道具体的生产和使用情况,想想就是一个很不可靠的状态。
为了解决这个问题,越来越多的 Modern Data Stack 中,都把数据管控,元数据管理作为一等公民来看待,出现了非常多的新兴产品专门针对这个问题,如 Data Observability 领域的 Monte Carlo,BigEye,Data Catalog 领域的 Atlan,DataHub 等。接下来我们对这个领域做一些简单的探索。
由于本身还没形成行业一致的标准,所以在元数据这块的功能分类也是非常模糊,有非常多的名词,如 catalog,governance,observability,discovery 或者干脆就叫 metadata 等。为了简单起见,这里我们就分为两类:
元数据功能分类
下面来看下具体的元数据类型,具体的分类方法有很多,我们这里参考的是 DevOps 中对软件系统 observability 的分解,分别是 metric,trace 和 log。我们的产品中应该 支持用户或者系统自动的生成,记录和更新这些版本化的信息,并提供统一的对外服务标准接口 ,且这些能力需要与整个 Data Stack 中的各类组件进行很好的结合,具备数据产品的可编程、可组合能力。
包含了各种数据的属性信息,很多也属于“数据质量”的范畴,如:
顾名思义,血缘关系主要指的是数据之间的依赖信息,包括数据表,字段,算法模型以及分析应用等。
数据与生产消费者间的交互关系,包括:
涉及业务的各类信息,如拥有者,所属组织,访问权限,业务定义与说明等。
关于元数据系统的设计可以参考我们之前云原生数据平台一文中的内容。有了这些元数据的系统性记录和相应的查询服务,我们可以用于各种应用。而且在元数据积累的量达到一定规模后,我们还有机会利用元数据做各类更加智能化的产品功能,如自动数据异常探测,修复建议,更智能的数据发现等。
对数据的访问权限,数据安全,合规,一致性与可信度等方面提供支持 。
有了合理的管控,我们能够形成更加清晰、一致的数据架构,减少不必要的复杂依赖。当上游数据发生变更时,也能及时通知下游,避免出现数据误用或其它的质量问题。当然最重要的是,通过数据管控来实现安全与合规方面的要求。尤其在合规方面,大数据架构设计之初并没有很好地考虑用户可能有删除个人数据的诉求,这方面对于数据湖仓及后续数据转换方面的工作都提出了很大的挑战。
在数据产品开发过程中,能 让用户更加完整,深入的了解数据相关信息,来判断应该使用什么数据集 。典型的信息包括:
在数据发现服务过程中,如何设计高效且智能的搜索系统,综合相关性,热门程度对结果进行排序展示等都是非常重要的话题。
最后,在数据被使用起来之后,我们需要持续关注数据的可观测性。相比于软件系统,数据内容非常容易出现“静默失败”的情况,虽然报表还能展示,模型也能正常输出预测,但其实里面所使用的数据可能已经有了很多问题。如果你也是一名数据从业者,肯定碰到过类似的情况:突然有一天用户说数据好像看起来不对,然后经过了几个小时甚至几天的排查,终于找到了问题所在,然后还发现有个处理逻辑已经持续错了几周甚至几个月了。
可观测性主要就是为了解决此类“data downtime”的问题 ,主要包括几个步骤:
解决数据问题
以算法自动决策类项目为例,构建相关的数据完整性,质量检查,数据分布漂移检查,对于项目的持续运维来说是至关重要的。如果发现了上游数据出现了巨大的数据分布变化,我们就应该及时停止下游预测输出流程的执行,并告警通知用户,避免产出错误的决策建议,影响业务正常运作。另外也需要持续进行决策效果的追踪和半自动化的误差分析,不断完善整个数据流程中重要部分的可观测性。
Observability 中关心的元数据
传统架构中,元数据经常分散在各个组件中,例如数据库,ETL 工具,BI 等。 有了统一管理的元数据中心,就可以提供给 Data Stack 中的各种组件进行综合性应用 :
把元数据的话题延展到自助分析与决策方面,除了数据集,对于分析资产的元数据管理也非常重要,市面上也有类似的产品支持:
观远在服务了多家月活分析师数量上千的企业后,也遇到了很多分析资产管控,数据可靠性,安全等方面的挑战,并开发了若干产品进行应对:
观远对于自身使命的定义是“ 让业务用起来,让决策更智能 ”。前半句对应的是前面提到的数据产品以业务为核心,提供自助化服务,不断提升用户体验。而后半句对应的就是通过产品来不断提升不同角色的分析能力,迈向决策智能。
在完成了基础架构,产品体验,自助式分析的有效管控几方面的基础夯实之后,企业的数据分析成熟度自然就会开始逐渐上升, 从现状分析,到原因诊断,再到未来预测,最终到达辅助决策智能的处方建议 。尤其是后面两点,需要深度结合 AI 能力来进行赋能,实现数据驱动的高质量决策。
分析成熟度
从另一个角度看,迈向决策智能也不仅仅是分析能力的提升,还有一个重要的考量是 要解决“最后一公里”问题,实现由数据驱动的业务流程 。这个方向上也有很多相关的产品能力设计,如实时数据分析,开放 API,嵌入式分析(js,iframe),以及近两年很火的“反向 ETL”。
决策智能维度
这几类决策智能的典型场景包括:
Gartner 对决策智能的分类
从上面的场景举例可以看到,很多决策的最终形成都是在“业务系统”中的,那么是否意味着在业务系统中去构建数据分析能力也就足够了呢?这也是我们经常看到很多客户会直接使用例如 ERP,CRM 系统或者“生意参谋”这类产品中的数据分析模块,而没有另外构建所谓的“数据产品”。这种做法在企业发展的某些阶段或许是适用的,但从长期来说,单一系统内能够获取到的信息是相对有限的,在进行电商营销类决策时,我们也需要引入生产,物流,仓储,供应商管理,财务,人力资源等等方面的信息辅助,否则就 容易在数据孤岛状态下做出一些“局部最优”的决策 。利用数据平台加上决策应用产品的设计思路,能够减少很多重复建设的工作,并且保证决策信息输入的完整和一致性。
为了实现决策智能,现代数据产品也需要配备相应的关键功能点:
在决策智能方向,观远从成立之初就一直倡导 BI + AI 结合的产品形态,提供了丰富的产品功能支持,也在很多 500 强头部企业实现了项目落地。例如:
前面我们从产品技术趋势和企业分析成熟度两条线穿插介绍了关于 Modern Data Stack 中的自助分析与决策产品的一些思考,如果把演进时间线加上,大概是如下的形态:
未来的自助分析与决策产品
不同的企业在不同的阶段可以根据这个思路来设计自己的产品技术栈和相应的数据产品用户群体和应用范围。《The Self-Service Data Roadmap》一书中还给出了很具有实操性的计分卡和相关提升手段,来帮助评估企业当前的数据自助服务能力水平,并设计相应的 roadmap。
企业数据平台记分卡样例
从实现数据赋能决策的最终目标出发来看,好的产品技术肯定是其中的重要一环。如果你对于如何做代表未来的企业级 BI 产品选型有兴趣,欢迎领取下载由我们观远出品的企业级 BI 平台白皮书。据说企业级移动 BI 白皮书也已经在路上了,值得期待一下。