为了账号安全,请及时绑定邮箱和手机立即绑定

从传统BI到现代轻量级架构:商业智能的演变之路

原文发表在我的简报上。

随着我们步入2025年,数据工程领域继续经历着戏剧性的变化。在这系列文章中,我们将要探讨重塑数据工程领域的变革性趋势,从新兴架构模式到新工具方法。

这是系列的第一篇,主要讨论商业智能架构的发展历程。

简介:

近年来,商业智能(BI) 领域经历了显著的变化,尤其是在数据展示和处理方面。

这种转变反映了从单一的架构向更灵活模块化的解决方案转变,这些解决方案更好地满足了现代数据分析的需求。

这篇文章追溯了BI架构历经几个关键阶段的发展:从传统的单体BI系统,到无头和无尾的BI的出现,再到包括最新的BI-as-Code和嵌入式分析技术的发展。

传统的BI单体架构

传统的 BI 工具是作为功能全面且紧密结合的系统构建的,特别重视用户体验界面的设计。

这些系统通过点击操作提供了极大的灵活性,可以利用各种可视化手段对数据进行切片、切分和分组。核心上,这些系统由三个相互关联的组件构成,共同工作以提供商业洞察。

Traditional BI Stack

后端层作为基础,负责处理从OLAP来源导入的数据,并在服务器上构建优化过的数据立方体。这些立方体包含预计算的维度,从而支持实时的数据分析和探索。

与后端合作,前端提供了可视化接口,连接到后端以访问数据立方,并据此构建仪表板。

语义层完成了架构,通过定义嵌入在BI软件中的关键绩效指标(KPIs)等。

传统的BI工具的缺点

虽然这些传统系统非常强大,但也带来了一些不小的负担。

在企业能够更容易地使用云端BI服务之前,它们需要大量的本地基础设施,并且许可费用非常高昂,这使它们在转型过程中面临许多挑战。

实施时间被拖得很长,即使是概念验证,也需要几周时间来设置和配置。对于需要服务大量用户的企业而言,资源需求特别高。

这些根本上的限制,结合对灵活性和成本效益的需求,催生了BI领域一系列架构创新。

无尽BI工具的兴起

为了应对这些挑战,新一代轻量级且解耦的BI工具应运而生。大约十年前开始,一些著名的开源解决方案,如Apache SupersetMetabaseRedash开始出现,其中,由Airbnb最初开发的Superset尤其受到重视,使其在技术生态中尤为突出。

这些新的工具采用了“无限制的”架构,消除了传统上用于计算和构建立方体数据及缓存立方体的后端服务器。

他们不再拥有自己的计算层,而是依赖连接的源引擎(例如,查询引擎)在运行时查询数据并提供给仪表板。这种架构转变带来了不同的数据服务方法,这引入了不同的数据服务方法。

应对查询延迟问题

后端报告服务器的移除给自助式BI工具带来了不小的难题:如何在实时获取数据时应对查询响应时间慢的问题。

为了应对这一挑战,这些工具采用了几种优化策略来应对。其中一个关键方法是利用预先计算好的汇总数据,这些数据存储在主数据仓库里,从而使仪表板可以高效地展示结果。

此外,像 Superset 这样的工具使用 Redis 实现缓存层来存储频繁访问的数据集。这种缓存机制特别有效,具体表现在:一旦初始查询加载了数据集,后续的可视化和仪表板重新加载可以访问缓存版本,直到底层数据发生变化,从而显著减少了用户等待时间。

对于那些处理更大数据量的公司而言,与诸如 DruidClickHouse 这样的专业实时 OLAP 引擎进行集成,可以提供低延迟的分析功能。

通用语义层的兴起

随着行业对BI栈灵活性的需求增加,便携式语义层,也就是所谓的无头BI,作为传统单一系统和完全轻量的解决方案之间的中间环节出现了。

无头BI平台提供专用的语义层,并且一些则结合了查询引擎,同时允许组织使用他们所选的任何前端可视化工具。这种方法完全将展示层(前端)与语义层分离。

借助像 CubeMetricFlow(现在是 dbt Labs 的一部分)这样的工具,组织可以在中央位置定义指标和数据模型,然后将各种可视化工具、自定义应用程序或轻量级的 BI 工具连接到这个语义层上。比如,这样可以将不同的工具连接到一个统一的数据视图上。

这种架构模式相比传统的BI系统提供了多种优势。它使组织能够在不同的可视化工具之间保持一致的指标定义,支持同时运行多个前端应用,并且与现代数据栈有更好的集成能力。

语义层面充当数据源和可视化层之间的通用桥梁,这样能确保在所有分析应用程序中的业务逻辑保持一致。

BI即代码运动

近年来,我们看到了BI-as-Code的出现,这是一种开发仪表板和交互式数据应用程序的新方法,即BI-as-Code(代码中的商业智能)。

这种变化将版本控制、测试和持续集成等带入BI开发,使这些实践变得可行。

因为代码主要用于抽象而非用户界面,开发人员可以在部署到生产环境之前制定完善的开发流程。

在这一领域中,比如Streamlit等常用工具可以与Python生态系统完美结合,让开发者可以继续在他们的Python项目中工作,而无需额外安装软件来制作仪表板和数据应用。

这种方法强调简单快捷,使用SQL和声明式工具,比如YAML,来创建仪表板。生成的网页应用可以轻松地自行托管,提供灵活的部署选项。

尽管Streamlit在流行度上领先,然而最近几年也出现了一些新的开源项目成员如EvidenceRillVizro,和Quary,每个都以自己的方式诠释了BI-as-Code的理念。

BI-as-Code (BI 的代码化方式) 的限制

目前,BI即代码工具在数据交互探索和提供企业级BI功能方面还存在一些限制。

它们在数据切片和切块上的用户体验不如传统BI工具一样好,并且在数据治理和语义层方面的支持也缺乏,不像传统和轻量级的BI工具那样。

然而,BI-as-Code 正以各种方式越来越受欢迎,比如数据科学团队创建交互式应用,产品团队构建嵌入分析功能,分析师开发数据应用。

新兴潮流:商业智能 + 嵌入式数据分析

BI架构的最新演变包括集成像Apache DataFusionDuckDB这样的高性能且可嵌入的OLAP查询引擎。

这种方法不仅弥补了当前环境中的多个缺口,还保持了轻量级和解耦的架构优势。

新的全栈组合式 BI 架构带来了几个关键的优势点。

  • 首先,它提供了真正的组合性和互操作性,可以按需交换嵌入的计算引擎,同时保持独立的语义层来定义指标。
  • 嵌入式分析功能尤其强大,主要通过标准框架Apache Arrow实现零拷贝整合,从而实现微秒级的数据访问。

Z零拷贝集成是指一种性能优化技术,它允许数据在不同的内存表示之间无需序列化和转换的情况下直接访问和处理。在DataFusion和Apache Arrow的环境中,这意味着当数据以Arrow的列格式加载到内存中时,DataFusion可以直接执行这些数据的计算,而无需转换或复制为DataFusion的内部格式。

  • 数据湖湖仓 的直接支持代表了另一个重要的进展,允许团队可以直接在开放表格式(如 Apache IcebergApache Hudi)之上构建仪表板,无需中间的数据移动。
  • 这一功能结合了全面的 联邦查询支持 ,解决了现有轻量级 BI 工具长期以来的一个难题,即难以有效结合来自多个来源的数据,无需借助外部联邦查询引擎。
行业采用情况

各行各业对嵌入式查询引擎的采用趋势在商业智能领域正获得显著的推动力。商业供应商们正引领这一变革:Omni 已将 DuckDB 作为其核心分析引擎,而 Cube.dev 则在其无头 BI 架构中实现了 Apache Arrow 和 DataFusion 的复杂搭配。

同样,GoodData 也顺应了这一潮流,通过在 FlexQuery 系统的缓存层中采用 Apache Arrow,Preset(托管的 Superset)已经和 MotherDuck(托管的 DuckDB)集成

在开源社区中,Superset(使用了duckdb-engine插件)和Metabase现在已经支持嵌入式的DuckDB连接,未来可能会将其集成进它们的核心引擎。

BI 作为代码的运动也采纳了嵌入式引擎。Rilldata 在 2023 年宣布集成 DuckDB,用于自动数据剖析和互动建模在开发仪表板的过程中,而 Evidence 在 2024 年发布了 Universal SQL,得益于 DuckDB 的 WebAssembly 实现支持。

结论部分。

业务智能领域正继续不断朝着更灵活、更高效的解决方案的方向迈进。

每次架构演进都带来了独特的优点:无头BI实现了工具间指标的一致性,底层BI简化了基础设施的复杂性,BI-as-Code将开发者的流程引入数据分析,而嵌入式引擎现在将这些优点与高性能查询能力结合起来。

嵌入式查询引擎与轻巧的BI工具的结合代表了轻巧BI发展的有前景的方向,结合了传统BI的优势和现代架构的特点。随着这些技术的成熟和生态系统的发展壮大,公司可以期待更复杂但可组合的轻巧数据分析工具。

订阅我的数据工程简报,获取我最新故事和数据工程见解的独家抢先阅读机会。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消