译者 | 晶颜
审校 | 重楼
据Gartner数据显示,不良数据每年给企业造成1290万美元的损失。因此,数据领导者几十年来一直在为他们的商业智能(BI)和分析寻找单一的事实来源,以确保每个人都基于相同的数据和定义做出业务决策。
为了使数据保持一致性,BI提供商引入了语义层的概念,即在用行、列和字段名描述的原始数据之间的抽象层,只有数据专家才能理解,并为业务用户提供见解。语义层隐藏了数据的复杂性,并将其映射到业务定义、逻辑和关系。它允许业务用户使用收入和利润等标准术语进行自助分析。
语义层激增
如今,BI工具及其相关的语义层激增,证实了语义层是一个备受欢迎的发展趋势。上世纪90年代,BusinessObjects在SAP BusinessObjects中构建了第一个轻量级语义层。问题在于,早期的BI套件(如businessojects)是单一的,且用户界面不是特别友好。失望的用户转而采用了Tableau、Power BI和Looker,因为它们的易用性得到了提高。今天的问题是,这些工具已经在组织中不断发展和演变,粉碎了所有关于单一真相来源的希望。
现在,组织的不同部分使用不同的BI、分析和数据科学工具,创建独特的数据定义、维度、度量、逻辑和上下文。独立的团队也分别管理他们自己的语义层。这将导致用户组之间在数据解释、业务逻辑和定义方面的差异,从而对来自数据的报告和情报产生不信任情绪。
此外,这种不一致性也经常导致团队之间的混乱。例如,活跃客户是否为您的服务购买了持续付费订阅?或者是最近七天内登录过的人?或者有人已经注册了七天免费试用?不一致的定义会影响财务团队的计费目的,影响续订团队的客户识别,影响处理和准确报告销售产品的操作。
数据仓库中语义层的兴起
或许是觉得数据环境还不够复杂,数据架构师开始在数据仓库中也实现了语义层。架构师可能会认为他们管理的数据资产是所有用例的唯一真实来源。然而,通常情况并非如此,因为数以百万计的非规范化表结构通常不是“业务就绪”(business-ready)的。当语义层嵌入到各种仓库中时,数据工程师必须通过设计和维护数据管道来将分析用例与数据连接起来,通过转换生成“分析就绪”(analytics-ready)的数据。
如果没有一致的语义层,数据工程师就会在他们专门构建的管道中硬编码语义,以支持他们的数据消费者。语义含义(定义)将很快变得静态和不灵活,使得集中式架构团队难以跟上不同工作组特定领域的需求。随着规模的扩大,代码会变得难以管理和不一致。这种方法会导致延迟和依赖,从而阻碍基于数据的决策。
本地化的语义层进一步扩展
更大的挑战是,随着数据仓库迁移至云端,用户查询可能变得非常缓慢。缓慢的性能迫使业务用户提取数据并将其加载到他们首选的分析平台中,以便实现更轻松地操作和更快地查询,从而在本地化的语义层中进一步扩展语义。
在今天的大多数情况下,在数据堆栈周围都有一些语义层——云数据仓库中有一些,转换管道中有一些,每个BI工具中都有一些。由于数据工程师每次设计新的数据管道时都要重新创建常见的业务概念(例如,逐年预测或货币转换),这种语义蔓延造成了极大的效率低下。每当需要回答涉及不同数据定义或业务逻辑的新业务问题时,数据团队都需要不断地重新创建散布在各种语义层中的公共业务概念,这种重复性的工作不仅浪费时间和资源,还会导致数据团队产生倦怠情绪。
创建通用语义层
我们需要的是一个通用的语义层,为所有可能的数据体验定义所有指标和元数据:可视化工具、面向客户的分析、嵌入式分析和人工智能代理。使用通用语义层,业务中的每个人都同意“客户”和“潜在客户”等术语的标准定义集,以及数据之间的标准关系(标准业务逻辑和定义),因此数据团队可以构建一个一致的语义数据模型。
通用语义层位于数据仓库之上,为各种数据应用程序提供数据语义(上下文)。它可以与转换工具无缝协作,允许企业定义指标、准备数据模型,并将其公开给不同的BI和分析工具。
为了构建通用语义层,数据团队必须首先建立业务逻辑、运算和上下文,这些都将进入语义数据模型。他们首先要了解业务需要解决的实际问题,收集必要的数据,然后对数据之间的关系进行编码,并定义治理和安全策略,以启用可信访问。之后,他们使用元数据在数据上构建抽象层,以便向下游数据消费者一致地公开维度、层次结构和运算。
一旦建立了底层数据和语义,通用语义层必须与数据消费者集成,例如生成式AI、BI、电子表格和嵌入式分析。Cube Cloud是一个通用的语义层平台,提供了大量预构建的集成和强大的API套件,因此企业可以一次建模数据并将其交付到任何地方。它还提供了大量开发人员工具,使协作和构建数据模型、设置缓存和预聚合以及维护数据访问控制变得更加容易。
通用语义层的好处
有了通用语义层,数据团队就有了更多的治理和控制权,如果实施得当,终端用户可以从数据中获得更多价值,减少团队之间的误解。这提高了效率,并确保所有数据消费场所都使用相同的、准确的数据。因此,无论数据是由查看仪表板的人使用,还是由向某人提供问题答案的大型语言模型使用,数据都是一致的。
所有这些都使得数据团队可以更轻松地将数据快速交付给他们在内部和外部工作的各种消费者。数据团队可以轻松地更新或定义新的度量标准,设计特定于领域的数据视图,并合并新的原始数据源。他们还可以执行治理策略,包括访问控制、定义和性能。
另一个好处是:随着数据量的激增,云计算的成本也在飙升。通用语义层通过预处理或预聚合数据、存储常用的业务指标并将其用作分析的基础来解决这个问题,从而降低了云数据费用。通用语义层还在企业范围的数据上提供了异常高的性能和低延迟,加快了用户查询的速度。
结语
我们需要一个通用的语义层来支持下一代数据驱动的应用程序,并接受这样一个现实:将有许多不同的工具来可视化和使用这些数据,以及存储这些数据的许多不同数据源。最后,通用语义层可以为企业指标创建一个单一的事实来源,为决策者提供他们需要的数据,以获得一致、快速和准确的答案。
原文标题:Overcoming data inconsistency with a universal semantic layer,作者:Artyom Keydunov