现在的数字化经济时代,企业经营方式在改变,当业务环境变化较大时,对指标平台的构建和指标数据的实时性要求比较高,今天将从企业使用指标平台的痛点出发,分享基于StarRocks构建实时指标平台的建设路径,以及典型银行的实践案例。
01、企业经营方式的变化
当前互联网人口红利见顶,竞争加剧,成本不断上涨,企业发展脚步也开始放缓。如何有效地制定企业的发展方针,确保企业继续增长,是一个巨大挑战。如果企业效率更高,应对市场变化的动作更快,就更容易脱颖而出。这种高效决策的前提条件是需要有强大的数据支撑。依靠数据做决策才可以帮助企业突破发展停滞的局面,形成企业的核心竞争力。因此,数字化对于企业来说是战略级的能力。
过去的人口资本红利,带来的是一种愿望式、粗放式的决策方式。很多传统企业的决策方式更多依赖于个人自身的经验。比如“我认为市场会怎么样?”“我认为受众会喜欢什么样的产品?”基于自身的主观经验对行业的理解做出的决策,大部分更像是一种赌博行为。因为人的思考或者人的决策不一定是准确的,一旦对市场的判断失误,很有可能把整个企业拖入泥潭。以前的企业运营和经营是分开的。执行运营动作后,得到的数据再向上反馈存在很长的时间延迟,而且所有数据来源对上层人员来说是不透明的,不清楚数据的来源。在当前数字化时代,运营为企业经营决策提供数据支持,以数据作为企业决策的理论依据,可以实现决策的标准化,确保决策有迹可循。真正摆脱了“没有决策,数字化是空洞的;脱离了数字化,决策是盲目的”。数字化辅助决策是大势所趋。指标平台通过数据驱动的方式支持企业在各个业务环节中的优化和创新,可以帮助企业快速构建整个数据驱动运营和决策的能力,提升决策的科学性和效率,从而提升企业应对市场变化的响应速度。这是企业实现数字化运营的关键工具和基础设施。
指标平台的代际演进可以分为三个阶段:
首先是以传统的关系型数据库为主,通过生成固定报表进行业务的静态分析。随着业务的扩展和数据量的增长,企业对指标的灵活性和数据规模提出了更高要求。传统的关系型数据库难以满足业务需求,企业开始进入OLAP分析阶段。随着业务需求的变化,企业需要进行多维分析或预计算,这时会引入一些数据化产品。然而,随着引入产品的增加,整个分析层架构会变得越来越复杂,数据存储在多个产品中,很容易导致数据口径不一致的问题,甚至形成数据孤岛。上述问题引出了统一数据源的需求,以实现整个数据口径的一致性,因此数据湖的概念应运而生。因此,第三个阶段是智能化+数据湖仓阶段,将智能数据湖仓作为指标平台的数据基础。大多数指标平台实际上处于第二个阶段。在这个阶段,存在哪些痛点呢?
第一个问题是指标追溯困难。许多指标的计算,尤其是多层次或派生指标的计算,计算链路过长且复杂。一旦出现问题,很难确定出现问题的具体环节,导致溯源成本极高。
第二个问题是指标口径不一致。不同部门或团队之间数据孤立,当数据存储在多个产品中时,无法确定使用的是哪个产品的数据,最终导致数据口径不一致。
第三个问题是用户体验差。如果底层数据基础设施性能不佳,将直接影响上层指标计算和分析的速度,使使用体验变慢。第四个问题是高运维成本。一个指标平台可能需要维护多个数据产品,同时运维成本较高,且整个指标的开发周期长,建设成本也高。第五个问题是分析效率低下以及数据治理问题。了解了指标平台的典型痛点,就能明白优秀的指标平台应具备哪些能力。我们认为好的指标平台应该具备以下8个核心能力:
02、以底层数据能力为核心的指标平台建设方案
优秀的指标平台离不开底层数据库建设,镜舟科技基于开源产品StarRocks的核心能力构建指标平台解决方案,为上层数据消费、应用打好数据基础。
首先,向量化、CBO优化器、Pipeline、Runtime Filter等核心能力为用户带来了极致的查询体验。通过这些技术,用户可以享受到自动化运行,无需承担过多学习成本,直接开箱即用,将整个数据库性能发挥到90%以上,而用户几乎感受不到这些背后的技术细节。
其次,StarRocks具有丰富的监控指标,结合Grafana + Prometheus能够快速构建可视化监控平台。在此基础上,StarRocks企业版产品“镜舟分析型数据库”提供了可视化的运维管理平台,使用者进行监控管理和运维变得更加便捷。即使是新手员工,在经过短短一个小时的熟悉后,就能够操作数据库产品,进行界面化集群部署、节点的上下线、集群扩缩容、慢查询分析等操作。
此外,Spill-Down技术可以提升大规模数据量复杂查询的稳定性,突破内存空间的限制。通过Spill-Down,系统能够更有效地处理大量数据和复杂查询,确保查询的稳定性和性能。另外,Multi-Warehouse功能可以实现多租户的资源管理。在不同业务方使用指标平台时,可能存在作业量大、并发度高的情况,这可能导致资源抢占现象,对底层数据库的资源隔离提出更高要求。如果资源隔离效果不佳,可能会影响整个查询的稳定性。有些作业可能并不重要,却占用了大量资源,而一些高优先级的作业(比如领导驾驶舱等)却无法获得足够的资源。
Multi-Warehouse功能能够完美解决这类问题,有效管理多个租户之间的资源分配,提高系统的资源利用效率。最后,存算分离和湖仓分析等技术能够解决存储和分析之间的问题,降低运维成本。通过存算分离,系统可以更好地管理存储和计算资源,提高系统的灵活性和性能。湖仓分析则可以有效整合和分析数据湖中的数据,为企业提供更深入的数据洞察和决策支持,同时降低运维成本。
基于StarRocks构建指标平台的建设方案分为4个环节:
1. 需求分析阶段和指标定义阶段:
- 调研现有业务情况,明确指标平台的目标和范围。
2. 数据建模和数据准备:
- 在StarRocks中利用不同的数据类型构建相应的数据表。通过物化视图收集、清洗数据,建立数据仓库,为后续数据分析应用提供更好的数据支持。
3. 权限管理和数据分析:
- 对敏感数据进行权限管理,确保数据安全。进行数据分析和可视化,为用户提供直观的数据展示和分析结果。
4. 业务场景实时监控和持续优化:
- 实时监控业务场景,及时发现问题并进行处理。对指标平台进行持续优化,根据用户反馈不断迭代更新,完善平台功能。
这个建设方案将有助于构建一个基于StarRocks的高效指标平台,为企业提供强大的数据分析和决策支持。
在这个指标平台方案中,将StarRocks作为底层的存储和计算引擎,构建了数据处理层,包括数据准备、数据模型建立,利用指标平台的计算引擎进行指标开发工作,并最终进行指标管理,为上层业务应用层提供数据支持。该指标平台方案的优势包括:1.实时业务感知和快速反应:能够及时让业务感知用户行为,并快速做出反应。2.数据准确性和运维效率:数据准确度更高,架构简洁,便于快速运维,降低整个数据使用成本。3.数据治理和一体化能力:方便进行数据治理,具有湖仓一体化能力,以StarRocks作为底层存储和计算引擎,确保数据源统一,数据架构统一,为数据治理提供良好的数据环境。4.兼容性和低成本:StarRocks兼容MySQL语义,降低了使用门槛和业务迁移成本,快速实现数据底座搭建和指标平台建设。
03、某股份制商业银行指标平台案例分享
镜舟科技作为StarRocks的核心商业化团队,基于StarRocks打造企业级产品镜舟湖仓分析引擎,并在企业业务中落地实践,取得成效。某股份制商业银行自建的指标平台为业务部门提供了指标管理和指标应用的能力,用户可以在平台上进行指标的录入、发布、派生、分享、可视化应用以及深度分析等操作。
通过指标平台的建设,该银行收获如下:降低数据开发和使用成本:
在指标平台出现之前,指标的管理、研发和应用是分离的,这个平台改变了数据研发人员的开发模式以及业务用户使用数据的模式,大大降低了数据开发和使用的成本。提升数据应用效率:平台让管理、研发和应用整合在一起,让原本分离的管研用转向了管研用一体,提高了数据的应用效率。
有架构在应对业务增长和指标复杂度上存在瓶颈,需要进行底层架构的升级以提升性能、降低成本以及提高运维效率:1. Cube构建速度慢,性能消耗大,导致一些指标计算需要花费长达1小时的时间。2. 大量指标无法命中,导致下压到Presto的并发压力大,而Presto的并发性能和大规模数据查询性能较差。3. 查询数据时需要进行关联操作,但Kylin的多维join支持不佳,性能不足,且需要额外的开发成本。4. 运维成本高,维护多种组件的难度较大。
镜舟科技针对该银行的需求痛点,设计了指标平台的升级建设方案:
在指标平台的应用场景中,可以针对指标进行分层。在物理层,数据工程师可以基于业务和数据建模的理解,对事实表、维度表以及对象构建整个物理层的ER关系,定义表之间的关系,为上层业务提供数据的基础模型支持。在逻辑层面,指标平台可以基于数据工程师定义的模型,将整个对象拉成一张宽表。例如,将客户对象生成一张全行超宽表,简化业务分析工作,对对象的维度目录和指标目录进行了简化。业务人员无需理解底层复杂的ER关系,只需通过拖拽操作进行维度和指标的关联。这样,在逻辑层面上,指标平台为用户提供了极大的便利性,他们无需关注底层技术原理,只需关心业务逻辑。在应用层面,根据用户定义的场景和查询行为,构建指标物化的DWS层,以加速用户查询性能。未来可以根据用户的查询行为优化整个DWS的物化逻辑。DataAPI可以提供毫秒级查询,报表可以提供秒级查询,自助分析可以提供几十秒级的查询。这样的设计使得用户可以根据不同需求选择不同的查询方式,从而提高查询效率和用户体验。
在旧架构的升级过程中,该银行通过镜舟湖仓分析引擎替换了之前Kylin和Presto构建底层架构,新的架构变得更加简洁、高效率。
在设计过程中,该银行希望实现指标一处定义多处使用的目标。数据指标的一次定义包括指标口径和指标应用,用户可以基于指标场景或应用场景来使用指标平台,通过物化调度实现指标平台应用服务的 SLA 指标需求。整个设计分为三个场景:
- 第一个场景是业务方希望通过自助分析的结果制作更多高层关注的看板和卡片。通过自助分析的查询进行物化,将物化结果放入镜舟湖仓分析引擎的native表中。
- 第二个场景是当内部数据量增大时,聚合查询无法满足需求。此时可以通过镜舟湖仓分析引擎的物化视图进行进一步加速。
- 第三个场景针对高并发情况,可以将物化视图和内表查询结果缓存到更高并发的存储和缓存中,以应对高并发请求。
通过镜舟湖仓分析引擎的物化逻辑进行高效查询,智能调度提升整个大数据平台SQL查询性能,降低资源使用成本。该银行的收益可以分为以下几点:
- 提供更多场景的指标支持,例如,AB测试平台中需要的指标可以实时生成,提高实验效果。实现流批一体化,降低研发成本和资源使用成本。为其他业务提供赋能,例如,通过Bitmap能力实现秒级UA和PV计算,在用户行为分析中实现客群圈选并进一步关联数据,为精准投放带来更大价值,提升决策灵活性。
在上述的方案中,主要是用了哪几个核心的功能?
第一个是物化视图的能力:1. 定义原子指标并通过full join拼接,形成宽表。2. 可通过物化视图对常用的A B指标进行裁剪,自定义刷新策略。3. 在合并原子指标时,镜舟产品的性能相对于Kylin有较大提升。
第二个是湖仓分析的能力:1. 可快速实现跨引擎数据联邦分析,避免大量开发成本。2. 统一技术架构和数据源,统一业务方数据使用方式和数据口径。3. 降低运维成本、开发成本,避免迁移成本。