新流数据
1. 数据流的模型描述
我们试图从数据集合、数据属性和计算类型三个不同方面对数据流的模型进行归纳和描述。实际上,很多文章提出了各种各样的数据流模型,我们并没有包括所有这些模型,只是将其中比较重要的和常见的进行了归纳和分类。 以下是对数据流的一个形式化描述。
考虑向量α,其属性的域为[1..n](秩为n),而且向量α在时间t的状态
α(t)=<α1(t), ...αi(t), ...αn(t) >
在时刻s,α是0向量,即对于所有i,αi(s)=0。对向量的各个分量的更新是以二元组流的形式出现的。即,第t个更新为(i, ct),意味着αi(t)= αi(t . 1) + ct,且对于i. =.i,αi. (t)= αi. (t . 1)。在时刻t发生的查询是针对α(t)的。 我们首先考虑在进行数据流计算时,有哪些数据被包含在计算范围之内。关于这个问题,主要有三种不同的模型:分别是数据流模型(data stream model)、滑动窗口模型(sliding window model)和n-of-N模型。
数据流模型(data stream model)在数据流模型中,从某个特定时间开始至今的所有数据都要被纳入计算范围。此时,s=0,即在时刻0,α是0向量。即这是数据流最初和最普遍的模型。
滑动窗口模型(sliding window model ,计算最近的N个数据)滑动窗口模型是指,从计算时算起,向前追溯的N个数据要被纳入计算范围。此时,s = t . N,即在时刻t . N,α是0向量。换句话说,要计算最近的N个数据。由于数据流的数据是不断涌现的,所以直观的看,这种模式就像用一个不变的窗口,数据随时间的推移经过窗口,出现在窗口内的数据就是被计算的数据集合。M. Datar等[91]首先提出这一模式,随后得到了广泛响应[92]。
n-of-N模型(计算最近的n个数据,其中0 <n ≤ N) 文献[93] 提出的这种模型建立在滑动窗口模型的基础之上,比滑动窗口模型更为灵活:被纳入计算范围的是从计算时算起,向前追溯的n个数据。此时,s = t . n,即在时刻t . n,α是0向量。注意,其中n ≤ N,而且是可以随查询要求变化的。而在滑动窗口模型中,n = N而且是固定不变的。对于数据流处理系统来说,要能够回答所有长度小于等于N的滑动窗口问题。 我们在来看一下数据本身的特征。
时间序列(time series model) 数据按照其属性(实际上就是时间)的顺序前来。在这种情况下,i = t,即一个t时刻的更新为(t, ct)。此时对α的更新操作为αt(t)= ct, 且对于i. =.t,αi. (t)= αi. (t . 1)。这种模型适用于时序数据,如某特定IP的传出的数据,或股票的定期更新数据等。
收款机模型(cash register model) 同一属性的数据相加,数据为正。在这种模型中,ct >=0。这意味着对于所有的i和t来说,αi(t)总是不小于零,而且是递增的。实际上,这种模型被认为是最常用的,例如可以用于对收款机(收款机模型由此得名),各个IP的网络传输量,手机用户的通话时长的监控等等。
十字转门模型(turnstile model) 同一属性的数据相加,数据为正或负。在这种模型中,ct可以大于0也可以小于0。这是最通用的模型。S. Muthukrishnan[89]称其为十字转门模型起因于这种模型的功能就象地铁站的十字转门,可以用来计算有多少人到达和离开,从而得出地铁中的人数。 对数据流数据的计算可以分为两类:基本计算和复杂计算。基本计算主要包括对点查询、范围查询和内积查询这三种查询的计算。复杂计算包括对分位数的计算、频繁项的计算以及数据挖掘等。
点查询(Point query) 返回αi(t)的值。
范围查询(Range query) 对于范围查询Q(f, t),返回
t
. αi(t)
i=f
内积(Inner proct) 对于向量β,α与β的内积
α . β =Σni=1αi(t)βi
分位数(Quantile) 给定一个序号r,返回值v,并确保v在α中的真实排序r.符合以下要求:
r . εN ≤ r. ≤ r + εN
其中,ε是精度,N =Σni=1αi(t)。
G. S. Manku等[94]提供了对分位数进行一遍扫描进行近似估计的框架结构,将数据集合看成树的节点,这些节点拥有不同的权重(如节点中包含的数据个数)。认为所有的分位数的估计算法都可以被认为由三个对节点的操作组成产生新节点(NEW) 、合并(COLLAPSE)和输出(OUTPUT)。不同的策略构成了不同类型的树。这个框架结构成为后来很多分位数估计算法的基础。
频繁项(Frequent items)有时也称Heavy hitters,即找出在数据流中频繁出现的项。在这种计算中,实际上令ct =1。这样,αi(t)中保存了截至t时刻,维值等于i的数据到达的频率。对这些数据的查询又可分为两种:
找出头k个最频繁出现的项
找出所有出现频率大于1/k的项
对频率项的研究主要集中在后一种计算[95]。
挖掘对数据流数据进行挖掘涉及更复杂的计算。对这方面的研究包括:多维分析[96],分类分析[97, 98],聚类分析[99–102],以及其他one-pass算法[103]。
2. 数据流的区别特征
与传统的关系数据模式区别
B.Babcock等[90]认为数据流模式在以下几个方面不同于传统的关系数据模式:
1. 数据联机到达;
2. 处理系统无法控制所处理的数据的到达顺序;
3. 数据可能是无限多的;
4. 由于数据量的庞大,数据流中的元素被处理后将被抛弃或存档(archive)。以后再想获取这些数据将会很困难,除非将数据存储在内存中,但由于内存大小通常远远小于数据流数据的数量,因此实际上通常只能在数据第一次到达时获取数据。
三个特点
我们认为,当前所研究的数据流计算之所以不同于传统的计算模式,关键在于这些数据流数据本身具有如下三个特点:
数据的到达—快速
这意味着短时间内可能会有大量的输入数据需要处理。这对处理器和输入输出设备来说都是一个较大的负担,因此对数据流的处理应尽可能简单。
数据的范围—广域
这是指数据属性(维)的取值范围非常大,可能取的值非常多,如地域、手机号码、人、网络节点等。这才是导致数据流无法在内存或硬盘中存储的主要原因。如果维度小,即使到来的数据量很大,也可以在较小的存储器中保存这些数据。例如,对于无线通信网来说,同样的100万条通话记录,如果只有1000个用户,那么使用1000个存储单位就可以保存足够多和足够精确的数据来回答“某一用户的累计通话时间有多长”的问题;而如果共有100000个用户,要保存这些信息,就需要100000个存储单位。数据流数据的属性大多与地理信息、IP地址、手机号码等有关,而且往往与时间联系在一起。这时,数据的维度远远超过了内存和硬盘容量,这意味着系统无法完整保存这些信息,通常只能在数据到达的时候存取数据一次。
数据到达的时间—持续
数据的持续到达意味着数据量可能是无限的。而且,对数据进行处理的结果不会是最终的结果,因为数据还会不断地到达。因此,对数据流的查询的结果往往不是一次性而是持续的,即随着底层数据的到达而不断返回最新的结果。
以上数据流的特点决定了数据流处理的特点一次存取,持续处理,有限存储, 近似结果,快速响应。
近似结果是在前三个条件限制下产生的必然结果。由于只能存取数据一次,而且只有相对较小的有限空间存储数据,因此产生精确的计算结果通常是不可能的。而将对结果的要求从过去的“精确”改为“近似”后,实现数据流查询的快速响应也就成为了可能。
3. 新物流与传统物流的区别
传统物流只提供简单的位移,并且是被动服务,实行人工控制,没有统一服务标准,专侧重的是点到点或线到属线的服务,单一环节管理。然而新物流主要是通过物联网技术、人工智能、云计算技术搭建智慧物流服务平台,像货运宝新物流平台帮助客户搭建新物流平台,帮助物流企业一键部署提供增值服务,降本增效,实现企业转型升级,整体系统优化。