2018年2月7日

来来来,MES大数据了解一下






Big data is like teenage sex: everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it...
大数据就象青少年性爱:每个人都在谈论它,没有人真的知道它是怎么一回事,每个人都以为别人都在做,于是每个人都声称他们也做了。。。。。。”
这是网上广为流传的一个大数据段子。
这两年随着互联网应用的广泛普及和推广,各类IT术语层出不穷,犹如雨后春笋:互联网+、物联网、万物互联、智能制造、大数据、人工智能、区块链、神经网络,PPT中增加一些新名称,仿佛泥菩萨贴上了金身,逼格一下子就提升不少。
但是网络是有记忆的:
大约十年前,IBM大力推广商业智能BI,花数倍的钱做同样的报表,后来IBM因为专注于高端客户而裁员了。。。
大约两年前,GE誓言进军工业互联网,打造工业软件帝国,后来GE也裁员了。。。
相反,老老实实做自动化和MESROCKWELL活得很好。
别的不说,至少在MES领域还是相当务实的,或者说MES的客户(各制造工厂)是相当务实的。
其实从技术的角度而言,MES大数据需求利用传统的数据库技术完全可以实现。
这两年内存的价格很低,SSD的技术也已经成熟,所以利用SSD存储、分配大量SGAORACLE数据库完全可以满足大部分制造企业的存储和查询需求。
以年产20万台车的整车工厂MES为例,通常64GB SGA即可满足要求。
本人曾经在一个电子制造工厂实施项目,该工厂有100多道工艺,每天生产80多万件产品,MES最大的一张表每天新增1亿条记录,每个月建1个分区,用ORACLE管理轻而易举、非常稳定。
以汽车制造为例,MES采集的数据确实可能会比较多,如BOM信息、装配关系信息、工艺追溯数据等,但通常数据量也在亿这个级别。所以用ORACLE存储是不成问题的。
关键是在设计时需要对表结构进行认真的规划。
这两年用JAVA的程序员比较多,而JAVA基于面向对象的思想,通常仅仅把数据库作为一个存储工具,而数据库本身的强大工具,如ORACLE的物化视图、动态游标等神器很少得到发挥。
MES作为一个“执行”系统,有大量的存储设备的操作,这些操作通常基于关系型数据库实现,很难通过内存优化得到本质上的改进。
而所谓大数据,往往是针对数据的统计分析需求。
关系型数据库针对统计查询,有一个简单的优化法则:所有过滤条件(WHERE)、分组字段(GROUP BY/MIN/MAX)、排序字段(ORDER BY)必须使用整型数据。因此我们在设计数据库表结构时,必须思考哪些字段需要做统计分析,如果需要则建立对应的字段映射。或者建新的表,专门用于存储整理后的数据,然后编写计划任务和存储过程,将业务数据转移到利于统计的新表中。
与其花大量时间、精力、费用在不知所谓的新技术上,不如老老实实地了解业务、分析数据结构、编写数据处理算法。制造是个苦活、累活,老老实实做事并不丢人,犯不着和互联网公司比,肯花心思的话老工具也能玩出新花样。



没有评论: