聚合
计算机用语
聚合在信息科学中是指对有关的数据进行内容挑选、分析、归类,最后分析得到人们想要的结果,主要是指任何能够从数组产生标量值的数据转换过程。近年来随着大数据的发展,聚合技术已经广泛地应用于文本分析,信息安全,网络传输等领域。
基本定义
聚合表示 了组件对象和聚合对象之 间的 Part一of联系 ,这是一种较强形式的关联关系。聚合是从最低粒度 的事实表中衍生出来的预先计算的汇总 。这些汇总数据形成了一组独立 的聚合事实表。可以把一个跨越任何维度的特定汇总结构 建成一个 聚合事实表 。无论何时当需要在查询 、分析中展示与原始数据不同级别的数据都会发生聚合。简单的说就是对有关的数据进行内容挑选、分析、归类,最后分析得到人们想要的结果。例如:搜集和重新组织那些具备RSS订阅功能的网站或博客的过程。聚合的内容可以通过在线工具(在线阅读器网站如有道阅读器或Google Reader)来阅读,也可以直接通过新闻阅读器在电脑桌面上进行阅读。
动态聚合与预聚合
动态聚合
下面从一个实例来介绍动态聚合,当需要年一级的数据时,从基础事实表中选出日一级的数据,存贮这些数据,并把它加到年一级的值里。如销售数据根据天存 储到事实表中。要求执行月份层次数据的报表 。这样来自事实表每天的值被选中 、存储和添加生成每月总数,如图1所示。
预聚合
通过一个存储在聚合表中的结果。聚合也可以在查询 、分析进行之前完成,这个过程称为预聚合。可以创建预聚合表或聚合表作为 ETL (提取 、转换和加载)过程 的一部分。如果销售数据在月份层次上频繁地使用 , 一个带有销售数据上卷到月份层次的聚合报表就有用了。消除了运行时对来 自大的 、较低层系的事实表中的许 多列数据的读、 排序和计算的操作。图2演示了这种情况。
聚合函数
聚合函数对一组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空值。 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用。
常见的聚合函数如下(注:例子使用的是SQL语言):
AVG 返回指定组中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no2. COUNT 返回指定组中项目的数量。
例:select count(prd_no) from sales3. MAX 返回指定数据的最大值。例:select prd_no,max(qty) from sales group by prd_no4. MIN 返回指定数据的最小值。
例:select prd_no,min(qty) from sales group by prd_no5. SUM 返回指定数据的和,只能用于数字列,空值被忽略。例:select prd_no,sum(qty) from sales group by prd_no6. COUNT_BIG 返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
例:select count_big(prd_no) from sales7. GROUPING 产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0。
例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup8. BINARY_CHECKSUM 返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。
例:select prd_no,binary_checksum(qty) from sales group by prd_no9. CHECKSUM_AGG 返回指定数据的校验值,空值被忽略。
例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no10. CHECKSUM 返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。
STDEV 返回给定表达式中所有值的统计标准偏差。
例:select stdev(prd_no) from sales12. STDEVP 返回给定表达式中的所有值的填充统计标准偏差。
例:select stdevp(prd_no) from sales13. VAR 返回给定表达式中所有值的统计方差。
例:select var(prd_no) from sales14. VARP 返回给定表达式中所有值的填充的统计方差。
例:select varp(prd_no) from sales有时候以上的聚合函数并不能符合我们数据处理的要求,我们也可以自定义聚合函数,来得到我们想要的结果。
COM技术
要公开一个 COM 类的接口,并将这些接口当作是在第二个 COM 类上实现的,第二个类就将聚合第一个类。COM 对象可以聚合 .NET 对象,在这种情况下,该对象的所有接口(包括其类接口)都可以通过外部对象来使用。内部 .NET 对象将对其IUnknown方法的调用委托给控制IUnknown。
聚合比包容(在下一节说明)略为复杂。它通常用于使外部对象能够在不进行修改的情况下公开另一个对象的接口实现。所有托管对象自动支持将托管对象用作内部对象来进行 COM 样式的聚合。要聚合托管对象,非托管的外部对象将创建托管的内部对象,方法是调用CoCreateInstance,然后将外部对象的IUnknown作为OuterUnknown参数传递。当外部IUnknown在构造过程中传递给托管对象时,托管对象将缓存接口并以如下方式使用该接口:
外部对象挂接到内部IUnknown的非委托IUnknown。非委托IUnknown的运行方式与常规IUnknown相同;也就是说,如果对象实现了接口,非委托IUnknown就会成功,否则就会失败。非委托IUnknown不会将调用转发到外部对象。
如果对内部对象查询它不支持的接口,内部对象就会将调用委托给外部对象的IUnknown接口。
对内部对象的QueryInterface、AddRef和Release方法的所有调用都将委托给外部对象的IUnknown。
通过这三种行为,可以聚合任何托管对象。利用这种聚合关系,可以使单个 COM 对象部分在托管代码(内部部分)中实现,部分在非托管代码(外部部分)中实现。
聚合有个特性就是定制,因为只有可定制,聚合才有意义,如互联网的RSS订阅,如Google Reader,雅蛙网。
海洋信息服务聚合平台应用
随着新型海洋监测技术的发展,海洋信息呈指数级增长,所获取的海洋信息类型也更加多样化。此外,由于测量方式及自身因素方面的原因 , 使得海洋信息又表现出动态性、模糊性、多时空、多尺度和多语义等特性。使得数据集成化应用分析与海洋信息集成系统建设以及海洋业务系统的整合成为当前亟待解决的问题和随着网络技术的发展,基于 Web 的海洋信息集成技术成为当前的研究热点。国内外有很多基于 Web 的海洋信息应用服务台。像 美 国 NOAA 的Coastal Services Center , 中国国家海洋信息中心的中国数字海洋公众版等。这些海洋信息服务系统虽然采用了 Web 服务技术,但它们的兼容性、 可扩展性、开放性很差,在产品升级和重用方面
很困难。这里提出了基于 Mashup 和 Web服务技术,提出了海洋信息服务聚合平台的解决方案,研究了面向聚合应用的海洋信息服务模式和海洋 信 息 服 务 聚 合 方 法 。 基 于Mashup 的信息聚合可以理解为一种新型的软件开发模式, 它具有Web2.0 应用程序的特点, 可以方便地利用外部数据源检索到的内容 来 创 建 全 新 的 应 用海洋信息服务聚合平台主要有以下几部分:
海洋信息聚合平台可分为 3 层,分别为资源层、集成层和应用层,其中集成层是整个聚合平台的核心,主要由资源查找、资源解析、资源聚合三部分组成,如图3所示。
2. 面向聚合应用的海洋信息服务
海洋信息服务主要有海洋数据服务,海洋模型服务,海洋信息服务聚合方法。如图4所示。
在海洋信息集成及业务整合迫切需求的背景下,针对当前海洋信息集成平台的问题, 以Mashup 的信息聚合技术和 Web 服务技术为支持,提出了海洋信息服务聚合平台的体系框架。试验表明,基于海洋信息聚合平台的信息集成方法,可以实现服务提供者、 聚合平台、服务使用者的松散式集成,改变了传统信息集成平台服务提供者和集成平台之间的紧耦合模式,可以实现 Web 中各类海洋信息轻松、快捷的自定义组合,较好地解决了海洋信息集成面临的问题可以使海洋专家专心于海洋科学的认知和模型构建,并且基于本文思想,可以最大程度地实现这些模型的复用。
最新修订时间:2023-11-17 20:34
目录
概述
基本定义
动态聚合与预聚合
参考资料