预计算 or 数据虚拟化,你 pick 谁?
在 Kyligence 之前的博客中,我们讨论了预计算技术的历史及其如何用来加快分析。文章发布之后,很多读者提问关于预计算与数据虚拟化技术有何不同,本文将对这两种技术之间的相似性和差异性进行剖析。
结论速览
这两种技术都在努力应对类似的挑战:在现代大数据环境中,让更广泛的受众轻松访问分析。
预计算侧重于生产环境中的性能、响应时间和并发性。
数据虚拟化技术则侧重于通过减少或消除 ETL(抽取、转换和加载)过程,从而方便用户进行分析。
预计算往往对源系统的压力较小,一般来说有三个因素会影响企业是否采用预计算技术:数据质量、数据治理以及独立于数据源之外的安全机制。如果您想了解更多预计算技术的内容,请查看往期博客《为什么预计算技术代表大数据行业的未来》,了解云上时代 AI 增强型预计算技术。
数据虚拟化技术侧重于快速部署和减少 IT 相关流程,包括数据加载到数据仓库的流程和构建数据流程。运用该技术,用户可以轻松连接各种数据源,包括文件、RDBMS(关系数据库管理系统)或 NoSQL( 非关系数据库),并且在前端 BI(商业智能)层构建虚拟视图,过程中无需再设计数据仓库和安排 ETL 作业,所有查询在用户点击 BI 工具时(触发 BI 发送 SQL 查询)都会按需进行。
典型的数据虚拟化产品大体上有以下组件:
用来读取各种信息源数据的连接器
解析和处理 BI 应用程序查询的查询引擎
缓存层
元数据层和数据沿袭(可选的)
其他管理组件
来源:denodo.com
性能和并发 VS 敏捷和即时
通过预计算,查询结果将预先计算并存储在聚合索引中。在查询时,大多数查询结果都是已有的,这使得复杂聚合查询在 PB 级数据上实现超低的查询响应时间成为可能。需要的查询结果只要被事先计算过,查询响应时间将得到保证,我们不必担心数据工程师不小心弄乱了分区,从而破坏用户的使用体验。
而数据虚拟化则在敏捷性、即时性和性能之间进行了权衡。这意味着查询的响应时间将由最慢的数据源决定。RDBMS 中缺失的索引、文件中低效的布局或繁忙的源系统都可能为查询添加延迟。不幸的是,大多数时候我们无法控制这些配置错误。为了提高查询性能,数据虚拟化产品依赖于缓存层,其物化视图能否在本地储存或在第三方缓存就显得十分重要。
数据质量和数据工程
数据虚拟化技术里,只有基本的检查和格式化是在查询时间进行的。虽然 ETL 的流程被消除,但也会因此错过数据清理和一致性检查。预计算则可以提前完成数据清理、转换和格式化,这使得用户对数据的准确性和查询结果更有信心。
如今,有不少架构师喜欢数据湖的灵活性;也有架构师弃用数据湖,而倾向于建立数据仓库,以保证其 Schema 的一致性;还有架构师对整合数据湖和数据仓库的“湖仓一体”方案感兴趣。预计算适用于上述各种后端架构,支持从数据湖读取文件或数据仓库读取表格。此外,预计算层不会复制原始数据,而是计算聚合结果。数据架构师可以自由选择数据湖和/或数据仓库架构,并用预计算层处理查询加速和统一语义层(下文将详细分析)。
BI 语义、安全性和治理
统一的语义层可以用在多维模型中展示数据,支持模型内置复杂的业务逻辑。用户一般使用的 BI 工具有 Tableau、MicroStrategy、PowerBI 和 Excel 等,然而所有这些 BI 工具都有自己的语义模型。
有了统一的语义层,用户可以定义常见模型,并在各类 BI 工具(包括 Excel)中使用这些模型,不必在每个工具中创建单独的模型,也不用担心不同 BI 工具语义的不一致。此外,用户可以专注于查询,并及时获得结果,而不是一直去构建和诊断 SQL 查询。
在预计算层中,我们可以统一定义访问控制模型,包含行、列和单元格等级别。我们不必考虑将虚拟视图中的安全模型映射到每个源系统中,而是专注于谁可以访问模型中的什么内容。此外,独立于数据源之外的安全机制和数据治理政策提供了更大的灵活性和规模。
总体拥有成本比较
我们通过预计算减轻了源系统的压力,因为数据源的扫描、读取和写入只发生一次。在云中大规模生产环境中,预计算模式"计算一次,查询多次"的特性使其极具成本效益。通过预先计算聚合查询结果,源系统的工作较少,从而可以实现用户和应用端的高并发。通常情况下,预计算可以为上千个并发用户提供服务,而不会牺牲性能。
由于大多数问题可以通过简单的查找来回答而无需昂贵的内存处理,因此扩展预计算解决方案以支持大量并发用户要容易得多。目前,Kyligence 最大的客户已经实现给全球近 100000 名员工提供 KPI 仪表板服务。
数据虚拟化技术中 BI 层的每个查询都会向源启动查询,这在高峰时段可能相当昂贵。如果有多个分析师同时运行这些查询,这种情况可能会进一步加剧。每个仪表板的单击或刷新都会在云上触发一个或多个查询,云供应商按字节或按 CPU 的收费单也随之而来。相比而言,预计算技术里,初始计算成本相对更高,但查询时简单查找节约的费用可以轻松抵消前期计算成本,从而显著降低云上的总体拥有成本。
总结
数据虚拟化和预计算技术虽然方法不同,但都是为了解决类似的问题。他们各有所长,有其各自擅长的领域,应该用来为企业不同的需求而服务。对于预计算技术,笔者总结了其优势供大家参考:
始终如一的低查询延迟
不必在数据仓库和数据湖之间进行选择
统一语义层大大简化了您的分析过程
生产环境中对源系统更小的压力
与源系统脱钩的统一定义的数据治理和安全政策
预计算一次即可支持多次查询 ,大大降低了总体拥有成本
支持数百个并发用户到数千个并发用户
对“两种技术,哪一个适合我?”问题的答案可能不是简单直接的,最好的方法是仔细研究您的数据资产、业务要求和增长计划,之后按照实际情况选择,答案可能也不是简单的选择其一,而是两者的完美结合。
作者简介
康力,Kyligence 北美副总裁
评论