原创 Ace人生 2025-01-18 10:55 浙江
BI趋势。
0. 题记
年末看了一些数据工程和BI相关的综述文章,为来年的工作提供一些参考。其中有一篇文章总结了商业智能(BI)的演变历程:它如何从传统的单体架构逐步走向现代的可组合架构。如果你对数据分析、数据工程感兴趣,这篇文章将带你深入了解BI的发展历史、技术趋势以及未来的可能性。
1. 传统BI架构:单体时代的辉煌与局限
让我们先从传统BI架构说起。在过去的几十年里,BI工具的核心目标是通过数据帮助企业做出更明智的决策。传统的BI工具(如Business Objects、Cognos等)是典型的单体架构,它们将数据摄取、处理、存储和可视化等功能紧密耦合在一起。
传统BI的三层架构
后端层:负责从OLAP(在线分析处理)数据源中提取数据,并构建优化的数据立方体。这些立方体包含预先计算的维度,支持实时数据探索。
前端层:提供用户界面,允许用户通过点击操作对数据进行切片、切块和分组,生成各种可视化图表。
语义层:定义关键绩效指标(KPI)和业务逻辑,确保数据的一致性和准确性。
传统BI的局限性
尽管传统BI工具功能强大,但它们也存在明显的缺点:
高昂的成本:本地部署需要大量基础设施,许可费用也令人望而却步。
实施周期长:即使是简单的概念验证,也可能需要数周甚至数月的时间。
缺乏灵活性:紧密耦合的架构使得系统难以扩展和适应快速变化的业务需求。
这些局限性促使行业开始寻找更灵活、更经济的解决方案,从而催生了新一代的BI工具。
2. 无底BI的崛起:轻量级与解耦的革新
随着云计算和开源技术的普及,无底BI(Bottomless BI)工具应运而生。这类工具(如Apache Superset、Metabase等)摒弃了传统BI中笨重的后端服务器,转而依赖数据源的计算能力。
无底BI的核心特点
轻量级架构:无需维护复杂的后端服务器,直接连接到数据源(如数据仓库)进行实时查询。
开源与低成本:许多无底BI工具是开源的,降低了企业的使用门槛。
灵活的部署:支持云原生部署,能够快速适应企业的需求。
挑战与优化
无底BI工具面临的主要挑战是查询延迟。为了应对这一问题,开发者采用了多种优化策略:
预计算聚合:在数据仓库中预先计算常用指标,减少实时查询的负载。
缓存机制:使用Redis等缓存工具存储频繁访问的数据,提升响应速度。
实时OLAP引擎:集成Druid、ClickHouse等高性能引擎,支持低延迟分析。
无底BI的出现标志着BI架构从单体向解耦的转变,为后续的技术创新奠定了基础。
3. 无头BI与通用语义层:灵活性与一致性的平衡
在无底BI的基础上,无头BI(Headless BI)进一步推动了BI架构的演进。无头BI的核心思想是将语义层与可视化层解耦,使企业能够自由选择前端工具。
无头BI的优势
一致的指标定义:通过集中管理语义层,确保不同工具中的KPI和业务逻辑一致。
多前端支持:企业可以同时使用Tableau、Power BI等多种可视化工具。
更好的集成性:与现代数据堆栈(如Snowflake、dbt)无缝集成。
代表性工具
Cube:提供强大的语义层和查询引擎,支持多种前端工具。
MetricFlow:由dbt Labs开发,专注于指标定义和数据模型管理。
无头BI的出现解决了传统BI工具在灵活性和一致性上的矛盾,为企业提供了更大的自由度。
4. BI-as-Code:开发者友好的数据分析
近年来,BI-as-Code的概念逐渐兴起,将软件工程的最佳实践引入BI领域。这种方法强调通过代码(而非图形界面)来定义和管理数据分析流程。
BI-as-Code的核心特点
版本控制:使用Git等工具管理仪表板和数据分析脚本的版本。
持续集成:通过CI/CD管道自动化测试和部署流程。
开发者友好:支持Python、SQL等编程语言,降低开发门槛。
代表性工具
Streamlit:基于Python的轻量级工具,适合快速构建数据应用。
Evidence:专注于SQL和Markdown,支持声明式仪表板开发。
Rill:集成DuckDB,提供自动分析和交互式建模功能。
BI-as-Code的局限性
尽管BI-as-Code在灵活性和开发效率上具有优势,但它也存在一些不足:
交互性有限:无法提供传统BI工具中的数据切片和切块功能。
企业级功能缺失:缺乏数据治理和语义层支持。
尽管如此,BI-as-Code在数据科学团队和产品团队中的应用越来越广泛,尤其是在构建嵌入式分析功能时表现出色。
5. 嵌入式分析与可组合BI:未来的方向
最新的趋势是将高性能嵌入式查询引擎(如Apache DataFusion、DuckDB)与轻量级BI工具结合,形成可组合BI架构。这种方法不仅继承了无底BI和无头BI的优势,还进一步提升了性能和灵活性。
可组合BI的核心优势
高性能查询:通过Apache Arrow等内存列式格式实现微秒级数据访问。
零拷贝集成:直接在内存中处理数据,无需序列化和转换。
数据湖支持:能够直接查询Apache Iceberg、Apache Hudi等开放表格式。
行业应用
Omni:将DuckDB作为核心分析引擎。
Cube.dev:结合Apache Arrow和DataFusion,提供高性能语义层。
Superset和Metabase:支持嵌入式DuckDB连接,提升查询性能。
嵌入式分析的出现标志着BI架构的又一次飞跃,为企业提供了更高效、更灵活的数据分析解决方案。
6. 总结:BI的未来在哪里?
从传统的单体架构到现代的可组合架构,BI领域经历了翻天覆地的变化。每一次技术革新都带来了新的可能性:
无底BI降低了基础设施的复杂性。
无头BI实现了跨工具的一致性和灵活性。
BI-as-Code将开发者工作流引入数据分析。
嵌入式分析结合了高性能查询和轻量级架构的优势。
根据在企业中的常年实践,下面是我的观察:
现在主流还处在无底BI的阶段,实现了BI展示层和计算层的解耦,还没有完全实现独立的语义层。
BI-as-Code可能是下一个实践的方向,特别是随着生成式AI的兴起,根据用户需求来即时生成看板肯定是一个趋势,也是我下一个阶段要重点实践探索的。
嵌入式分析可能会改变BI系统的底层架构,但是前端用户的感知并不强。
随着技术的不断成熟,BI工具将变得更加智能和易用。无论是数据工程师、分析师还是业务用户,都能从中受益。如果你对BI的未来发展感兴趣,欢迎关注【无人之路】,我会持续分享更多关于数据工程和AI技术的前沿动态。
参考
链接
https://practicaldataengineering.substack.com/p/the-evolution-of-business-intelligence-stack
相关
【数据工程】解密Sparkle:Uber如何统一规范其模块化ETL工作流