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

合肥建设局网站领导专门装修的网都有什么网网站

合肥建设局网站领导,专门装修的网都有什么网网站,手机报价网站大全,做seo网站 公司本文作者#xff1a;彭冲老师#xff0c;上一篇彭老师体验了亚信刚发布的社区版AntDB-T数据库#xff0c;文章如下#xff1a; AntDB-T交易型数据库体验 本文继续体验AntDB-S流式数据库的#xff0c;AntDB-S目前还未开放社区版#xff0c;可以联系AntDB小助手进行体验。…本文作者彭冲老师上一篇彭老师体验了亚信刚发布的社区版AntDB-T数据库文章如下 AntDB-T交易型数据库体验 本文继续体验AntDB-S流式数据库的AntDB-S目前还未开放社区版可以联系AntDB小助手进行体验。 01 AntDB-S 流式数据库简介 流式数据库是把流处理引擎的能力合并到数据库内核与数据库SQL引擎、存储引擎融合在一起完全以数据库的习惯使用流处理引擎甚至可以和数据库的功能混合使用。比如流对象与表对象联合JOIN。 下面几幅图是流式数据库的架构、以及AntDB-S在PostgreSQL数据库基础上进行改造的说明。 从上面几幅图可以看出AntDB-S是在PostgreSQL内核上加入流处理引擎功能把流数据的存储融合进PostgreSQL的存储引擎把流处理的进程体系结构融合进PostgreSQL的进程体系结构中。 这样的融合结构会带来以下的优势 技术栈简单稳定性好。 学习和维护成本低只需掌握数据库的使用和维护即可。 纯SQL操作使用简单方便可快速响应业务的复杂多变性。 流数据处理支持数据UPDATE和DELETE、事务ACID以及流对象与表对象联合JOIN。 02 流处理基本术语 流 流是一种日益增长(ever-growing的、并且可能形成无序但有效的、本质上无限(essentially infinite)的数据集。 流具有三个特性数据无边界Unbounded data、处理无边界Unbounded data processing、低延时(Low-latency)。 流对象 流对象就是流式数据库里用于保存流数据的对象类似PostgreSQL里的表。流对象具有表的特性可以对其流数据进行增删改查且满足事务ACID可以对其流数据进行流式计算同时具有物化视图的特性可以从一个流对象的处理结果生成另一个流对象。 PULL和PUSH查询 传统数据库的查询模式称为PULL模式客户端执行查询语句数据库把查询结果返回给客户端结果集全部返回则查询语句执行结束。流对象的查询会长期运行流数据被处理后实时推送给客户端这种查询模式不同于传统的数据库查询模式称之为PUSH模式。 时间概念 对于流式数据处理最大的特点就是数据具有时间属性。流数据库根据时间产生的位置把时间划分为三钟类型事件生成时间Event Time、事件接入时间Ingestion Time和事件处理时间Processing Time。用户可以根据具体业务灵活选择时间类型。 事件生成时间 事件生成时间简称事件时间是每个独立事件在产生它的设备上发生的时间这个时间通常在事件进入流数据库前就已经进入事件当中了即事件时间是从原始的消息中提取的。 事件接入时间 事件接入时间简称入库时间是数据进入流数据库的时间它主要依赖接入节点所在主机的系统时钟。 事件处理时间 事件处理时间简称处理时间是指数据在算子计算过程中获取到的所在主机时间这个时间是由流数据库自己提供的。 在三种时间概念中事件时间和处理时间是最重要的。在理想情况下事件时间等于处理时间也就是事件一发生就立即被处理。但是在现实世界中这是不可能发生的。由于网络延时、前端数据积压、流处理本身耗时等因素都会导致事件时间和处理时间不一致甚至有可能会乱序到达。 针对延迟和乱序的情况一般建议使用事件时间进行流式处理。对于时间计算精度要求不是特别高的计算场景如延时比较高的日志数据可使用处理时间。 窗口 窗口操作是流式系统进行数据流处理的核心通过窗口操作可以将一个无限的数据流拆分成很多个有限大小的“桶”然后在这些桶上执行计算。 流式数据库提供了四种窗口定义滚动窗口、滑动窗口、会话窗口和全局窗口。 滚动窗口 滚动窗口(Tumbling Window)在时间维度上按照固定长度将无边界数据流切片彼此紧邻而不交叉的出现对于一个到来的数据根据时间属性取得其时间戳即可计算出它所对应的时间窗口。 滑动窗口 滑动窗口Hopping Window,也是采用固定相同间隔分配窗口只不过每个窗口之间有重叠。滑动窗口有两个参数分别是窗口大小Window Size和滑动步长Slide后者决定了窗口每次向前滑动的距离。当滑动步长小于窗口大小时将会发生多个窗口的重叠即一个元素可能被分配到多个窗口里去。当滑动步长等于窗口大小时就变成了滚动窗口。当滑动步长大于窗口大小时就会出现窗口不连续的情况数据可能不属于任何窗口。 会话窗口 会话窗口Session Window根据会话间隙Session Gap切分不同的窗口当一个窗口在大于会话间隙的时间内没有接收到新数据时窗口将关闭。在这种模式下窗口的长度是可变的每个窗口的开始和结束时间并不是确定的。 全局窗口 全局窗口Global Window只有一个窗口且窗口无限大也就是无窗口定义因为没有窗口结束时间所以不能等窗口结束后输出统计结果一有数据立即计算输出结果。 水位线 前面提到流处理系统为实时计算提供了三种时间即事件时间、入库时间和处理时间。在进行窗口计算理想情况下事件时间和处理时间一致但是在实际应用中由于网络或者系统等外部因素影响事件数据往往不能及时到达流处理系统从而造成数据乱序或者延迟到达等问题。针对这两个问题流数据库主要采用了以水位线Watermater为核心的机制来应对。正确地处理乱序事件通常是结合窗口和水位线这两种机制来实现的。 在流处理过程中从时间产生到流经数据库到流经算子中间是有一个过程和时间的。虽然在大部分情况下流到算子的数据都是按照事件产生的时间顺序到达的但是也不排除由于网络、系统等原因导致乱序的产生和迟到数据。但是对于迟到数据不能无限期地等下去必须要有个机制来保证在经过一个特定的时间后触发窗口计算。此时由水位线来发挥作用它表示当达到水位线后在水位线之前的数据已经全部到达即使后面还有延迟的数据系统可以触发相应的窗口计算。也就是说只有水位线越过窗口对应的结束时间窗口才会关闭和计算。只有以下两个条件同时成立才会触发窗口计算。 条件T1水位线时间窗口结束时间。 条件T2在[窗口开始时间窗口结束时间)中有数据存在。 在理想情况下水位线应该与处理时间一致并且处理时间与事件时间只相差常数时间甚至为0。当水位线与处理时间完全重合时就意味着消息产生后马上被处理不存在消息迟到的情况。然而由于网络拥塞或系统原因消息尝尝存在迟到的情况因此在设置水位线时总是考虑一定的延时从而给予迟到的数据一些机会。具体的延迟大小由用户根据业务情况在流处理SQL语句中指定。 allowedLateness 在默认情况下当水位线超过窗口结束时间后再有之前的数据到达时这些数据会被删除。为了避免有些迟到的数据被删除产生了allowedLateness的概念。简单来讲allowedLateness就是针对事件时间而言对于水位线超过窗口结束时间后还允许有一段时间也是以时间来衡量来等待之前的数据到达以便再次处理这些数据。在默认情况下如果没有在流处理SQL语句中指定allowedLateness那么它的默认值是0即对于水位线超过窗口结束时间后如果还有属于此窗口的数据到达时这些数据就会被删除。 另外对于窗口计算如果没有设置allowedLateness窗口触发计算以后就会被销毁设置了allowedLateness以后只有水位线大于“窗口结束时间 allowedLateness”时窗口才会被销毁。 03 AntDB-S 流处理示例 1.连接数据库 psql -h x.x.x.x -d postgres -P pageroff -P pageroff表示关闭翻页显示流式查询需要加上。 下面创建测试库demodb create database mydb; \c mydb 2.创建流对象 流对象为流数据的入口点下面创建流对象instructor STREAM instructor (id text, name text, dept_name text, salary float); STREAM关键字表示创建流对象流对象也具备流式物化视图的能力。 例如从流对象instructor过滤年薪80000美元的流数据物化成super_instructor ructor AS SELECT * FROM instructor WHERE salary 80000 EMIT CHANGES; 使用元命令\dt查看流对象或表 List of relationsSchema | Name | Type | Owner -----------------------------------------public | instructor | stream | demopublic | super_instructor | stream | demo (2 rows) 3.删除流对象 删除流对象super_instructor DROP STREAM super_instructor;4.往流对象插入数据 INSERT INTO instructor VALUES(12121, Wu, Finance, 90000); INSERT INTO instructor VALUES(15151, Mozart, Music, 40000); INSERT INTO instructor VALUES(22222, Einstein, Physics, 95000); INSERT INTO instructor VALUES(32343, El Said, History, 60000); 5.查询流对象 流对象的查询操作包括传统的PULL模式查询以及新增的PUSH模式查询。 PULL模式把流对象当做表对象处理查询语法和表的查询一样。 PUSH模式查询流对象的查询长期运行着一旦有增量数据立即执行后续的查询操作。 流对象instructor 的PULL查询 SELECT * FROM instructor; 流对象instructor的PUSH查询 SELECT * FROM instructor WHERE salary 80000 EMIT CHANGES; 当其它进程往instructor流对象插数据PUSH查询会实时显示增量处理结果。 6.修改流对象数据 先使用带pg_state(xmax)的PUSH查询显示流数据状态 T pg_state(xmax),* FROM instructor WHERE salary 80000 EMIT CHANGES; 修改instructor流对象 UPDATE instructor SET salary 98000 WHERE id22222; 此时PUSH查询显示两条增量数据一条pg_state状态为’-‘的老数据表示删除的老数据一条pg_state状态为’的新数据表示新增的数据。 7.删除流对象数据 同样使用pg_state(xmax)的PUSH查询显示流数据状态 此时PUSH查询显示一条pg_state状态为’-的老数据表示删除老数据。 8.常规聚合 常规聚集就是全局窗口聚集和普通窗口聚集表现形式不一样常规聚集因为窗口无限大所以聚集结果无需显示窗口开始时间和结束时间。 例如实时统计各个科系教师的人数和薪资总额 SELECT count(id), sum(salary), dept_name FROM instructor GROUP BY dept_name EMIT CHANGES; 常规聚集的结果也可以物化成其它流对象。 例如把各个各个科系教师的人数和薪资总额实时统计结果物化成dept_cost流对象 CREATE STREAM dept_cost AS SELECT count(id), sum(salary), dept_name FROM instructor GROUP BY dept_name EMIT CHANGES; 9.窗口聚合 前面流处理基本术语介绍过窗口操作可以将一个无限的数据流拆分成很多个有限大小的“桶”然后在这些桶上执行计算。根据窗口定义可以分为滚动窗口、滑动窗口、会话窗口、全局窗口。 全局窗口上面已经介绍过会话窗口暂不支持滚动窗口和滑动窗口的流式聚集语法如下 put_name ] [, ...] ,window_begin(*) [[ AS ] output_name, window_end(*) [[AS] output_name] FROM stream_name [ WHERE condition ] GROUP BY grouping_element [ HAVING condition ] [ { TUMBLE ( event_time_field, window_size ) | HOP ( event_time_field, window_size, slide ) } [ { WATERMARK | DELAY } watermark_size] EMIT CHANGES] window_size slide watermark_size are interval quantity unit 其中窗口的大小、步长、水位线都是以INTERVAL ‘quantity unit’ 间隔时长表示单位支持如下简称或全称: 滚动窗口示例每隔10秒实时统计各个科系新增教师的人数、薪资总额和平均薪资延后5秒输出结果。 创建带事件时间的流对象instructor2 CREATE STREAM instructor2 ( id text, name text, dept_name text, salary float, evt_time timestamp with time zone default now() ); 指定滚动窗口大小为10秒水位线5秒按科系统计每个窗口周期内新增教师的人数、薪资总额和平均薪资。 SELECT count(id), sum(salary), avg(salary), dept_name, window_begin(*), window_end(*) FROM instructor2 GROUP BY dept_name TUMBLE(evt_time, INTERVAL 10 seconds) WATERMARK INTERVAL 5s EMIT CHANGES; 模拟流数据接入一条一条往instructor2插入数据看窗口聚集的输出结果。 ame, dept_name, salary) VALUES(33456, Gold, Physics, 87000);SELECT pg_sleep(3);INSERT INTO instructor2(id, name, dept_name, salary) VALUES(45565, Katz, Comp. Sci., 75000);SELECT pg_sleep(11);INSERT INTO instructor2(id, name, dept_name, salary) VALUES(22222, Einstein, Physics, 95000); 滑动窗口示例如下 创建带事件时间的流对象instructor3 CREATE STREAM instructor3 ( id text, name text, dept_name text, salary float, evt_time timestamp with time zone default now() ); 指定滑动窗口大小为3秒(第一个间隔类型参数)滑动步长为3秒(第二个间隔类型参数)按科系统计每个窗口周期内新增教师的人数、薪资总额和平均薪资。 SELECT count(id), sum(salary), avg(salary), dept_name, window_begin(*), window_end(*) FROM instructor3 GROUP BY dept_name HOP(evt_time, INTERVAL 2 seconds, INTERVAL 3 seconds) EMIT CHANGES; 模拟流数据接入每秒一条往instructor3插入数据看窗口聚集的输出结果。 INSERT INTO instructor3(id, name, dept_name, salary) VALUES(001, name1, dept1, 100); SELECT pg_sleep(1); INSERT INTO instructor3(id, name, dept_name, salary) VALUES(002, name2, dept1, 200); SELECT pg_sleep(1); INSERT INTO instructor3(id, name, dept_name, salary) VALUES(003, name3, dept1, 300); SELECT pg_sleep(1); INSERT INTO instructor3(id, name, dept_name, salary) VALUES(004, name4, dept1, 400); SELECT pg_sleep(1); INSERT INTO instructor3(id, name, dept_name, salary) VALUES(005, name5, dept1, 500); 第二个间隔类型参数滑动步长与第一个间隔类型参数窗口大小相等时滑动窗口变成了滚动窗口。 第二个间隔类型参数滑动步长小于第一个间隔类型参数窗口大小时数据元素可能被分配到多个窗口窗口会出现重叠。 第二个间隔类型参数滑动步长大于第一个间隔类型参数窗口大小时数据元素可能不属于任何窗口窗口可能会不连续。 10.流对象和表对象JOIN 流式数据库的JOIN包括流对象与表对象JOIN、流对象与流对象JOIN当前版本仅支持流表JOIN。 示例实时查询新增的教师所属的科系以及所在办公楼信息。 创建科系表并插入数据 CREATE TABLE department(id text, dept_name text, building text, budget float);INSERT INTO department VALUES(01, Biology, Watson, 90000), (02, Comp. Sci., Taylor, 100000), (03, Elec. Eng., Taylor, 85000), (04, Finance, Painter, 120000), (05, History, Painter, 50000), (06, Music, Packard, 80000), (07, Physics, Watson, 70000); 创建教师信息流对象instructor3 CREATE STREAM instructor3 (id text, name text, dept_name text, salary float); 教师信息流对象instructor3和科系表department做流表join。 SELECT instructor3.id, name,salary, department.dept_name, building FROM instructor3 JOIN department ON instructor3.dept_name department.dept_name EMIT CHANGES; 往教师信息流对象instructor3中插数据看流表join的结果显示 INSERT INTO instructor3 VALUES(12121, Wu, Finance, 90000); INSERT INTO instructor3 VALUES(15151, Mozart, Music, 40000); 04 总结 AntDB-S流式数据库上手比较容易技术栈简单纯SQL操作简单方便支持数据UPDATE、DELETE、事务ACID以及流表JOIN。 关于AntDB数据库 AntDB数据库始于2008年在运营商的核心系统上为全国24个省份的10亿多用户提供在线服务具备高性能、弹性扩展、高可靠等产品特性峰值每秒可处理百万笔通信核心交易保障系统持续稳定运行近十年并在通信、金融、交通、能源、物联网等行业成功商用落地。
http://www.hkea.cn/news/14277246/

相关文章:

  • 静态网站网站链接dw怎么做
  • 网页设计与网站建设有区别吗南京手机网站设计
  • 区块链交易网站开发wordpress ios 源码
  • 青海省交通建设工程质量监督站网站通过ip访问网站需要怎么做
  • 网站建设怎么样网站托管运营所需资料
  • 网站搭建后台中国政务网站建设绩效评估
  • 网站群建设公司排行榜6网站开发软件科技公司
  • 做网站 发现对方传销抖音运营
  • 做网站需要理解什么网站备案查询api
  • 自己有域名怎么做免费网站专门做餐饮装修的公司
  • 互联网有多少网站查询网站收录情况的方法
  • app定制网站开发wordpress+4.2.4中文
  • 建设部安全员证书查询网站上海做网站公司推荐
  • 网站seo基本流程丹徒网站建设哪家好
  • 为什么我的电脑有些网站打不开宜章网站建设
  • 酒店网站建设的基本内容直播间人气互动平台
  • 网站上做推广方案中国建设工程交易信息网
  • 自己做的网页怎么上传网站吗河南建设监理协会网站
  • 网站管理系统 免费锟鹏建设招聘网站
  • 网站备案查询不了宁波十大外贸公司
  • 酒类公司网站模板vr全景网站怎么做
  • 网站开发引用思源黑体广州做网站价位
  • 网站自动推广软件手表网站查询
  • 苏州网站建设公司有哪几家还可以的建筑公司网站案例
  • 南宁建设银行缴费网站公司宣传视频怎么制作
  • 网站怎么优化关键词网站首页怎么做营业执照链接
  • 安徽网站设计平台跑腿app开发公司
  • 怎样做网贷网站wordpress搜索设置
  • 龙岗这边哪里有教做网站的最好的书籍设计网站
  • 中山网站建设文化教程有哪些网站可以做兼职