1.6 数据
Data Mesh专注于分析型数据。它识别了两种数据模式的模糊划定,引入了一种将两种模式紧密结合的新模型,同时又尊重两种模式之间的明显区别。
“什么是操作型数据和分析型数据?”对于Data Mesh的早期爱好者来说,这是一个令人困惑的问题。
1.6.1 操作型数据
操作型数据支撑业务运行,并使用事务完整性保存业务的当前状态。这些数据由事务实时捕获、存储和处理,用于OLTP(Online Transaction Processing,联机事务处理)系统。
操作型数据位于支持业务功能的微服务、应用程序或记录系统的数据库中,保存了业务的当前状态。
操作型数据的建模和存储针对应用程序或微服务逻辑和访问模式进行了优化。它会持续更新,通过读和写进行访问。它的设计必须考虑到多人在同一时间以不可预知的顺序更新相同的数据的情况,这导致了对事务的需求。这里的访问是相对即时的活动。
操作型数据被称为“内部数据”(https://oreil.ly/YOZhC)。它是执行增查改删(CRUD,Create,Read,Update,Delete)数据操作的应用程序或者微服务的私有数据。操作型数据可以通过API(比如REST、GraphQL甚至事件)有意地共享给外部。这些外部的操作型数据在本质上与内部的操作型数据是一样的。
操作型数据记录业务中发生的事情,支持特定于业务活动的决策。简而言之,操作型数据被直接用于业务运行和服务终端用户。
以Daff为例。它的听众注册服务实现了订阅和取消订阅用户的业务功能。支持注册流程,并且保存了当前的订阅者列表的事务型数据就称为操作型数据。
现在,操作型数据被收集,然后被转换为分析型数据。分析型数据训练机器学习模型,然后以智能服务的形式接入操作型系统。
1.6.2 分析型数据
这是作为业务运行的副产品而创建的数据的历史性的、集成的和聚合的视图。它被OLAP(Online Analytical Processing,联机分析处理)系统维护和使用。
分析型数据是一段时间内业务事实与时间有关的、历史的和聚合的视图。对它进行建模的目的是提供回顾性或者展望未来的洞见。分析型数据针对分析逻辑——训练机器学习模型和创建报表和可视化——进行优化。分析型数据是“外部数据”(https://oreil.ly/X6J5h)的一部分,数据直接被分析消费者使用。
分析型数据具有历史感。分析用例需要寻找不同时间的比较和趋势,而操作型数据并不需要太多历史。
分析型访问模式倾向于包含对大量数据的密集读取,而写入者较少。分析型数据的原始定义是“非易失的、集成的、时变的数据集合”注3,现在依然有效。
简而言之,分析型数据用于优化业务和用户体验。正是这些数据激发了组织里的对人工智能和分析的抱负。
比如,在Daff的例子中,基于用户的音乐爱好和喜欢的艺术家推荐播放列表以优化听众的体验很重要。帮助训练播放列表推荐机器学习模型的分析型数据捕获了听众过去的行为,以及听众喜欢的音乐的所有特征。这种聚合的和历史性的视图就是分析型数据。
当前的分析型数据存储在数据仓库或者数据湖中。