计算能力是大数据的基础,计算发展到一定规模,沉淀的数据就可以对外输出能力。
从自身的数据工作历程,讲述对数据和平台的看法。总结一些经验,并且分析在新的热潮下,数据时代基础平台的展望。主要体现传统大数据领域为何探索数据交换,遇到的核心问题,以及在区块链中如何解决这些问题。
初碰大数据
我是从08年开始接触大数据,当时是替焦点网做一个分析平台,预测广告主未来投放预算的倾向,为业务决策提供依据。用到了爬虫、数据挖掘的技术。尽管整体数据量和计算量不算大,但是多样性方面已经算是是大数据的一类典型应用。
第一次感受计算的震撼
09年朋友推荐加入了阿里云,当时叫集团研发院,开始负责一些分布式计算业务的落地。那时环境比较简陋,做一个应用需要把整个飞天代码checkout,测试环境部署也都需要自己写一些脚本去自动化。PG文件系统也很慢,速度只有百KB。就是在这样的环境下,我们搞出了第一个基于飞天的数据渲染项目——地图。这个项目算是第一次感受到用并行计算改变效率的震撼,在阿里第一次技术嘉年华,马云还亲自看了演示。
其实当时最大的感慨就是一个集群中同时设计OLTP和OLAP两种计算框架的价值。前者注重事务性,后者注重批量处理能力。这样的好处在于将各种计算需求可以在统一的调度体系下管理,使资源利用最大化,未来云计算的成本才能可控。尽管至今阿里云仍然为此目标努力,现在看来,这个架构的设计确实奠定了未来在大数据领域持续发展的基础。
奋战大数据计算
09年底开始尝试去替换支付宝和淘宝的数仓体系。这里要提一下,曾经博士说阿里云的愿景是成为数据分享第一平台,当时我完全不理解。深入淘宝数据业务之后,才逐渐意识到数据交换的意义。
当时为了解决淘宝数据平台计算需求,有个先遣队先把RAC集群换成了Hadoop集群,而我们的任务就是用飞天的SE_offline替换Hadoop的hive。 SE那时刚起步,连UDF都不支持,这一点就是很大门槛。当时准备很多资源去用C++实现UDF,所有代码都得进入主干与飞天一起编译才能生效。另外还有语法兼容问题,性能问题,功能问题等。这个过程中我们看到数仓业务的复杂性是超出预期的,直接从计算引擎切入迁移可能代价很大。
所以下一回合,我们从DW和计算引擎一起入手,此时SE引擎已升级为DE。DW层面可以去兼容日常的业务生产调度,引擎去支持更多的语法解析和执行计划,同时将一些兼容性问题可以包装在DW和DE之间,下游用户只需考虑作业的迁移,同时可以享受到我们数据模型优化带来的成本缩减。
2010年底我们发布了一套数据开发套件,囊括业务调度、开发组件、BI工具。不过这是一个很激进的方案,有些脱离业务实际,因此没有得到应用。
数据交换价值初现
2010年开始投入阿里金融的小额信贷项目,在我看来这是一个证明计算和数据价值的最佳落地机会。金融业务刚起步,信贷模型不难,两百多个query用DE去支持更可行。同时需要很多用户、订单和交易数据,涉及异构平台的抽取、清洗和规格化。
当然这里边的挑战是锤炼计算引擎,只聚焦在这两百多个Query作为开发目标,甚至多表Join都延后支持。也凸显了自主开发计算引擎的难度。所以那是出现了另一个DE方案,基于HIVE的计算,利用hive的语法解析器和执行计划,通过适配层在飞天跑起来。这个方案可以直接支持HQL语句,而且可以把精力省出来进入执行优化阶段,最重要的也许是我们看到了把更大规模的计算淘宝DW迁移过来的希望。
阿里金融用了一年时间跑起来,不但把计算引擎夯实,而且通过数据的融合,支付宝、淘宝数据、外部征信数据、旺旺数据等等,使得从0起步的阿里金融迅速实现了对千万商家的高效小额贷款,而且坏账率极低。收益高、周期短。
淘宝DW迁移,平台的统一,确定了数据交换之路
12年集团CDO成立,淘宝数仓的迁移成为一个BU内部的事情。逐渐成熟的计算引擎和数据业务团队在一起,共同完成一个目标。
那时淘宝的Hadoop集群已经壮大到一千多台。在13年,DE顺应开放战略已经升级为ODPS,成为一个支持多租户、资源隔离、安全容器和数据授权的数据PAAS平台。上层开发平台已发展到涵盖业务调度、开发工具、生产监控、元数据、数据质量管理和数据同步等完备的数据开发和管理体系。即使如此,当时还是先选择DW中某一个代表项目为迁移目标。半年后,数据魔方的计算作业全部从Hadoop迁移到ODPS。
这个项目的成功奠定了规模化迁移的工作基础,后续集团各BU大部分项目都陆续成功迁入。而底层飞天单集群规模已达到5k,通过ODPS的跨集群调度可以控制多个集群,上层开发平台统一管理多个ODPS实例和老的Hadoop集群。就这样数据的使用者就像操作一台计算机一样使用数万台服务器。
基础设施的完备使得数据业务爆发增长,也带来了性能和成本的挑战。平台的统一使得我们可以获得更多更结构化的元数据,新的数据治理和生产管理体系陆续推出,解决生产优先级、资源分配、监控、质量、重复计算、冷数据等一系列问题。
计算和数据的统一以及计算能力和治理能力提升,实现了数据的存和通,价值输出成为可能。13年正式提出了DXP计划,以我的理解,数据流动起来才能产生价值。但是安全性是交换的很大挑战,当时并没有提出数据买卖的概念,而是以数据SAAS应用的形式在应用市场提供服务,使内部数据的价值可以对外输出,同时外部的应用开发者也会通过发布应用而回传相应的数据。另一个出口是阿里妈妈的标签市场,作为一种数据成果的交换,解决数据安全的同时满足营销场景的交换需求。
屡试交换,仍然很难商业化落地
我回想起DXP没有成功的原因:安全性,商业价值,尽管这个生态参与者足够完整,但是积极性不高,之间不够互信,价值不能达成共识。数据的提供者总是担心自己的核心利益受损,因为数据不能追溯和审计;应用提供方担心自己的核心算法泄露,无法保障知识产权,所以只提供黑盒程序;平台担心第三方程序的安全性,层层沙箱和限制策略;等等其他。这些造成了项目效果有限,客户需要一个个BD,也就很难形成一个高效自运转的业务体系。
15年在数据赋能的浪潮中,我认为是数据交换的又一轮尝试。新的平台不但从功能上扩展到了BI、可视化领域,还首次以服务的形式开放数据。这样形式更灵活,数据使用者可以在不碰到明细情况下,去分析用户的行为和画像,甚至可以定制训练分类算法模型。这些新的模式我觉得在商家业务落地更好一些,因为有较成熟的电商业务和广告业务,以及淘宝的开放平台和应用市场。但是在2016年的商业化效果还是没有达到预期,那时我深刻意识到ODPS的使用成本真的是依赖数据的中小企业或初创业务板块发展中面临很大的一个问题。
这里提到了中小企业,那年我结束阿里的工作,加入另一个公司——乐视,我期望继续探索数据交换带来的价值。
中小型互联网企业对数据交换的需求
虽然那年乐视可以说比肩BAT,但是从数据基础设施来讲,和中小型互联网企业所处差不多的阶段。这里只谈技术相关的内容。内部是计算能力,由于资源不能有效隔离,集群调度性能,以及生产管理的缺乏,为了互不影响,只能拆分集群。这就导致数据孤岛现象越来越严重。以及数据架构的不统一,内部数据交互都比较困难。有一次我还在评估把一些小的独立数据业务放在阿里云上,算了一下,挺贵的。
外部提一下PDB广告。乐视的流量利用率不高,一方面很多广告订单消耗不完,另一方面又需要接入其他ADX去填补剩余的流量。陷入这种窘境是因为广告主对流量的偏好,热点流量不足。有些他们会请第三方监测机构来评价流量,如何不符合偏好需求,广告主就不会为此付费。由于没有检测机构DMP的数据,评价规则成为黑盒。乐视在前端埋点很多监测代码,流量数据源源不断外流,但是却不掌握效果口径。在我看来,秒针、Admaster这些监测机构成为巨大的数据中介,极端点理解,其实把属于每个人的行为数据,再加工成画像数据,卖给媒体和广告主盈利。难怪当年淘宝商家上云时,第三方检测代码被全面封杀。
那时我们也希望通过对用户的偏好分析,推荐合适的内容,提高流量。这也需要大量的数据去训练模型。当时还希望集团建立统一的标签库,以及推荐、广告、搜索共享的标签库、标签服务,以提高用户偏好的分析能力。但是尽管乐视拥有内容、流量、用户、终端、交易、商品等多种数据,除了内容相关的,其他都很稀疏。
有段时间阿里妈妈过来谈合作,营销的同事希望把部分广告全都包给阿里,不但可以共享阿里的标签,在效果方面也不会被干扰。但是正在推全域营销的阿里妈妈需要乐视提供明细的流量数据。这显然不太公平,我当时没有同意,因为根本无法追溯和审计这些数据的使用。当然最终营销中心也没有批准这个合作。
由此看来,中小互联网公司对数据的依赖有多强。而且这种趋势一定随着互联网+的发展而影响到整个中小企业。他们需要有一个公平的数据交换体系,就像获取水电油一样的便利和公平。
从头再来,区块链能带来的巨大变革
说了这么多,总结起来就是计算能力是大数据的基础,计算发展到一定规模,沉淀的数据就可以对外输出能力。中小企业也很需要计算能力和数据能力,但是没有公平的交换机制,各方没有积极性主动交换和流转。因此数据交换一直都没有行程规模化的市场形态。
17年我看到了改变这一切的机会。8月份我从乐视出来,参与到一个做手机算力的项目中,年底我改为共享计算及数据交换,叫做Gravity。以CDN为例,我想播放一个视频,如果服务方是路由最近的另一个设备,效率是最高的。数据计算也是一样,如果计算节点离需求者最近,在节点足够多的情况下,肯定比集中的计算效率高。而且这些节点不受物理位置的影响,只要有设备的地方都可能互联。这就是为什么有个叫星际文件系统的项目,那我们做的就是星际计算框架^^。使得计算的基础设施成本低很多,而且通过合约共识建立公开受信的网络。
这种模式需要大量的节点,那么为什么那么多人要去分享这些资源呢。这就需要一种互信的激励机制,大家能共同获益,又能防止欺诈。区块链就提供了这么一个新秩序的环境。共享资源的用户会得到权证并永久记录在不可篡改的账本中,这些权证通过流通可以增值,实现了共同获益。用可验证的工作证明和共识机制创建自制环境,行程可信的算力共享和数据交换网络。在Gravity中,利用PoT证明确认矿工贡献的资源,基于可验证外包计算、VRF、PCP机制以及基于Hypervisor的可信运行环境建立。
再说说数据。现在用户的数据都集中在互联网巨头的体系里,以及各路“数据中介”手中,数据资产的拥有者并没有成为数据的主人。如果数据接入区块链,数据也会成为权证被唯一标示,并且公开可追溯。通过流通,数据的拥有者会获益,他们会像对待一个投资渠道一样主动的参与进来。而互联网平台可以通过共享算法和服务以及企业数据来获取利益。所有这些都可以通过账本去审计。最近阿里云在说“坚决不碰用户数据”是底线,其实当然不能碰,就像没人承诺自己不违法一样。就是一些底线是不用通过PR承诺的,而是通过公开的可审计机制去建立可信环境。
最近阿里云不再提数据分享的愿景了,更多去做收入更好的私有云,但是看着城市大脑的推广,公有云和数据交换的梦想还在。而我看到的区块链时代带来的数据交换机遇,让每个人都参与进来,建立公开公平的环境,没有中介,通过共享计算平台,数据像基础资源一样高效流动起来。博士说最难的事情都留给年轻人去做了,对于我们这些还算年轻的人来说,就去做些更难的事吧。