当前位置: 首页 > news >正文

nas怎么做网站服务器/软文媒体发稿平台

nas怎么做网站服务器,软文媒体发稿平台,做电影网站侵权吗,网站建设岗位风险防控上篇文章介绍了查询模式中基本模式部分,这篇博文将介绍相异计数,即在事件流中找出互不相同的事件并进行计数。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var dataWithDups new [] {new { EventType A, …

上篇文章介绍了查询模式中基本模式部分,这篇博文将介绍相异计数,即在事件流中找出互不相同的事件并进行计数。

测试数据准备

为了方便测试查询,我们首先准备一个静态的测试数据源:

var dataWithDups = new []
{new { EventType = 'A', OrderNumber = 101, Action = 'S', Price = 8.65, Shares = 2000 },new { EventType = 'A', OrderNumber = 102, Action = 'S', Price = 8.60, Shares = 500 },new { EventType = 'A', OrderNumber = 103, Action = 'B', Price = 8.40, Shares = 1200 },new { EventType = 'A', OrderNumber = 104, Action = 'B', Price = 8.50, Shares = 1000 },new { EventType = 'A', OrderNumber = 105, Action = 'S', Price = 8.70, Shares = 500 },new { EventType = 'A', OrderNumber = 105, Action = 'S', Price = 8.70, Shares = 500 },    // 重复事件new { EventType = 'A', OrderNumber = 104, Action = 'B', Price = 8.50, Shares = 1000 },   // 重复事件
};

接下去将dataWithDups转变为点类型复杂事件流:

var dupStream = dataWithDups.ToPointStream(Application, t =>PointEvent.CreateInsert(DateTime.UtcNow.AddTicks(t.OrderNumber), t),AdvanceTimeSettings.StrictlyIncreasingStartTime);

互异计数

问题1:怎样过滤掉重复事件?

更明确的步骤是:

  1. 查看10分钟内的数据(找出给定时间周期内的重复事件);
  2. 按照所有的字段进行分组
    1. 传统的LINQ(或SQL语句)定义“唯一性”是指记录中所有的字段都相同;
    2. StreamInsight中可以指定一部分字段来指定“唯一性”(例如不考虑时间戳);
  3. 从每个分组中取出1个事件

下面按照上述步骤编写查询实现:

第1步&第2步:将事件持续事件延长5分钟并按照所有字段进行分组。分组的结果是相同的事件会被放在同一个组中。

var distinctGroups = from e in dupStream.AlterEventDuration(e => TimeSpan.FromMinutes(10))group e by new { e.EventType, e.OrderNumber, e.Action, e.Price, e.Shares};

第3步:从每个分组中取出相同事件中的1个到结果事件流中。

var noDuplicates = distinctGroups.ApplyWithUnion(apply =>(from win in apply.SnapshotWindow(SnapshotWindowOutputPolicy.Clip)from t in winorderby t.EventTypeselect t).Take(1),e => new{EventType = e.Payload.EventType,OrderNumber = e.Payload.OrderNumber,Action = e.Payload.Action,Price = e.Payload.Price,Shares = e.Payload.Shares});

最后移除掉重复项的结果如下:

问题2:怎样统计互异事件的总数?

与问题1类似,我们需要将相同的事件划分到同样的组中,然后从中取其一,最后进行聚合操作,即统计总数。

第1步,按照所有字段分组并统计同一分组内事件总数:

var distinctQuery = from e in dupStreamgroup e by new { e.EventType, e.OrderNumber, e.Action, e.Price, e.Shares } into dGroupsfrom win in dGroups.TumblingWindow(TimeSpan.FromMinutes(10), HoppingWindowOutputPolicy.ClipToWindowEnd)select new{// 事件数量(多少重复事件)EventCount = win.Count()};

第2步:统计分组数:

var query2 = from win in distinctQuery.SnapshotWindow(SnapshotWindowOutputPolicy.Clip)
select new { DistinctCount = win.Count() };    

在LINQPad中输出结果如下:

下一篇将介绍StreamInsight查询模式中的窗口比率部分。

转载于:https://www.cnblogs.com/StreamInsight/archive/2011/09/05/StreamInsight-Query-Series-Part14-Query-Patterns-Count-Distinct.html

http://www.jmfq.cn/news/4737061.html

相关文章:

  • 东莞网络建设推广/惠州seo排名优化
  • 政府网站回复集镇建设规划/软文写作服务
  • 网站运营工作计划/seo官网优化详细方法
  • 企业网站建设美丽/北京seo优化
  • 自定义网站建设/快速排名优化seo
  • 深圳市专业做网站/精准客户信息一条多少钱
  • 网易做相册的网站/网络平台推广运营公司
  • 用什么编程语言做网站好/seo交流论坛seo顾问
  • 南京做网站建设/今日国际新闻最新消息事件
  • 郑州男科医院排名最好的医院/绍兴百度seo排名
  • 新余专业做淘宝网站/东莞网站关键词优化公司
  • 纯静态网站 维护/全国疫情最新情况公布
  • 公司用dw做网站吗/百度网盘怎么用
  • 网站建设开发定制/推广公司app主要做什么
  • 宁波外贸网站设计公司/网站模板平台
  • 域名做非法网站/营销推广网站推广方案
  • 方案库网站/免费行情软件app网站下载大全
  • 织梦网站后台如何做百度优化/今日最新消息
  • 100个免费推广网站的排名/买淘宝店铺多少钱一个
  • 廊坊网站制作建设/旅游产品推广有哪些渠道
  • wordpress弹窗登入/绍兴seo推广
  • 网站备案情况查询/网上推广企业
  • 惠州的企业网站建设/seo优化网
  • 一个公司的网站怎么做的/营销网站建设流程
  • 网站title如何修改/提交百度一下
  • 可做产品预售的网站/seo基础教程
  • linux 转换wordpress/安卓优化清理大师
  • 公司网站banner怎么做/苏州企业网站关键词优化
  • 丰台周边网站建设/丹东seo推广优化报价
  • 导航网站超链接如何做/搜索引擎调价工具哪个好