1. Hi区块链首页
  2. 资讯
  3. 技术指南

Minerva:把大数据搬到区块链上

Minerva:把大数据搬到区块链上,基于Drill和IPFS构建大数据区块链系统

微信、抖音、头条等少数几个超级APP,占据了用户大部分使用时间,而区块链创业者们的大目标,就是要用“共识”重塑这些应用,掀翻BAT的桌子。但梦想照进现实,且不说各种性能等细节问题,有一个如“珠峰”一样大的问题就摆在面前,那就是“大数据”问题。

上万亿的文章页面数据、每天百亿级的用户行为数据、十几亿用户构成的庞大关系网络数据,而基于这些大数据构建的AI系统,正是巨头们的核心竞争力所在。没有大数据系统支持,根本无法造出主流的互联网产品。要想革巨头们的命,就要先能把“大数据系统”搬到区块链上。

看看现在的区块链系统,ETH存1k数据,按照当前价格差不多就要10块钱,而ETH全部数据累积至今,也就几百G的量级,根本无法支撑PB、EB级的大数据应用。至于一个账号就要几十块的EOS,也好不到哪儿去。当“共识”带来的效率提升,远低于“去中心化”带来的成本提高时,这样的系统根本就是空中楼阁。

现在轮到IPFS出场了,IPFS可以用极低的成本,存储海量的文件,难道不算是大数据系统吗?我们还是要分清楚文件系统和数据系统的区别,文件系统是用来存图片、视频之类文件的,而数据系统,则是如MySQL之类存放各种工资表、信息表用的,两者定位和设计都截然不同。 

当然,很多数据库系统也需要把信息存储在文件系统中,是不是能用IPFS做它们的底层存储呢?典型的如BigchainDB、OrbitDB等就是基于这样的思路设计的。这类系统一般用去中心化系存储系统,作为MySQL、MongoDB等数据库的存储底层,基于订阅等机制保证一致性。但这些数据库系统在处理海量数据时,往往都存在性能问题,还有如BigchainDB引入了区块链交易等概念,导入导出数据都不是很方便,存在明显的易用性问题。

最理想的情况,当然是把大数据系统的代名词“Hadoop”,迁移到IPFS上了,事实上,最近一两年也有很多文章提到过这个想法。但是作为一个发展了十几年的系统,Hadoop从技术到生态都已经非常庞大,融合了众多互联网巨头们的贡献,要换底层存储系统,基本相当于重新开发一套,难度之大可想而知。所以,大家也就说说而已,估计BTC不到10万刀,就不会有人做这个事情。

情况大概就是这个情况,币价才是链圈第一生产力,大家等个几年,说不定就有人做这样的事情了。

但现实总是出人意料,作为大数据领域扛把子的“Hadoop”,最近几年居然是大家口诛笔伐的对象。好比要统计访问日志,就需要把web服务器日志导入到Hadoop存储HDFS上;需要处理MySQL数据,也要把数据先导出成一定格式,然后再导入到Hadoop里面,等等诸如此类,这就是大数据码农经常要做的工作,俗称ETL(抽取/Extract、转换/Transform、加载/Load)。这样的工作多了,影响到码农们喝咖啡了,于是大家提出了“NO ETL,NO Hadoop”的口号。

不管你的数据存在MySQL里,还是云磁盘上,还是你自己PC上的excel表格,我统统能“直接查询”,不再需要导来导去。当然,这样的系统还需要具有Serverless特性,就是好比你的文本格式的文件就放在磁盘上,我也不需要搞到数据库里建个索引啥的,也能直接用SQL查询。

减少用工需求,革自己的命,一向是码农界的优良传统。于是Presto、Drill、Impala等一大批NO ETL,Serverless的大数据系统纷纷登场,他们都声称能够“直接”SQL查询存在HDFS、DFS、NFS、云磁盘、本地磁盘等等,所有存储系统上的数据文件,支持csv、JSON等各种格式,当然也能查询存在传统数据库的数据,无需对数据源做任何额外的操作。这类系统的代表Google Dremel,可以在秒级处理PB级别数据,不仅No ETL了,速度还更快了。

如果你想支持新的数据源,写个插件就行。

如果你想支持去中心化存储IPFS,做个去中心化的大数据系统,写个插件就行。

于是, “Minerva”诞生了。

我们选择了Drill为基础,做IPFS存储插件(Drill IPFS Storage Plugin),主要是因为这个系统分布式做的最彻底,连描述数据表字段含义的Metadata store也不要了(注:这个一般都还需要中心化系统支持)。站在一堆神级码农的肩膀上,几个童靴三四个月就搞定了一个版本。

hUBYqsa1yw6CUMooTvAsNqyg0ygslKvBqW1LseMf.png

图1 Minerva系统框架

咦?那个横在区块链前进道路上的“珠峰”,怎么就变成小土坑了。。。。。。嗯,就是它,之前不小心影响到码农喝咖啡了,你看现在@#¥@

使用Minerva,你只需要一行命令,“ipfs add”,把需要处理的访问日志、csv表格等等大数据文件,添加到IPFS就行了,然后你就能愉快的使用标准SQL进行各种查询操作了,无需任何额外工作。基于drill强大的功能,你甚至还可以联合查询IPFS上的公共数据和你自己私有数据库的数据,也无需额外操作。

mu9pmrL9WLX7F8glgU6Qwg5HmC58DM4iooD3o7qq.png

图2 Minerva功能

目前Minerva已经开源第一个版本(https://github.com/bdchain/Minerva),Drill社区建议在性能测试稳定后,进入Drill正式版本库。IPFS社区的awesome-ipfs也做了收录推荐(https://github.com/ipfs/awesome-ipfs)   。

1aF2H3TSpUS6tuWczItB1Vta5t9n0b429vdHumZF.jpeg

图3 awesome-ipfs收录

由于区块链上的大数据系统特,别适于做大数据分享,就有团队基于Minerva做了一个基本的大数据分享demo。

ML1GnI178nJnM5mXYqY6x3y7mBiiR1Uwqf0VPXAK.png

图4 datahub.pub大数据分享系统

Minerva目前只是完成了“区块链大数据系统”从无到有的一小步,其本身也存在稳定性等问题,实现的也是最基础的大数据查询分析功能。后续除了继续改bug外,还会拓展通用计算等功能,当然,更重要的,还是要有真正的需求来驱动。

声明:登载此文出于传递更多信息之目的,观点仅代表作者本人,绝不代表Hi区块链赞同其观点或证实其描述。
提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。