| 产品名称: |
KLDC24Z4-607 9032散热风扇 |
价格: |
¥/元/台
|
| 所属类别: |
新品 |
发货期: |
1天内 |
| 发货地: |
广东-深圳 |
品牌: |
日本精工伺服 |
| 型号: |
KLDC24Z4-607 |
供货量: |
145555台 |
标题:供应KLDC24Z4-607 9032散热风扇
:原装日本精工(伺服风扇)
型号:KLDC24Z4-607
尺寸:92*92*32mm 90*90*32MM
轴承:双滚珠
电压:24V
分类
数据的性质、格式不同,则对流的处理方法也不同,因此,在Java的输入/输出类库中,有不同的流类来对应不同性质的输入/输出流。在java.io包中,基本输入/输出流类可按其读写数据的类型之不同分为两种:字节流和字符流。
输入流与输出流
数据流分为输入流(InputStream)和输出流(OutputStream)两类。输入流只能读不能写,而输出流只能写不能读。通常程序中使用输入流读出数据,输出流写入数据,就好像数据流入到程序并从程序中流出。采用数据流使程序的输入输出操作独立与相关设备。
输入流可从键盘或文件中获得数据,输出流可向显示器、打印机或文件中传输数据。
缓冲流
为了提高数据的传输效率,通常使用缓冲流(Buffered Stream),即为一个流配有一个缓冲区(buffer),一个缓冲区就是专门用于传输数据的内存块。当向一个缓冲流写入数据时,系统不直接发送到外部设备,而是将数据发送到缓冲区。缓冲区自动记录数据,当缓冲区满时,系统将数据全部发送到相应的设备。
当从一个缓冲流中读取数据时,系统实际是从缓冲区中读取数据。当缓冲区空时,系统就会从相关设备自动读取数据,并读取尽可能多的数据充满缓冲区。
模型描述
我们试图从数据集合、数据属性和计算类型三个不同方面对数据流的模型进行归纳和描述。实际上,很多文章提出了各种各样的数据流模型,我们并没有包括所有这些模型,只是将其中比较重要的和常见的进行了归纳和分类。
形式化
以下是对数据流的一个形式化描述。
考虑向量α,其属性的域为[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 product) 对于向量β,α与β的内积
α . β =Σ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]。
相关思路
简介
数据流处理过程中的主要难点在于如何将存储数据所花费的空间控制在一定范围之内。查询响应时间问题虽然也很重要,但相对容易解决。作为研究领域的一个热点,数据流处理问题得到了广泛的研究,出现了很多算法。
解决数据流庞大的数据量与有限的存储空间之间的矛盾的一个思路是使用采样,另一个思路是,构造一个小的、能提供近似结果的数据结构存放压缩的数据流数据,这个结构能存放在存储器中。略图(Sketch)、直方图(histogram)和小波(wavelet)实际上就都是这样的数据结构中重要的三种。
以上方法实际上大都已用于传统数据库领域,问题在于如何将它们应用于数据流的特殊环境。
随机采样
随机采样(Random sampling)可以通过抽取少量样本来捕捉数据集合的基本特性。一个很常见的简单方法就是一致性采样(uniform sample)。作为一个备选的采样方法分层采样( sampling)可以减少数据的不均匀分布所带来的误差。不过,对于复杂的分析,普通的采样算法还是需要太大的空间。
对于数据流的一些特殊计算,已经出现了一些有趣的采样算法。粘采样(Sticky sampling)[95]用于频繁项(frequent items)的计算。粘采样使用的方法是,在内存中存放二元组(i,f)所构成的集合S,对于每到来的一个数据,如果其键i已经存在于S,则对应的f加1;否则,以1 r 的概率进行采样,如果该项被选中,在S中增加一组(i,1);每过一段时间,对S中的组进行一遍扫描,对其中的值进行更新。然后增加r的值;结束(或用户要求结果)时,输出所有f.(s-e)N的组。
P. Gibbons提出的distinct sampling[104]用于distinct counting ,即找出数据流中不同值的个数。它使用哈希(hash )函数对每一个到来的不同值以2.(i+1)的概率映射到级别i上;如果i ≥内存级别L(L的初始值为0),将其加入内存,否则抛弃;内存满时,将内存中级别为L的值删除,并将L加1;终对distinct count的估计为内存中不同的值乘以2L。distinct counting是数据库处理中的一个老问题,这种算法的优点是,通过设置合适的参数,可应用于带谓词的查询(即对数据流的一个子集进行distinct counting)。