Watson。Watson本质上是一个巨大的类人的大脑。原则上构建了很多认知的能力,与人对话,有分析引擎,通过学习和一些技术手法,把不同领域里面构造的技术通过服务呈现出来。例如,Watson Doctor考过美国医生资质,理论上它拿到这个资质后是可以行医的。但IBM目前不会走这么远。另外一类,Watson有一个curator for financial data。在投资方需要对某些特定的领域进行个股研究的时候,需要收集各个股的相关资料,包括报表、年度报告、公开的新闻报道、分析师的分析报告等。这些收集起来的数据非常繁杂,大量是属于半结构化、非结构化的数据。它就是要把这些资料分门别类地理解,抽取关键信息,交给后台的分析引擎,分析引擎再做出一个决断。
就这些所有的数据来看,用得比较多的这些数据,最重要的是数据增长快、非常巨大,种类繁多。就如刚才提到的Watson curator for finance data,虽然拿到的数据是别人做的,但最重要的应用的目标是分析。拿到一堆数据,重要的是怎样拿到里面的价值。挖这个价值的时候需要大量地使用分析引擎、分析工具。就像在一个湖里捞鱼,你要用很好的工具,是用炸药炸还是用网子捞?捞一些小鱼还是大鱼?这个过程中间必须要有针对性的处理。要点是说看到了这些数据,在一个大湖里面,要把有价值的东西取出来才能支撑你的业务。假如跟京东谈,最终的目标是它要使得你下单买东西,这是最主要的核心业务。它一切的分析工作都是围绕着,怎么让一个个体能够更方便、更快捷、更不过脑子地做决定买一个东西。我们知道买东西大部分都是冲动性购物对商家是最有利的,最终都是围绕这个目标进行的。这里对于分析的Insight,把数据之间的关联找到,这是一个大的趋势。
Systems of engagement。传统认为,信息系统本质上是交易系统。把数据提交给后台的数据库,数据库进行交易处理,永久性存储起来,用可备份的方式使得这个数据不会丢失,这笔数据的交易就完成了。数据系统关心的是数据被永久存储且不会消失,这部分叫Systems of Record。Record是记录,是交易型的、记录型的。
社交媒体、移动、云服务不断发展,比较有代表性的就是微信和银行。微信不仅是提交一个数据存储,而是它有很多关系的产生,人和人之间、数据和人之间、人和系统之间、系统和系统之间都产生大量的数据,这些数据的存储、管理、后台的支撑、经常性的变化,它可能对交易的完整性不那么在意。相对来说,发一条微信丢了再发一条,可是在银行存一笔钱,银行说丢了,大家肯定不干。银行对数据交易的完整性要求非常之高。这个就是产生了Systems of engagement。
Systems of engagement接下来是分析洞察。当你有各种System Insight,就是分析洞察,像构建的数据库,当有大量的交易信息,股票交易信息和大量的社交媒体信息,这就属于System Engagement。这两类信息融在一起,找出之间的关联,发现隐藏的关系,这个时候就到了System Insight。这是IBM和若干公司都非常一致的看法,这是一个基本的概念。这是传统到现在到未来的变革。未来变革大量使用的就是分析引擎。
这里涉及的东西很多,跟中间件和数据关系,虚机、虚拟化的环境等等都相关。要处理金融型的东西,比如证监会能够以消息的方式传给你,每5秒钟传来一组数据,这组数据包含过去5秒钟在上交所发生的交易的数量,谁下了多少单?或者大批次的怎么样的情况?收到了这个数据,如果没有合理的一套系统去把它存起来,假如丢了,可系统又不知道,在后续使用系统分析时就会有大问题。这笔数据看不到,在做一个重要决策的时候,这笔很可能是非常关键的。系统不仅仅得考虑随便拿一个数据放进去就可以,要考虑这个数据放上去是不是能够不丢,考虑在分布式环境下面有备份、有副本的时候,副本之间是完全一致的。再上面才是要构建的Systems of engagement,或者是Insight这些应用,当你建造这么大的数据库的时候,未来的应用要往哪方面走?
以上谈的是从数据角度谈未来的发展,讲洞察体系是未来的一个方向。之后是从云的角度来看,需要支持Systems of Insight,它的数据工作的模式和Systems of engagement并非完全一样,所以未来需要的方向是朝着更多地使用内存,更多地使用CPU发展。CPU很便宜,当数据量大的时候,可以用压缩,传统压缩以后,发现解压很困难、很痛苦。现在新的做法,把传统的数据全都压缩,压缩完了把它提到云里,在内存的集群里面进行解压,或者把它进行加密,加密后提到内存里进行解。因为CPU现在变得非常便宜,用CPU的代价替换掉存储的代价。
Data Lake是一个新的概念。十年前就说海量数据了,从英文来讲没有海量数据这个词,对中国来说数据量大了这就是海量。
Data Lake是我们经常讲,外面有很多人也经常讲。但是他讲的时候,把所有东西都放在Hadoop里面。IBM讲的时候,你有很多东西是放在Hadoop里面,你有很多是放在选择关系数据库里面的,你有很多东西是放在你选择的Graph数据库里面,你还有一些东西是选择直接放在文件系统,放在Object Store里面。所以有很多不同的东西,不同的技术它适合处理存储、分析等等特定的类型的数据,不是所有的数据都可以用Hadoop搞定,这时就会面对一个情况,有很多不同的数据“库”,来之前我把这个“库”去掉了。数据库是非常固化的概念,里面有乱七八糟的东西,英文里面有相关的词汇,中文也有很多相关方面的词,只是行业里面目前还没有刻意的把它提取出来。有这么一些数据存储的地方,不同的技术实现的,当堆积在一起的时候,如果没有很好的机制管理起来,好比现在要构建的大数据库,一部分是交易数据,关于股票的,这里面一定会有股票的号码,交易的量等等,至少股票号码本身是哪一支股是在的,但是谁参与交易是不在这里面的,如果在里面也是脱敏过的。但是这些数据拿过来,你最好存放的地方是在关系型数据库里面,但是要放在Hadoop里面是不是可以的,是可以的,在上面可以构建新的查询数据,目标是要根据某个具体条件拿到某个股或者某一些股的具体信息,所以要有SQL查询会非常的好。但是在网上收了很多关于这家公司的URL,这些URL是不是也要放到,如果仅仅是URL本身放到关系数据库里面没有问题,但是如果这个URL里面的内容也把它扒过来,那这个时候扒过来的东西放到哪里?还放到关系数据库吗?假如里面有大量的文档、大量的图片,还放在关系数据库就不同意了,放在Hadoop里面是不是合适呢?也不一定完全合适,这时不得不考虑别的技术进来。换句话说,你是没有办法的,必须要很多很多数据的存储技术、管理技术合在一起。然后当合在一起后会发现,这些数据来源不一样,它们生成的方式不一样,时间段不一样、频度不一样。在这个过程中间,你会发现,要从交易数据库里面去找到相关的资料,得做很多思考才可能找到关键的地方进行差选,之后才能拿回来,对于一个分析数据大量手工在里面,效率低也易出错。于是不得不把这些数据之间的关联以某种形式把它们组织起来。数据湖很重要的是,能不能有一个数据的目录。这个目录是以这家公司为组织的目录,以交易量为组织的目录,以发生时间为组织的目录,以地点、形态,或者是以行业等等,所有这些组织的目录要有,这个组织的目录谁来构建?就是在构建数据湖的时候需要构建出来的。
No SPOF,讲容错是说一个数据进来,不管哪个环节出了问题,系统都能够自动地恢复,恢复是有度的,如果我存了三份,分别把三份存在不同的盘、不同的机器节点上面,在三个不同的机器分布在不同盘上面,同时出错的概率是非常低的,这里面很重要的节点,当我这个系统,如果我把一个提交给你在系统的每一个层次里面任何一层上面都不能只有一个单点来应对,在第一版的Hadoop上面就是一个单点,它的NameNode就是一个单点,二版的把它改变了Active/Passive,也会有一些问题,这个是说我这个节点死了,马上再启动另外一个节点,这中间对于规模比较大的,频度比较高的应用,这个中间启动切换的1秒钟或者0.5秒钟就有大量的数据传上来,就可能丢失了。