数据分析应用是真正能够直接解决企业问题的,是显露在外可以直接观察的部分,但是在这之下有很大部分支撑数据分析应用的就是数据管理技术。数据分析应用需要一整套的处理和加工过程,数据就是原材料,需要把数据有序地存储和管理起来。然后是数据的整理、清洗、集成,这个过程主要由数据工程师(DataEngineer)来完成,最后由数据科学家借助数据分体的工具和平台根据业务问题等实际需要采用不同的算法和方法等进行数据分析。大数据管理其实就是支撑数据应用的平台的管理技术
最早数据存放在文件里,没有中间件进行数据管理,数据的存储和读取完全由应用软件完成。由此也造成用户无法专注于应用逻辑,而且还要清楚数据管理逻辑。在此过程中发现有越来越多共性的需求,从而提炼出数据管理技术,作为独立的中间件形态。从文件到数据库的技术过程最早是百花齐放的,类似网络数据库、层次数据库,到70年代突然只剩下关系型数据库了,其背后的逻辑就是应用驱动,因为在70年代只有银行愿意为数据库的技术买单,现在数据库技术的许多概念都是源于金融体系。数据库有一个很重要概念transaction,即事务,需要保证数据的ACID,任何一个操作要保证其原子性、一致性、持久性、隔离性。同样是在应用驱动下,后面又出现了很多种类型的数据库,因为只有一种关系型数据库无法满足所有需求。如有些数据分析的时候对数据库写入操作很少,但是有大量复杂的读和查询的操作,数据仓库技术就出现了。2010年左右大数据技术的出现,因应了新的数据类型或者是数据的使用场景,各类NoSQL和NewSQL的数据库开始逐步涌现。
大数据管理技术由来
大数据是应用驱动的,传统的技术满足不了应用的需求,就需要找到新的数据管理技术来解决,这些新技术统称为大数据管理技术。那么大数据管理技术又是怎么来的呢?
Google是最早尝试使用新技术来满足业务需求的公司,Google搜索先要把全世界的网页扒回来存下来,然后把关键词抽取出来,对这些网页做排名,在线搜索的时候要根据用户输入的关键词找到相应的网页,这里怎么把网页定位出来,这些用传统技术都不能很好的解决。Google抓取回来的海量数据用传统的数据管理技术已经无法存储,所以Google第一个搞出来的是GFS(Google File System)即Google的分布式文件系统,可以把小型机的内置盘连在一起,就像集中存储一样。Google的GFS存储的不再是单个文件,所有的数据是大批量写进去、大批量读出来,没有很多随机的访问,也可以做块的读取,采用分布式小型机存储,通过MapReduce的分布式技术框架来支撑大规模机器的计算。搜索的时候根据事先建立的索引,从存储结果里面去找关键字key,对应的value就是要找的网页。
所以在数据库方面Google先研发出了BigTable,BigTable现在开源版本叫HBase,BigTable与关系型数据库的区别主要表现在两方面:第一,它支持key/value的查询,通过一个键可以找到相应的值,而不需要复杂的sql查询;第二,每一个键对应的值有很多,一个关键词会有多少个网页,每个网页需要存储的内容大小和网页的复杂度都不一样,关系型数据库表结构根本没法设计,所以在BigTable里引入了列组,每一行数据的列数都可以变。Google所有的这些创新,也都是根据自身业务的需求、数据的特点,找到适合的解决方法。Google本身的技术堆栈也在演进,在14年已经放弃使用MapReduce了,数据存储管理的工具BigTable现在也不用了,Google已经又有新的技术创新。
大数据管理技术的特点
今天的大数据世界到底是什么样子?从哲学的观念来看,世界就是合合分分、分分合合,就像之前有网状数据库和层次数据库等,逐渐演变成关系型数据库一统天下,后来又关系型数据库分裂成了多种数据不同的管理机制。
这方面Apache的开源项目大概归成四类:第一类是数据管理,主要是数据库相关的技术;第二是数据分析框架,从下往上依次包括资源管理、计算框架、分析算法库和任务工作流等组成部分;第三是数据工程的工具,包括Flume采集工具、Sqoop导入工具、Kafka传输工具等;第四是系统管理工具,有分布式协调、系统监控。
pache开源项目上的发展现状背后是什么驱力的呢?第一是应用驱动,所有产品和服务的发展其实都是应用驱动的。如果今天有公司说研发出通用的数据库,这与现实趋势是背道而驰的。第二是生态化,每个组件的应用过程都有特定的场景。比如MapReduce框架背后的假设实际上是每个算法可以实现对数据的线性切分,线性切分之后在每个部分进行同样的分析,然后再把各部分的结果线性组合。Google之所以搞出这套框架,是因为文本数据的处理上可以对数据进行切片,切片的每块数据可以相对独立的计算。但很多情况下通常并不可以这样来操作,比如社交网络的图数据,如果把图数据分割在十个节点上,原本相互联通的两个节点很有可能就被切断了,因此需要类似GraphX的框架专门支持图运算。所以,最终会发现所有的技术都只能解决一些特定领域的问题,或者是在某一个垂直方向上它具有一定的泛化能力,一个完整的大数据架构需要不同的组件拼成一个完整的生态。第三是开源化。现在很多的产品都是开源的,开源背后的商业模式是什么?将来真正能形成一个产品吗?科学研究需要一个转化过程,首先从科学变化成技术,然后是技术的工程化后变成产品,变成产品后可以带来商业回报,才能让整个项目持续下去。今天这些开源产品背后大部分可能就是一家公司,但是目前开源项目的盈利模式仍然不是很清晰。所以开源社区作为一种趋势往下会如何发展,跟商业化怎么结合,依然是需要不断探索的问题。
大数据管理技术的发展趋势
大数据管理的技术发展的背景是从“互联网”到了“互联网+”,即从消费互联网向产业互联网发展。以前互联网应用的领域主要在搜索、电子商务、社交等几类当中,现在已经渗透到一个比一个复杂的领域:企业管理、政府治理、公共服务、现代农业、智能制造、自主可控。我们国家自主可控强调得较多,但是在工业领域的数据利用水平依然很落后。其中主要面临两大方面的变化。第一是人才的变化,以前用大数据是互联网公司的复合型极客,这些人有很强的数学功底、编程能力、数据管理技术、分布式计算技术,同时掌握领域的业务知识,是具备四大方面的全面型的人才。在产业互联网领域里的人更多的是熟悉领域业务知识,而计算机能力真的很有限。第二是数据种类的变化,以前互联网领域是大量的文本数据、社交数据、多媒体数据等,而产业互联网领域是大量的传感器产生的实时数据、企业内部的业务过程数据,大量的非结构化工程数据、仿真数据、设计的CAD数据,这些数据跟传统互联网的数据都不太一样。目前开源产品或项目基本是针对传统互联网数据的,在产业互联网领域并不能很好的适用,这就是今天大数据管理技术的整个发展趋势。
工业大数据管理技术的驱动力
工业大数据管理技术的驱动力概括起来就是“加减乘除”,加法就是要提质增效,也尝试拓展更多的业务;减法就是要降低成本、次品、和消耗;乘法就是要做一个平台把所有供应商的数据都整合到一起,使得所有的业务和上下游可以更加有效协同;最后,除法就是希望能够通过平台使得供应链各环节可以精确的分工,实现轻资产的运营。
前面所提的加减乘除都是工业的业务变革,从业务角度上实现加减乘除,必然会涉及到信息化的部分。信息化与大数据是有区别的,大数据永远替代不了信息化,信息化系统与大数据系统是并存的。传统信息化做的是数据、流程、业务的电子化,数据只是其中一环。具体到数据包括两方面,一是OLTP的数据,即支撑业务系统的数据处理;二是OLAP的数据,即数据分析,除去流计算,大数据绝大多数的应用场景是在数据分析部分。所以信息化和大数据本身是两个层面的事,数据收上来后采用新的方式帮助业务目标的实现,通过这样的过程提高效率。但是更好的维度是通过数据的分析让工业生产和业务变的更智能,发现和找到别人不知道的知识。
数据分析基本上可以分成两个层次,第一是初级分析,第二是高级分析。初级分析是传统企业的BI。高级分析包括两个层次的分析,第一个叫预测性分析(Predictive Analytics),通过数据分析预测未来会变成什么样。第二叫“What-if Analytics”,如果预测的结果不好能否通过控制调节结果。
工业大数据分析有别于商业大数据分析。商业大数据主要是对用户,分析用户需要的业务,比如说阿里分析可以给用户做推荐,分析用户购买某商品后可能买什么,并推荐给用户相应的产品。而工业大数据背后支撑的是物理机理模型,通过数据分析解决工业相关的问题也需要满足一定的机理。商业大数据通过相关性分析就非常有帮助,而工业大数据只有通过因果性分析才有用。如果一台机器出现故障了,故障的原因一定是能找到的,如果找不出来,可能会是两方面的原因,一是我们今天对物理世界的探知能力还不够,也许有新型的传感器就能解决,因为目前已知的变量里面还没有能够表示相应的原因。二是今天我们的认知能力不足,也许变量已经有了,但是变量间非常复杂的合成过程仍未找到。工业大数据分析就是尝试把后面的原因、规律找出来。
在我们现有的实践中,工业大数据的应用基本上可以归结为三大类:一是与设备维护相关,二是与运营优化相关,三是与2C的消费品营销与设计反馈相关。这三个方面也只仅仅是工业大数据应用的冰山一角。
工业大数据到底是什么数据
传统工业可以分成信息化和自动化两块,信息化收集了大量数据,自动化也有很大进展,但是自动化域的信息化做的不够。工业实时数据库里存放的数据是不是真的已利用起来以及怎么用?实时数据库和关系数据库在写入的能力上相关两个数量级。海量的工业数据可以定入实时数据库,但要存放到关系数据库必需降频。但很多时候机器设备的数据大概要到ms的精度才能分析,进行故障诊断,像鼓风机的频率是4k~8kHz。传统的数据库管理技术并没有很好的解决这类高频数据的存储和管理,所以传统信息化领域并没有很好把自动化域的数据管理好。
工业大数据主要来源于机器设备数据、工业信息化数据和产业链跨界数据。今天做工业大数据分析,不仅要看自己数据还要看别人的数据,比如优化供应链的时候还需要市场销售的数据、供应商的数据等。风电优化分析除了利用风机的数据,也需要结合气象的数据。很多外部数据原来工业界从来没有尝试过管理些这数据,这是大数据分析的时候传统工业上管理数据的机制遇到的一些挑战。
工业大数据的特点是什么
第一,多模态就是非结构化数据。区别于传统互联网领域非结构化的语音、文本、图片、视频等,工业领域非结构化数据更加复杂,如仿真数据、CAD的文件等。模态是指同一家公司的不同仿真软件和CAD软件,不同版本之间的时间间隔不一样且不兼容,不同学科使用的设计软件不一样,如在航空航天里面有上百种的软件,数据的格式都不一样。
第二,数据通量大。工业领域大量的传感器是实时数据,高频采集使得工业大数据分析不能在以前秒级、分钟级层面进行分析做图表可视化展示。工业大数据需要做到毫秒级甚至毫秒级以下的数据采集和分析。
第三,多学科协作。例如在卫星上要加个部件或减个部件关键是看重量,如果重量绝对不能减,总设计师需要多学科协作,学科之间数据集成与融合,找到相应的规律,确定需要加的部分和减的部分。其中工业领域的数据集成,有别于关系型数据库里基于数据表结构的集成,主要是指语义集成。例如一个时间序列的片段代表了某种故障,而该故障曾经在维修报告里出现过,这就需要能把语义提炼并关联起来
工业大数据管理技术的难点
工业大数据的工作步骤包括三个层面:
- 第一个层面是数据的存储管理,即建立数据的采集体系、数据持续采集与清洗、工业数据存储;
- 第二个层面是数据治理,包括机器数据建模与元数据管理、数据质量分析和数据关联与语义集成;
- 第三个层面是数据分析应用,通过可视化进行数据探索、数据分析和结果反馈。
所以现实中各种各样的问题导致今天的数据质量存在大量问题。如何来解决这个问题,大家也都在研究中,陆续将有一系列的方法来解决这个问题。
多模态数据语义融合的目标是构建具有制造语义的知识图谱,以工业领域的BOM为核心,基于知识图谱建立结构化与非结构化实体和语义标注,构建具有制造语义的知识图谱,因为在BOM里很多实体关系比较清晰。通过知识图谱的构建,跨领域本体可以从语义标注中找出相互间的关联性,时间序列片段带有的故障码就可能通过知识图谱识别和发现。
工业大数据管理系统研发的要点
工业大数据系统的核心在于“效能+易用性”,首先要保证系统的速度足够快、系统足够强,即要满足高吞吐量,事务处理模型全局的一致性。第二要保证支持数据的变化、人员的变化,保证系统好用,保证系统在工业领域都能用起来,即系统能够支撑起专业化查询和分析引擎,易于管理和维护,可以水平扩展,并且具有容错和故障恢复的能力
工业大数据管理系统的建设包括战略层面和战术层面。战略层面上首先业务目标必须明确,其次是系统架构要通盘考虑,第三是业务需要充分参与,仅有信息化人员的参与没有业务人员是不可能建设出符合业务需求的系统。
战术层面有三方面:
- 第一是数据要尽早收集,即使没有很好的机制,用文件的方式也要先把数据存下来,没有数据或者只有三个月、一年等少量的数据,根本无法满足分析的需求。
- 第二是应用小步快跑,应用需求明确了就可以根据已有资源先实现,很多应用是不依赖于大数据平台本身的,用关系型数据库甚至是Excel就可以直接实现。
- 第三是人才系统培养,将企业内部的人朝复合型人才去培养,外部人才和服务可能都因成本过高企业难以承受,而且人才培养是长期的,可能至少培养一年到两年才能达到较好的水平,所以业务要尽快和充分的参与进来。
工业大数据平台的实施路径一定要在业务和数据的双轮驱动下进行。业务层面需要牢牢把握信整体业务目标、具体业务提升和转型方向、业务流程改造目标以及业务流的映射。数据层面需要围绕数据同步、交换、关联和集成、数据质量、数据的存储、管理和使用、以及数据的特点和规模与来源等方面。
参考资料:
- http://www.36dsj.com/archives/74683