
194
|
第
8
章
•
缓存也需要模型。通常我们不会针对缓存本身建模,因为我们认为缓存只是内
存的反射,而内存已有了建模。在一次解构运动中,一款名为
Coherence
的应
用程序(由
Cameron Purdy
创建并最终卖给了
Oracle
)实现了数据库反转,将“主
要”数据存储移动到内存中,并以持久磁盘层作为辅助存储。在创建索引、物
化视图和去正规化策略中也可以采用这种做法。
•
事件也需要模型。发布了哪些事件,哪些服务需要哪些声明检查来满足事件订
阅者的需求,以及它们将在哪里检索数据?复杂的事件处理系统也会反转数据
库:本质上,它们会存储查询,并让数据在其上流动,当发现查询中的条件与
数据匹配时,就会执行一个函数。
•
流也需要模型。我们将在下面单独介绍,因为可能你对这种模型比较陌生。
建模工作不能仅限于机械地枚举应用程序中的名词,还要在彼此关联的名词之间建
立连接表,并通过列名约定监管开发人员。
8.5
流数据模型
数据流可以对连续流动的一系列事件执行实时分析,而且不必先存储数据。这些数
据的来源多种多样。
常见的流数据有以下几种:
金融
股票代码提供不断变化的金融数据流。追踪器可以实时更新和重新平衡投资组
合,并自动进行交易。
流媒体服务和视频游戏
音乐、电影或有声读物的内容也包括数据流。流中包含有关内容使用情况的元
数据,例如何时暂停、何时倒回、观看的分辨率、接收设备等,我们可以通过
这些原数据改进服务。
网络电子商务点击流
在电子商务网站上,应用程序可以捕获每次点击,甚至每次鼠标悬停,将这些
作为事件,并通过流传输,以作处理,从而了解用户的行为。 ...