- ?
开源实时数据处理系统Pulsar:一套搞定Kafka+Flink+DB
敏感
展开
编辑| Debra
本文整理自 Streamlio 核心创始人翟佳在 QCon2018 北京站的演讲,在本次演讲中,翟佳介绍了 Apache Pulsar 的架构、特性和其生态系统的组成,并展示了 Apache Pulsar 在消息、计算和存储三个方面进行的协调、抽象和统一。
Messaging:Pulsar 对 pub/sub 和 queue 两种模式提供统一的支持,同时保证了一致性,高性能和易扩展性。
Computing:Pulsar 内部的 Pulsar-Functions 提供了 Stream-native 的轻量级计算框架,保证了数据的即时流式处理。
Storage:Pulsar 借助 Apache BookKeeper 提供了以 segment 为中心的存储架构,保证了存储的性能,持久性和弹性。
实时数据处理在刚刚兴起的时候,一般企业会采用λ架构,维护两套系统:一套用来处理实时的数据;另一套用 batch 的方式处理历史数据。两套系统带来了资源的冗余占用和维护的不便。
为了消除冗余,逐渐演化出κ架构,使用一套系统来满足实时数据处理和历史数据处理的需求。
不管是λ架构还是κ架构,在实时处理的系统中,系统的核心由消息、计算和存储三个子系统组成,比如消息系统有 Kafka、RabbitMQ、Flume 等;计算系统有 Spark Streaming、Flink、Heron 等;存储系统有各种分布式的文件系统,DB、K/V store 等。 由于三个部分中,每个部分都有相应的不同产品,三个部分之间也相互分隔和独立很少关联,这带来了一些问题,比如需要更多人力维护,部署复杂,调优难度大,监管难,数据丢失风险大等等。
为什么要选择 Apache Pulsar?
面对消息,存储和计算三个部分分隔的现状,Apache Pulsar 在这三个方面进行了很好的协调、抽象和统一。 具体到 Apache Pulsar 内部,消息部分由 Pulsar Broker 来负责;存储部分使用了 Apache BookKeeper,计算部分由 Pulsar Functions 来负责。
Apache Pulsar 是 2016 年 yahoo 开源的下一代大规模分布式消息系统,目前在 Apache 基金会下孵化。在 Yahoo 的生产环境中大规模部署并使用了近 4 年,服务于 Mail、Finance、Sports、 Flickr、 the Gemini Ads platform、 Sherpa 以及 Yahoo 的 KV 存储等,在 Yahoo 全球 8 个数据中心之间维护了全联通的复制,并包含了 200 多万个 Topics。
Apache Pulsar 有几个明显区别于其他消息系统的特点:
优秀的数据持久性和顺序性。每一条消息都提供了全局唯一的 ID,多副本,并都是在实时刷盘后再返回给用户。
统一的消费模型: 支持 Stream(如 Kafka)和 Queue(如 RabbitMQ)两种消费模型, 支持 exclusive、failover 和 shared 三种消费模式。
灵活的扩展性: 节点扩展的线性和瞬时完成,在扩展中不会有数据的拷贝和迁移。
高吞吐低延迟,在实时刷盘的前提下,依然提供了高带宽(180 万 messages/ 秒)和低延迟(5ms at 99%)。
除了这些特性,Apache Pulsar 也具备了优秀的企业级特性,比如多机房互联互备(Geo-replication),多租户等。
Apache Pulsar 在架构上最明显的优势是采用了消息服务和消息存储分层的策略。它包括了无状态的消息服务层(broker 节点)和消息存储层(BookKeeper 中 Bookie 是基本的存储节点)。这为系统带来了极好的扩展性和健壮性。
在消息服务层和存储层,系统所关注的内容是不一样的: 在服务层更多的是对 Producer 和 Consumer 的支持,更关注用户接口和消息的服务质量,需要更好的 CPU 和网络带宽来支持消息的扇入扇出。存储层更关注磁盘 IOPS 和存储容量,负责数据的持久化等。
分层的架构带为服务和存储两层都带来了线性、瞬时的扩展性。如果需要增加和支持更多的 Producer 和 Consumer,只用对 broker 进行 Scale。如果存储空间紧张,或者想要消息的时间保持的时间更长,可以单独增加存储节点 Bookie。
在服务层中,broker 不会有相关的数据被持久化保存,是无状态的。对 Topic 的服务可以很容易地迁移。如果 broker 失效,可以很容易地将 topic 迁移到健康的 broker。
在存储层(Bookie)也是一样。每个 topic 的数据被打散并均匀 partition 到多个 segment,每个 segment 的数据又被分散存储在 Bookie 集群中。当想增加容量的时候,只需要添加新的 Bookie,数据会优先选择刚加入的 Bookie。
同样当 broker 被 overloaded,添加新的 broker 之后,负载会被均衡地分配到新添加的 broker 之上。
介绍完 Apache Pulsar 的总体架构和特性,下面会从消息、存储和计算三个方面分别介绍 Apache Pulsar 的设计理念,各层内部以及各层之间的协调、抽象和统一。
Apache Pulsar 的消息层
Apache Pulsar 面向用户的也是最简单的三个概念: 主题 Topic、生产者 Producer 和消费者 Consumer。 Topic 是消息的一个通道和载体; Producer 产生数据并向 Topic 这个通道中发送数据; Consumer 从 Topic 中获取并消费数据。
在 Apache Pulsar 中提供了对 Namespace 的支持。Namespace 是 ApachePulsar 的多租户机制中重要的组成部分。在一个 Topic 的名字中,包含了:租户 (Tenant) ,命名空间(namespace)和 Topic 名字,这样就可以对所有的 topic 提供层级化的管理。
Tenant 代表系统里的租户。假设有一个 Pulsar 集群被多个组织共享,集群里的每个 Tenant 可以代表一个组织的团队、一个核心的功能或一个产品线。一个 Tenant 可以包含多个 namespace,一个 namespace 可以包含多个主题。
Tenant 是资源的隔离的单位。namespace 是资源使用和权限设置的单位,我们可以设置权限、调整复制选项、管理跨集群的数据复制、控制消息的过期时间等。namespace 下的 Topic 会继承 namespace 的配置。如果用户获取了 namespace 的写入权限就可以往 namespace 写入数据,如果要写入的 topic 不存在,就会创建该 topic。
为了支持异地多备,namespace 又分为两种,一种是本地的,只在集群内可见;一种是全局的,对多个集群可见。可以在不同的数据中心之间进行数据的交互和互备。
Apache Pulsar 的每个 namespace 可以包含多个 topic,而每个 topic 可以有多个生产者和订阅者。每个订阅者可以接受 topic 的所有的消息。为了给应用程序提供更大的灵活性,Apache Pulsar 通过增加一层 subscription 的抽象,提供了统一的消费模式。 消息的传递路径是 producer-topic-subscription-consumer。subscription 类似 Kafka 中 consumer group 的概念。
Apache Pulsar 支持 exclusive、failover 和 shared 三种订阅类型,它们可以共存在同一个 topic 上。数据虽然只写了一次,但是可以通过三种的消费方式被多次消费。
前两种 exclusive 和 failover,都是 Streaming 的模型,只有一个 consumer 来消费一个 topic partition 中的所有数据,都能保证严格的顺序。Kafka 和 Kinesis 也是这种消费模型(一个 consumer 消费一个 partition)。
Exclusive 是只能有一个 consumer 来消费一个 topic 中的数据,不允许其他的 consumer 加入;failover 是允许多个 consumer 和一个 subscription 关联,当 master consumer 失效后,可以有另外的 consumer 来接管成为新的 master。
第三种是 shared 的消费模式,它属于 Queue 的模式,常见的 RabbitMQ、ActiveMQ 均属于这种模式。如果三个 consumer 共同订阅同一个 subscription,每个 consumer 大概会消费这个 topic 中的三分之一的数据,如果想增加消费的带宽,只用单独增加 consumer 的数量而不需要改变 topic 和 partition,非常实用于一些 consumer 处理复杂度比较高的场景,比如视频,图片处理等。
除了这三种消费模式,Apache Pulsar 还提供了 reader 的 API 来读取消息,让用户可以更加灵活的控制和消费消息。
Apache Pulsar 提供了两种 ack 的机制: 累积(cumulative)模式和单条(inpidual)模式。
Ack 机制在在消息系统中是非常重要的。消息系统中的 broker 和 consumer 可能会出错或宕机,当有错误发生的时候,如果能够获取上次消费者消费的位置,然后从这个消费的位置再接着消费,这是非常有用的,这样可以避免丢失数据,避免把所有的处理过的数据再处理一遍。
一般通过 message acknowledgement、committing offset 来标记消息的消费情况。
Kafka 中通过 offset 来简单的管理 ack,记录一个 partition 的消费位置。
Pulsar 通过维护一个专门的数据结构 ManagedCursor 来管理 ack 的信息,每次 ack 的改变都会被持久化到硬盘中。
对于 cumulative 的 ack,在标记的消息之前,所有的数据都被消费过了;遇到出错的情况会从标记的位置再开始消费。
对于 inpidual 的消费模式,会单独标记已经被消费过的消息;遇到出错的情况,所有的未被标记 ack 的消息都会被重新发送。Inpidual 的 ack 模式主要支持 share 的消费模式。它是很有必要的,因为对一般的 share 的消费模式,都是单个的消息消费处理比较慢,所以才增加 consumer。单独的标记,能在出错的时候减少不必要的昂贵的处理。
消息的 retention 策略,管理着消息什么时候被删除。 其他的系统大多是通过时间来控制。有可能时间到了,但消息没有被消费,也被删除了。
Apache Pulsar 中,提供了比较全面的 retention 策略。一般情况下,借助 ack 的信息,当所有 subscription 都消费了消息之后,消息才会删除。数据还可以额外的设置 retention period,即使都消费了也能再将消息保存一段时间。另外也支持 TTL 的模式。
对于留在 backlog 中的消息,Apache Pulsar 也提供了多种策略,包括 producer-request-hold、producer-exception、consumer-backlog-eviction 等。在 backlog 的 quota 达到时,供用户选择怎么处理新的消息和在 backlog 中的消息。
Apache Pulsar 的存储层
接下来我们来看一下 Apache Pulsar 的存储层,也就是 Apache BookKeeper。Apache BookKeeper 在 2011 年开源,并随后加入 Apache,成为 Apache 的顶级项目。BookKeeper 是分布式的是一个可扩展的、高可用、低延迟的专门为实时系统优化过的存储系统。更多系统可以参考 BookKeeper 的网站 和 github:。
Apache BookKeeper 为 Pulsar 系统提供了一个以 Segment(BookKeeper ledger)为存储单元的存储服务。BookKeeper 的存储节点称作一个 Bookie。
BookKeeper 为 append-only 的写入模式提供了优化,通过独特的设计提供了高带宽和低延迟。
BookKeeper 提供了强一致性和顺序性。通过实时刷盘和多备份保证数据的持久性。顺序性通过记录本身携带的全局唯一顺序 ID 来保证的。这样对很多对顺序要求比较高的应用场景。
高可用是说数据会同时写入多个 bookie 上,如果 bookie 发生错误,即使只有一台包含数据的 bookie 可用,仍能为应用提供服务,在其他 bookie 恢复或有新的 bookie 加入后,会自动检查并补全所需要的数据备份。
IO 隔离,对于 Bookie 的读和写是分别发生在不同的磁盘上的。这样不依赖于文件系统和 pagecache 的设计,能保证即使有大量的读的同时,也能保证写的高带宽和低延迟;在大量的写入的同时,读请求的服务质量也能得到保证。这也是能保证多租户的一个关键。
一个 BookKeeper 的集群由多个 Bookie 节点构成。每个 Bookie 负责具体的数据存储。当用户的 application 要使用 bk 的时候,会设定三个参数,ensemble size(用户要使用几台 bookie)、write quorum(写入的数据要保留几个备份)和 ack quorum(每次的写入操作,有几个成功后就返回)。Bookie 采用 quorum-vote 的模式,当写一条数据时,数据同时并发的写到所有的 write quorum 的 bookie 中,当指定的 ack quorum 返回后,bookie 认为写成功,返回。
当 ensemble 中有 bookie 出错,会从 cluster 中寻找其他可用的 bookie,进行替换。然后后台有 autorecovery 做数据的自动恢复,对用户透明。
BookKeeper 的一个特性是存储是以 Segment(在 BookKeeper 内部被称作 ledger)为存储的基本单元。每个 Segment 甚至到每个消息的粒度,都会被均匀分散到 BookKeeper 的集群中。保证了数据和服务在多个 Bookie 上的均匀性。通过这张图,我们通过简单对比 Pulsar 和 Kafka 中的 partition 的存储过程,对 Pulsar 有一个更好的理解。
Pulsar 和 Kafka 都是基于 partition 的逻辑概念来做做 topic 的存储。最根本的不同是,Kafka 的物理存储也是以 partition 为单位的,每个 partition 必须作为一个整体(一个目录)被存储在某一个 broker 上。 而 Pulsar 的每个 partition 是以 segment 作为物理存储的单位,Pulsar 中的每个 partition 会再被打散并均匀分散到多个 bookie 节点中。
这样的一个直接的影响是,Kafka 的 partition 的大小,受制于单台 broker 的存储;而 Pulsar 的一个 partition 则可以利用整个集群的存储容量。
当 partition 的容量上限达到后,需要扩容的时候,如果现有的单台机器不能满足,Kafka 可能需要添加新的存储节点,将 partition 的数据搬移到更大的节点上。但是 Pulsar 只用添加新的 Bookie 存储节点,新加入的节点由于剩余的空间大,会被优先使用,更多的接收新的数据;而且其中不会涉及到任何的老的数据的拷贝和搬移。
Pulsar 在单个节点失败时也会体现同样的优势。如果 Pulsar 的服务节点 broker 失效,由于 broker 是无状态的,其他的 broker 可以很快的接管 topic,不会涉及 topic 数据的拷贝;如果存储节点 Bookie 失效,集群中其他的 Bookie 会从多个 Bookie 节点中并发读取数据,并对失效节点的数据自动进行数据的恢复,不会对前端的服务有影响。
Apache BookKeeper 内部除了基础的的 Segment(ledger), 还提供了 Stream 和 Table 两种服务。 Segment 可以简单理解为一段复制日志。Stream 服务是通过一...
- ?
MES制造执行系统数据采集方式
街舞
展开
MES制造执行系统的特点,就是能实时收集生产过程中的各类信息、数据,然后汇集到数据库中,作数据分析及供管理层查询。如何高效的采集车间的各类数据,是决定一个MES制造执行系统软件项目实施成败的重要关键环节。为您简单介绍一下几类常见的数据采集方式。
数据收集是MES制造执行系统业务进行的根本,也是MES制造执行系统进行统计分析的基础。MES制造执行系统软件应用中根据不同的数据、应用场景、人员能力、设备投入等方面的因素需要采用不同的数据收集方式,选择不同的数据收集设备。根据各类数据的分类,采用不同的数据采集方式。
1、必须录入的数据
必须录入的数据指系统必须直接从外部获得的数据。系统可以通过规格基础定义功能以及过程数据基础定义功能完全的自行建立属于企业自己的数据收集项目库。
例如产品的编码、产品流程、工序名称、工艺条件目标等。
2、系统自动生成的的数据
生产过程中的部分由事件触发的数据可以由系统在过程中自动收集,主要包括:工序开始操作的时间、结束时间、设备状态等。这一类的数据,可由时间触发之后,根据原本设定的基础数据,由系统自动收集。
3、通过条码采集的方式
通过条码收集制造数据的方式是最为普遍的方式之一。条码收集数据的前提是信息可以以编码的方式表达或与预设的数据通过编码建立对应关系。
条码方式可收集的数据主要包括:产品批号、物料批号、加工资源编号、运输资源编号、人员编号、异常类别、异常现象、设备状态(维修、保养、故障停机等)、作业开始、作业结束等。
条码可以提高数据录入的准确性,提高录入速度,且成本较低。因此,建议尽可能的将数据进行分类然后编码处理,转化成条码的方式表达以便于现场的数据采集。
4、传感器采集数据
某些行业对温度、压力、湿度等的要求有严格要求的,其相关数据来源可以增加各类传感器。采集模式主要为温度传感器、压力传感器、无线数据采集卡和PC等构成。
5、RFID数据采集
在汽车行业中,由于完全依据订单进行生产,并且几乎没有两辆完全一样的订购汽车,因此自动化的物流跟踪是顺利生产的前提条件。对于每道生产工序,必须要对汽车进行明确的识别,以避免诸如错误安装了空调、调漆颜色不对等问题。在装配流水线上应用RFID技术以尽可能大量地生产用户定制的汽车,用户可以从上万种内部和外部选项中选定自己所需要的颜色、引擎型号等,这样汽车装配流水线上就得装配上百种样式的汽车。在装配流水线上配有RFID系统,使用可重复使用的电子标签,该标签上可带有详细的汽车所需的所有信息,在每个工作点都有RFID读写器,这样可以保证汽车在各个流水线位置处能毫不出错的完成装配任务。
实时、准确的生产数据采集并实现是MES制造执行系统得以成功的重要基础,企业MES制造执行系统软件建设中应该充分考虑其数据采集的特点,在采集过程中,根据完整性、实时性原则、多种采集技术综合应用、人机结合原则、易于集成应用原则,运用多种数据采集方式,并利用计算机、数据网络语通信设备、各种技术标准和实时历史数据库软件的有机组合来实现生产数据的集成应用。
效率MES解决方案在自动化的基础上,显著提高工厂的智能化水平,降低人为因素的影响,便捷、“傻瓜式”的操作将大大降低人力成本。
来源:深圳效率科技efficient.hk
- ?
欧维姆在线数据采集系统为中国桥梁安全实时保驾护航
傲柔
展开
近期,由柳州欧维姆机械股份有限公司(以下简称欧维姆公司)承建的世界跨径最大钢桁梁斜拉桥——鸭池河特大桥索力监测系统升级顺利完成。至此,该桥索力监测系统由离线模式数据采集系统正式升级为在线模式数据采集系统,使鸭池河特大桥的健康、安全得到实时保障。
欧维姆在线数据采集系统为中国桥梁安全实时保驾护航
鸭池河特大桥作为贵黔高速全线控制性工程,跨越鸭池河,大桥全长1461米,是主跨为800米的双塔双索面钢桁架斜拉桥,主塔采用H型索塔,桥面至水面高差达380米,东塔高243.2米,西塔高258.2米,是目前建成的世界跨径最大钢桁梁斜拉桥,同时创世界山区斜拉桥之最。大桥采用了OVM250钢绞线拉索体系产品及施工服务,于2016年5月20日顺利合龙。
斜拉桥是一个内部高次超静定的结构体系,许多因素的变化,例如,钢绞线的应力松弛、主梁及索塔混凝土的收缩徐变、气候的变化等,都会对整个桥梁结构产生影响,其外在反映最突出的表现就是,斜拉索索力重新分配并导致主梁线形发生变化,索力变化也会使主梁及索塔产生二次内力。尤其在成桥之后的数年时间内,其变化更为显著,斜拉桥索力的变化是判断桥梁是否处于正常运营状态的一个重要指标,而索力测量是分析拉索是否处于正常运营状态的一个重要依据,通过监测斜拉索的受力状况,判断和分析斜拉索的健康状态,已经成为斜拉桥安全监测的重要内容。
2015年11月,欧维姆工程公司人员入场开展索力监测系统首期搭建工作,2016年6月顺利竣工。鸭池河特大桥首期采用的是基于磁通量传感器技术的索力监测系统,于每束斜拉索塔端锚具内安装磁通量传感器测量单根钢绞线受力;于每8束斜拉索中部位置布设1台数据采集装置,安装于塔内塔壁上。这个索力监测系统为离线模式数据采集系统,需人工定期上桥进行数据采集。
为了更好的了解鸭池河特大桥斜拉索在运营期内的受力情况,业主提出了实时采集数据的新要求,于是欧维姆公司于近期,在鸭池河大桥原索力监测系统的基础上,增设了7台磁弹仪和4套数据采集主站,由原系统升级为在线模式数据采集系统,可以实现实时采集数据,实时反馈大桥斜拉索的受力情况,为鸭池河特大桥的运营状况分析提供可靠、有效的依据。
该桥结构索力监测系统采用目前国内最先进的磁通量传感器,均由欧维姆公司自主研发及生产。
作为中国预应力行业领军,欧维姆公司五十多年来一直坚持科技创新,在提升了企业自主创新能力和核心竞争力的同时,通过科技创新产品推动中国预应力行业的发展,为中国桥梁结构健康与安全一直做着不懈的努力。OVM桥梁健康监测系统解决方案曾为毕都北盘江大桥、安徽铜陵长江公铁大桥、杭州湾大桥、厦门集美大桥等中国乃至世界大型桥梁的寿命周期提供技术支撑,推动中国未来大型桥梁产业化发展。(本文来自欧维姆)
- ?
浅议如何提高MES系统的数据实时性
邹依柔
展开
MES系统的核心任务就是:在企业的生产制造过程中及时、有效地传递正确的数据信息,并针对生产过程中的任何异常变动立即作出快速准确的反应。其目标是:尽可能地减少生产制造过程中无附加价值的活动,对企业的生产作业和流程进行更为有效的优化和再造。
提高MES系统数据实时性的实现办法和保障措施:
1.MES系统中数据流通的技术环节分析1.1位于系统最顶部的数据应用层,负责对系统中的数据进行分析、加工,并以可视化的方式,通过B/S或C/S的网络架构,将处理后的结果信息发布给企业的各级生产管理人员。1.2位于系统中间的数据处理层,负责将采集到的数据进行分类、存储等处理。1.3位于系统最底部的数据采集层,主要负责从生产现场的DCS等各种设备装置中采集系统所需的各种数据信息。
2、提高MES系统中数据采集、传输和处理速度要提高MES系统数据的实时性,就必须提高MES系统中数据采集、传输和处理速度。
而与此有主要关联的是以下几个环节:
1.数据采集2.数据传输网络3.实时数据库4.应用层的网络架构
5.用户端处理技术。必须针对上述这5个环节,分别采取相应的措施进行处理。
3、具体实现办法和保障措施
3.1数据采集部分数据采集部分是整个MES系统的基础,对于不同的采集对象,只有采用有针对性的、合理适当且安全高效的数据采集方法和策略,才能以最快的速度从现场设备装置(主要是各种DCS)中获取数据。针对DCS系统的数据采集的方法:方法1:实时数据库使用 OPC协议直接从DCS采集OPC的英文全称是:OLE for Process Control,即:“面向处理控制的对象链接与嵌入”的标准接口技术,它是基于Microsoft公司的
Distributed interNet Application(DNA)构架和Component Object Medel(COM)技术的,根据易于扩展性而设计的。同时,OPC以OLE(即:对象链接与嵌入)/COM(即:部件对象模型)机制作为应用程序的通讯标准,而OLE/COM是一种客户/BE务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问。是一种基于OLE技术、COM和DCOM(即:分布式COM)技术的开放性的接口技术,已成为目前的工业标准接口。
多数新型的DCS设备都支持OPC数据接口通信协议,从理论上讲,可以让实时数据库直接从DCS中采集数据,但我们在实际调研中发现,有的企业采用这种方式的效果并不好,有的甚至出现导致DCS“死机”,而这也正是实施数据采集的最大风险。通过调查分析和请教有关专家才了解到,造成这一“灾难”的原因在于:实时数据库自身的数据吞吐量相当大,当实时数据库直接从DCS系统中同时采集大量的数据时,DCS本身也必须花费大量的机时来响应实时数据库的这些数据请求,一旦数据请求量大到DCS处理不过来时,就会导致DCS处理其它事件的响应速度,从现象上看就像“死机”一样。
方法2:建立OPC服务器,由OPC服务器从DCS采集后转发给实时数据库为避免重蹈他人的覆辙,我们采取的方法是:用一台工控机作为数据采集工作站,通过OPC协议与DCS进行数据通信,并且仅从DCS中读取我们最关心的数据而不进行任何的写入操作。实践证明,这种方法非常安全可靠,同时也并未影响整个系统数据更新的快速性。 方法3:建立OPC服务器,由OPC服务器通过其他协议从没有OPC接口的老DCS中读取数据后,再通过OPC协议转发到实时数据库。 3.2 数据传输网络 当数据采集工作站现场采集到实时数据后,通过网络将这些数据快速地转发给放置在数据机房中的实时数据库服务器。在通过各种数据处理后,由应用服务器以WEB方式让企业的各级管理人员通过内部办公网络访问MES系统。由此可以看到数据传输网络在整个过程中的重要程度。从前面的介绍中我们知道,一套完整的MES系统其网络结构也分为对应的三个部分:采集网、管理网、应用网。其中,采集网是指从实时数据库到数据采集工作站和现场采集对象(DCS等)之间的网络,管理网则包含的是从实时数据库到关系数据库、应用服务器之间的部分,应用网则是从各类应用人员的计算机终端到MES应用服务器和关系服务器的部分。对于赤天化股份有限公司而言,原来已有的办公网络就是MES系统的应用网,由于此前已将办公网络改造成千线光纤、百兆到桌面的高速网络,因此,在此次MES项目中,我们只对MES系统内部的采集网和管理网按照“高速、稳定、安全、可靠”的原则进行了建设和完善。
具体主要采取了以下措施:
措施1:将采集工作站放置在现场采集对象(如DCS)旁边,尽可能缩短采集工作站与DCS之间的数据传输线路距离,以保障它们之间通过百兆以太网连接实现数据的高速传输。
措施2:将实时数据库、关系数据库、应用服务器放置在公司的数据机房,从数据机房敷设单模光纤到各个现场采集点,在数据机房安装带光纤模块的核心交换机,在现场采集点安装带光纤模块桌面交换机,核心交换机与各采集点的桌面交换机之间直接用光纤连接,不通过光纤收发器进行光电转换,减少传输环节,提高传输效率。
措施3:核心交换机采用背板带宽≥100Gbps、包转发率≥75Mpps的四层交换机,采集点的桌面交换机背板带宽≥4.4Gbps、包转发率≥6.5Mpps。机房服务器选用性能比较稳定、处理能力较强的四核双CPU品牌设备。现场采集工作站使用性能稳定可靠性较高的工控机。
措施4:在现场的数据采集工作站除了采集并转发数据外,还要将需转发的数据在本地保存7d以上,当网络出现中断经处理恢复后可以自动向实时数据库补发数据,从而有效防止因网络中断而导致大量数据丢失,最大程度地避免给企业带来损失。
3.3实时数据库
毋庸置疑,在整个MES系统中最核心的就是实时数据库。实时数据库自身性能的高低将直接决定整个MES系统运行性能。采用高效的数据压缩和存储技术,可以大大提高数据传输和处理的速度,试想一下,从同一台服务器上下载数据文件,是下载上百兆的大文件快还是只有几兆甚至几K的文件快呢?因此,我们在对实时数据库进行选型时,也将数据压缩能力和存储方式作为重要的考核指标。
3.4 ME应用层的网络架构
用于MES系统是以WEB方式向应用人员提供访问服务的,因此应用层的网络架构分为B/S和C/S两种。那么,这两种架构又该如何取舍呢?考虑到公司各部门的实际应用情况,在少数特殊岗位(如调度、总控等)设置采用C/S架构的客户端,而其他通过WEB方式访问的用户均采用B/S架构。这样一来,整个MES系统实际上是B/S与C/S的混合架构。
3.5用户端处理技术
在MES中涉及大量的图形图像需要在用户端的电脑屏幕上显示,尤其是工艺流程图,需要用外形逼真的图像将其对应的设备装置展示出来,如果采用传统的BMP或JPG格式的图形文件格式,在用户端浏览时完整画面显示的速度会很慢,尤其是要动态显示诸如温度、液位等状态变化时,就更很难达到界面显示既形象直观又快速的效果要求。因此,在制定具体的技术方案时,就考虑到这一客观要求。经过反复比较测试,最后选择了基于矢量图技术的用户端动态成像技术。从实际运行中的效果来看,采用这种技术在用户端的浏览器上由WEB插件自己根据服务器提供的数据生成图形,尤其是工艺流程图,显示的速度非常快,画面效果也比较逼真清晰,而且也能达到实时动态的展示温度、液位的变化。
4、整体效果评价
由于在上述5个方面分别采取了有针对性的方法和措施,至少在数据的实时性方面效果更为明显,达到了用户端看见的数据基本上与现场DCS设备数据同步。
深科特MES制造执行系统在3C电子、通讯电子、汽车电子、医疗电子、军工电子、航空航天和光电技术等各离散制造行业实现可落地易执行的方案,并积累和沉淀了丰富的行业经验和客户案例,累计超过200多家制造型企业正在使用深科特的产品和服务并不断提升效益,目前团队规模超过200人并在不断壮大。
- ?
生产管理电子看板系统软件数据实时采集及管理技术
Me
展开
生产管理电子看板系统软件性能分析将实际制造过程测定的结果与过去的历史记录和企业制定的目标以及客户的要求进行比较,其输出的报告或在线显示用以辅助性能的改进和提高;主要是数据输入失败,或校验失败等异常发生时的提示报警信息,以及各种产量数据信息。生产管理电子看板系统软件市场要求产品的品种和数量经常变化,靠人工和经验调整生产显然效率低、反应慢、缺乏竞争力。在此过程中,有效的提高了企业信息流通性,并且为企业管理人员提供了更快速的综合性数据信息。生产管理电子看板系统软件将现场实时采集的数据,以及监督控制的状态等信息,生产管理电子看板系统软件立即存入数据库;不但涉及最新的生产状态,也包括长期储存的历史数据,再利用数据库强大的查询、分析、报表功能,优化现场管理。生产管理电子看板系统软件依托生产实际信息,通过计划、目标以及结果对比,从现场设备管理、生产管理和业务决策三方面优化生产管理过程,实现精准决策。对不同项目进行及时和实时地观测有助于了解局势并加以利用,生产的领导者可以据此更快也更恰当地做出反应,生产任务管理包括生产任务接收与管理、任务进度展示和任务查询等功能。
生产管理电子看板系统软件自动判断产品工序的正确性,结合车间现场或警示灯进行提示;生产制造过程的工序检验与产品质量管理,能够实现对工序检验与产品质量过程追溯,对不合格品以及整改过程进行严格控制。对现行进行全面的调查分析,提出为实现总体规划确定的功能所做的各种总体技术考虑和设计。这些都是生产管理中最基础数据。具体化从测试作业因数的许多异样的功能收集的信息,这样的结果应该以报告的形式准备或可以在线提供对执行的实时评价的信息及时收集、上传和处理。作为企业生产执行层面的信息化核心,生产管理电子看板系统软件凭借其强大功能,为越来越多的用户寻找到了改善生产效益的神奇之路。传统生产管理电子看板系统软件软件的作用就是实现企业的连续信息流。
企业也将不再是某一项生产管理电子看板系统软件功能,而是面向企业的整体解决方案,生产管理电子看板系统软件正在向整体解决方案发展。质量统计过程控制是一个开环,通过对所取得的数据分析来监测生产过程的状态。它的数量、构成、周转速度等要素直接影响到企业生产的活动能力,企业需要的是合理地占有资金、灵活地支配资金和经济地利用资金,以确保企业生产活动的顺利进行,借以提髙企业与社会的整体效益。制造过程生产特定等级或质量的产品。究竟生产管理电子看板系统软件报价较为贵重,公司自身的建设也是迅速改变的。车间信息反馈即时监控各车间生产信息可通过控制器对当前紧急状态进行即时报告,并汇总在监控中心的看板上,使用新的开发技术、新设备等,或是新的应用组合,提供各种用户所需要的报表,实现工厂管理智能化。生产管理电子看板系统软件基于设备、工具、人员等车间有限资源,按照交货期、最优库存等算法,将工序分解到每一设备、每一分钟上精确执行,通过复杂而智能的算法来优化车间的生产作业排序和调度。
生产管理电子看板系统软件的生产计划管理的生产计划管理共同构成了企业整个生产过程的生产计划管理。数据的收集、存储和管理都在数据库中,能够帮助企业更好的管理车间,提高管理效率。生产管理电子看板系统软件该项功能可以大量减少工作现场因人为疏忽造成产品再加工或损坏,因而降低了直接人工、物料及成本,并具有产品预警的效果。此外用户还提出了较高的稳定性,实时性,可靠性要求,客户端的响应能力,处理能力,通讯能力等都必须符合生产节奏,避免造成生产停线。
- ?
北京试用中小学生运动负荷监测与评价系统 可实时采集运动数据
亓亓
展开
这套运动负荷监测与评价系统可适时采集中小学生运动数据。北京体育局供图
新京报快讯(记者孙海光)近日,北京市体育局、市教委、卫计委联合召开北京市中小学校体育卫生监督工作培训会,以观摩课的形式向各中小学演示和推介了中小学生运动负荷实时监测与评价系统。这是国内青少年体育运动课程中,首次启用智能终端腕带硬件结合互联网+理念的产品体系。
中小学生运动负荷实时监测与评价系统是由北京市体育局、市教委、卫计委共同组织,由第三方机构研发的智能终端。这套系统由智能终端腕表和手持平板设备配合使用,通过智能终端腕表,体育教师可实时采集佩戴腕表学生体育课锻炼过程中的运动心率、运动时间等运动数据,并实时反馈给体育教师端手持平板设备。
依托运动负荷监测与评价系统,通过运动状态或运动负荷数据的监测,进行大数据分析,判断参与锻炼的学生持续的运动时间、运动负荷强度等指标,系统的记录与评价学生体育锻炼过程实施及阶段运动负荷强度水平和运动量,可以有效保证日常体育课科学、安全、有效的开展,从而实现对体育锻炼的动态监督,更好的促进中小学校及青少年体育工作的开展。
- ?
拥抱智能制造,实现生产数据实时采集
王冠
展开
在《中国制造2025》战略实施后,“制造业数字化、网络化、智能化”被定义为新工业革命的核心技术。
离开生产数据采集,生产管理部门不能及时、准确地得到工件生产数量;无法准确、科学地制定生产计划;无法实现生产管理协同等。
可见,只有有效的实现生产数据的采集和分析,才能从根本上解决车间管理中计划跟踪迟滞、设备利用率低、产品质量难以提升等问题。
自动地、及时地、准确地数据采集,是现代化工业车间的基础。而我们,能为数字化工厂打造一个更加可视、实时、精细、可追溯的制造环境。
东芝,是日本最大的半导体制造商,也是第二大综合电机制造商。公司创立于1875年,业务领域包括数码产品、电子元器件、社会基础设备、家电等。东芝信息机器(杭州)有限公司是日本东芝株式会社的全资子公司,也是东芝笔记本电脑全球唯一的生产基地。
面临的挑战
东芝电脑产品及机板配件生产部门每天都需要及时产出大量的生产数据统计报表,同时质检部门也需要定时定期巡检设备生产相关的异常信息,方便对生产数据进行快速高效和精细化的管理。
但是东芝之前通过excel记录生产数据已无法满足现有业务量的需求:
1、数据采集难:依然采用人工采集、手工输入等方式采集生产线信息;
2、手工数据质量差:excel记录不仅准确性不足,还存在一定的错误率;
3、报送周期长,统计延时:手工输入只能定时进行,无法实时更新系统中的生产数据,滞后情况严重,不利于生产线的顺利进行,制约了产能的进一步提高。
4、事后监管机制:不能及时发现生产过程问题,生产效率提升缓慢;
5、数据分析不足:不能进行可视化的展现,无法给领导提供决策支撑。
为什么选择亿信华辰
1、经受考验的成熟度
支撑30多个国家级部委完成监管、普查、抽查、统计等应用场景的数据采集与分析,助力100余家银行完成统一报表平台和统一数据平台的建设,业务稳定运行。
2、技术先进性
12年的技术沉淀,围绕数据全生命周期自主研发了多款重量级核心智能产品,产品线涵盖了数据采集、数据处理、数据存储、数据分析、数据挖掘等多个领域。
3、高品质强口碑
亿信华辰不仅提供成熟的平台化产品,而且不断地给客户成功交付数据中心、决策支持等应用系统,并以几乎100%的项目成功率,取得了远超同业公司的客户满意度。
平台建设
东芝制造车间生产过程中的数据包括车间人员、物料、加工设备、工票、工装、加工过程等,涉及车间各个部分。面向东芝内部的生产部门,为一线生产人员及质检部门提供数据填报及数据分析平台,是一个完全基于互联网技术构建的智能数据系统。
1、生产数据自动采集并上报
生产部门需要定时每天填写电脑产品及机板配件等的生产信息日报等,利用亿信华辰i@Report产品可以自动将数据库中的设备相关信息初始化到固定格式的报表中,然后根据相关业务逻辑公式,自动统计工数、时长、产出等,生产业务人员确认后直接上报,即可完成数据的采集填报工作,生产组长可以快速汇总其下属各个人员的生产数据,并将数据逐层上报。
2、异常数据提前预警
品质部门需要监管生产流水线的产品生产情况,并形成品质报告定期输出,利用i@Report移动填报功能,品质部门会去现场定时定期巡检,并将异常原因、设备编号等信息在平板电脑上立即进行填报,并拍照上传相关图片留档;同时,对于异常原因利用亿信BI进行历史数据的相关分析,形成问题检索表,方便对比分析。
方案价值
总体而言,利用i@Report+亿信BI两个产品,将以往需要大量的人工通过excel方式报送报表,改为只需要在移动端/PC端在线填报数据的工作模式,极大的减少了业务人员的工作量,提高了数据的共享效率;并将手工数据按照统一的标准存储到数据库,增强了数据的完整统一,也更加有利于对历史数据的对比关联分析。
同时,因为有效的流程监控,在生产过程中,可及时发现异动数据,提前预警,进一步提升了生产质量,降低了事故率,亿信华辰帮助客户收获更高的运营效率和生产质量。
目前,通过智能数据平台的搭建,亿信华辰帮助东芝提升生产能力的同时,也保证了数据的安全性和可靠性,着实为互联网时代的制造业注入了新的活力。
- ?
携程用户数据采集与分析系统
瞿忆秋
展开
一、携程实时用户数据采集系统设计实践
随着移动互联网的兴起,特别是近年来,智能手机、pad等移动设备凭借便捷、高效的特点风靡全球,同时各类APP的快速发展进一步降低了移动互联网的接入门槛,越来越多的网民开始从传统PC转移至移动终端上。但传统的基于PC网站和访问日志的用户数据采集系统已经无法满足实时分析用户行为、实时统计流量属性和基于位置服务(LBS)等方面的需求。
我们针对传统用户数据采集系统在实时性、吞吐量、终端覆盖率等方面的不足,分析了在移动互联网流量剧增的背景下,用户数据采集系统的需求,研究在多种访问终端和多种网络类型的场景下,用户数据实时、高效采集的方法,并在此基础上设计和实现实时、有序和健壮的用户数据采集系统。此系统基于Java NIO网络通信框架(Netty)和分布式消息队列(Kafka)存储框架实现,其具有实时性、高吞吐、通用性好等优点。
1、技术选型和设计方案:
一个典型的数据采集分析统计平台,对数据的处理,主要由如下五个步骤组成:
图1、数据平台处理流程
其中,数据采集步骤是最核心的问题,数据采集是否丰富、准确和实时,都直接影响整个数据分析平台的应用的效果。本论文关注的步骤主要在数据采集、数据传输和数据建模存储这三部分。
为满足数据采集服务实时、高效性、高吞吐量和安全性等方面的要求,同时能借鉴互联网大数据行业一些优秀开源的解决方案,所以整个系统都将基于Java技术栈进行设计和实现。整个数据采集分析平台系统架构如下图所示:
图2(数据采集分析平台系统架构)
其中整个平台系统主要包括以上五部分:客户端数据采集SDK以Http(s)/Tcp/Udp协议根据不同的网络环境按一定策略将数据发送到Mechanic(UBT-Collector)服务器。服务器对采集的数据进行一系列处理之后将数据异步写入Hermes(Kafka)分布式消息队列系统。为了关联业务服务端用户业务操作埋点、日志,业务服务器需要获取由客户端SDK统一生成的用户标识(C-GUID),然后业务服务器将用户业务操作埋点、日志信息以异步方式写入Hermes(Kafka)队列。最后数据消费分析平台,都从Hermes(Kafka)中消费采集数据,进行数据实时或者离线分析。其中Mechanic(UBT-Collector)系统还包括对采集数据和自身系统的监控,这些监控信息先写入Hbase集群,然后通过Dashboard界面进行实时监控。
(1)基于NIO的Netty网络框架方案
要满足前面提到的高吞吐、高并发和多协议支持等方面的要求。我们调研了几种开源异步IO网络服务组件(如Netty、MINI、xSocket),用它们和NginxWeb服务器进行了性能对比,决定采用Netty作为采集服务网络组件。下面对它进行一些概要介绍:Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。
图3(Netty框架内部组件逻辑结构)
Netty的优点有:
a、功能丰富,内置了多种数据编解码功能、支持多种网络协议。
b、高性能,通过与其它主流NIO网络框架对比,它的综合性能最佳。
c、可扩展性好,可通过它提供的ChannelHandler组件对网络通信方面进行灵活扩展。
d、易用性,API使用简单。
e、经过了许多商业应用的考验,在互联网、网络游戏、大数据、电信软件等众多行业得到成功商用。
Netty采用了典型的三层网络架构进行设计,逻辑架构图如下:
图4(Netty三层网络逻辑架构)
第一层:Reactor通信调度层。该层的主要职责就是监听网络的连接和读写操作,负责将网络层的数据读取到内存缓冲区中,然后触发各种网络事件,例如连接创建、连接激活、读事件、写事件等,将这些事件触发到Pipeline中,再由Pipeline充当的职责链来进行后续的处理。
第二层:职责链Pipeline层。负责事件在职责链中有序的向前(后)传播,同时负责动态的编排职责链。Pipeline可以选择监听和处理自己关心的事件。
第三层:业务逻辑处理层,一般可分为两类:a. 纯粹的业务逻辑处理,例如日志、订单处理。b. 应用层协议管理,例如HTTP(S)协议、FTP协议等。
我们都知道影响网络服务通信性能的主要因素有:网络I/O模型、线程(进程)调度模型和数据序列化方式。
在网络I/O模型方面,Netty采用基于非阻塞I/O的实现,底层依赖的是JDKNIO框架的Selector。
在线程调度模型方面,Netty采用Reactor线程模型。常用的Reactor线程模型有三种,分别是:
a、Reactor单线程模型:Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成。对于一些小容量应用场景,可以使用单线程模型。
b、Reactor多线程模型:Rector多线程模型与单线程模型最大的区别就是有一组NIO线程处理I/O操作。主要用于高并发、大业务量场景。
c、主从Reactor多线程模型:主从Reactor线程模型的特点是服务端用于接收客户端连接的不再是一个单独的NIO线程,而是一个独立的NIO线程池。利用主从NIO线程模型,可以解决一个服务端监听线程无法有效处理所有客户端连接的性能不足问题。Netty线程模型并非固定不变的,它可以支持三种Reactor线程模型。
在数据序列化方面,影响序列化性能的主要因素有:
a、序列化后的码流大小(网络带宽占用)。
b、序列化和反序列化操作的性能(CPU资源占用)。
c、并发调用时的性能表现:稳定性、线性增长等。
Netty默认提供了对GoogleProtobuf二进制序列化框架的支持,但通过扩展Netty的编解码接口,可以实现其它的高性能序列化框架,例如Avro、Thrift的压缩二进制编解码框架。
通过对Netty网络框架的分析研究以及对比测试(见后面的可行性分析测试报告)可判断,基于Netty的数据采集方案能解决高数据吞吐量和数据实时收集的难点。
》》点击阅读全文
- ?
实时数据采集 将平台资源匹配
武乐枫
展开
匹配算法实现,通过将用户属性、用户学习状态属性、用户操作行为统计属性与资源属性进行匹配,数据容量大,遥测距离远,人机界面友好,可靠性高的优点,可广泛用于学校和社区小区域范围环境服务。
也适合于气象、海洋、环境、机场、港口、工及等领域使用.实时数据采集与上传该模块主要功能是通过无线方式获取环境观测站采集的实时数据并显示.数据采集的基本算法如下:首先判断是否到发送数据时间,若到了执行数据发送命令。
为了方便学习者查找资源以及系统推送资源,须对学习者和资源的属性进行标记,即创建属性元数据.本研究采用标签技术分别建立学习者和资源的属性元数据.学习者的属性标签主要来自于用户注册时的信息(用户属性)、学习者的学习状态属性以及学习者系统操作行为统计属性(对上传、下载、浏览、评论等操作的统计)。
资源的属性标签主要来自于资源提供者根据学科和关键字分类的标签以及资源使用者对资源的评价、标记等.根据研究性学习的主题、用户学习进度,系统可以将用户可能感兴趣,其他用户感兴趣或评分高、浏览次数多,相同领域的最优资源或相似领域的最佳资源推送给用户,系统根据学习者的学习主题,将平台中评价最高的相关资源、教师指定的资源和拓展的相关资源进行匹配,
实时采集数据系统
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并