随着互联网的逐渐深入,各家企业的业务线不断拓宽,用户体量也随之不断扩大,大数据逐渐进入到企业的视野。大数据时代对人类的数据驾驭能力提出了新的挑战,也为人们获得更为深刻、全面的洞察能力提供了前所未有的空间与潜力。
大数据虽然起源在美国,但是发展速度最迅猛的的确还是在中国。因为中国有着得天独厚的条件,就是广大的互联网用户群体,这些大量的用户资源给中国企业制造了天然的、独一无二大数据环境。
提起数据量,国内除了互联网那几家巨头,应该就属金融领域的数据量最大、数据价值最高。作为国内大数据范畴内最具代表性的行业之一,金融业无论是从用户体量还是日成交量上看,都位居国内前列。中国银联作为国内金融领域的代表性企业,其背后的大数据技术实力,在一定程度上也能反应当下国内各家金融企业的大数据技术水平。今天,我们就以银联为例,看一下银联这些年来大数据技术的变革以及优化。
那么关于大数据,究竟什么是大数据,这么些年喊了这么多的大数据转型的口号,究竟在大数据领域内做了什么?带着这些问题,InfoQ 记者采访到了在 Kylin Data Summit 上做技术分享的中国银联科技事业部高级主管王颖卓。
1 银联大数据的历程 2003-2007-2012,从报表到数仓,银联大数据转型伊始
中国银联科技事业部高级主管王颖卓提到,金融界对于数据的认识和使用,一直都是非常重视的。在大数据时代,如何利用工具更好地处理数据,怎样把数据更好的应用在业务上,如何将数据变现等,是当下众多企业必须要思考的一个问题。
在 2003 年到 2007 年之间,银联的的数据一直是由需求驱动,业务部门有一个需求就做一张数据报表,特点是数据分散、按需定制、开发周期长。
2007 年左右,中国银联开始进入到数据仓库年代。相较于报表,数据仓库对于用户体验来说是一个巨大的革新,基本上体现在数据发展以业务为驱动,主要有结构化数据集中存储、勾兑整合、服务业务等特点。也就是说,数据仓库还原了数据的本质,以数据本身的特性来处理数据。在建立数据仓库的过程中,更重要的是将以 Cognos 为核心的多维数据分析理念引入进来,从而达到让用户能够自主进行数据分析的目的。
目前,银联的大数据架构主要分为三条技术线,分别为基础数据、数据应用以及数据模型。首先制作报表的工作需要基础数据和数据应用两者协同完成,数据的清洗、加工、预汇总等过程由基础数据完成,报表的定制、查看、下载等功能由数据应用完成。
2012 年,大数据技术逐渐进入到国内,并开始在技术圈内流行起来。同样的问题又被摆在了舞台之上,到底什么叫大数据?大数据跟报表的关系是什么?跟数据仓库的关系又是什么?是不是数据大了才叫大数据?Hadoop 与大数据之间的强关联,是否代表着 Hadoop 就等同于大数据?
王颖卓首先提到,在数仓向大数据平台转型时,没有考虑过 Hadoop 以外的框架。一方面银联从数仓向大数据转型是在 2012 年,业界已经进入大数据时代,几乎没有可以撼动 Hadoop 地位的大数据框架存在,同时代基于 MPP 架构的数据仓库框架,如 GreenPlum 等,难以支撑 PB 级以上的数据规模;另一方面,银联研究院已搭建 Hadoop 平台并开发了一些试验性的应用,取得了较好的效果。因此,我们选择 Hadoop 作为数仓的替代者。
同时王颖卓从银联的角度出发,解释了他对于大数据的理解。他认为在整个大数据年代,有两个理念非常重要:
数据存储层。应该怎样存放数据?银联做的首件事是在数据集中的基础上,做到了数据融合——把整个企业级的数据做了有机融合。现阶段,银联大数据平台里存在的最大体量的基础表已经有 1000 多个维度。基于这张基础表,再从业务视角对数据进行高度汇总,最终给业务人员提供数据服务。因此,从数据存储和加工方面,有别于过去的报表和数据仓库。
数据应用层。报表系统的目的是满足用户需求,只有当用户有需求时才会做报表。在数据仓库时代,更多的是帮用户设计 Cube 和提供多维分析的服务;而用户在这一阶段初步掌握了数据分析的能力。在大数据年代,伴随着平台化和开放化理念的影响,用户开始在银联的大数据平台上利用各种有效的工具、组织多元的数据来满足自己的业务场景,在这个阶段,用户开始熟悉并习惯使用工具来做数据分析。
在不同的场景里,大数据所造成的问题也不一样。通常情况下,分为在线处理、离线处理以及数据服务系统这三大类问题。
在线处理所遇到的问题
中国银联这几年的交易量在逐年猛增,一年的交易记录数突破了千亿。问题就出在这千亿数据里面。现在的用户对于实时性的要求越来越高,要求能够实时查询订单信息、实时进行线上的交易和退单等操作,这对交易数据库来讲毫无疑问是一个灾难。HBase 支持高并发写入及查询的特性,在一定程度上缓解了这个问题。
但是在使用过程中,HBase 不可避免的也会出现很多问题。第一点是便利性较差,HBase 基于 KV 模型和 Java API 进行读写,用户往往需要自行设计二级索引表和读写接口。
第二点是性能上的抖动,HBase 性能确实很好,但是在实际生产过程中往往存在着在查询过程中出现性能抖动,如 73% 的查询在 10ms 返回, 27% 的查询在 10-100ms 内返回,这就给实时的场景带来风险;其次 HBase 集群的稳定性存在问题,其中一个 Server 服务宕了,往往导致整个集群的响应出现巨大波动。
这些在实时场景中,都是无法容忍的问题。
说完了在线实时处理,再回到离线分析场景下。在金融领域,应用最广的还是 Cognos。中国银联也算是资历较深的 Cognos 用户。
但是在用户与数据体量飞涨的现在,Cognos 也存在着诸多问题。比如规模以及可扩展性的问题,Cognos 的单 Cube 文件,大小限制在 2GB 以内。随着现在业务飞速增长,数据量是 PB 级别的增长。Cube 的体积越来越大,Cube 的数量也越来越多,上千个 Cube 如何管理也是一个问题。
其次是 Cube 构建生成的时间越来越长,用户能看到最新数据的时间越来越晚。其实银联的 Cognos 已经做的很不错了,目前支撑着近 3000+ 人次使用,保持着日 Cube 1000+ 张报表以及月 Cube 5000+ 张报表的效率。
但是 Cognos 作为一个闭源产品,其自然也有闭源产品的弱点,出现了一些产品级的问题,自主排查问题的能力较弱;用户有一些个性化的需求,针对产品做二次的个性化定制开发的空间较小。
随着银联业务体量的增大,业务线的拓宽,产品种类和服务类型也随之丰富起来。但是与此同时,每一条产品线、每一条业务线,其中的数据甚至服务孤岛现象越来越严重。由于各条产品线之间数据不通,形成了一个个“孤岛”和“烟囱”。此外,不同的服务采用的数据口径不同,数据质量没有形成统一标准;还有就是用户需要登录不同的网页使用不同的服务,用户体验较差。
数据安全是金融企业的命门,金融企业有必要也要有实力来构建这样属于自己的数据服务生态系统。
在服务层,通过联机双查方式,基本上有效解决和避免了因为某一个集群性能,从而带来整个查询效率的下降。其原理十分简单,即一个查询被客户端强行分为两个,分别访问后台两个不同的 HBase 集群,然后再经由 HBase 集群返回,谁速度快用谁的。
第二点,关于银联离线计算服务的整体架构,架构如下图所示。
为什么要做银联的数据平台分析架构?从金融行业的角度来看,"自主可控"是金融领域对于技术的一个硬性指标,毕竟数据安全是金融企业的命门。因此,金融企业有必要也要有实力来构建这样一个数据服务生态系统。
从整个外围来看,蓝色的这一圈是由银联自主开发的功能性产品,如控制服务、监控、接入层等。中间三个核心模块属于驱动层面。透过 Tornado 可以支持用户级别的数据加工服务,透过 Lightning 可以实现 HBase 的实时数据查询。中间最关键多维分析服务,则使用了 Kylin 的商用产品 Kyligence。
在 Kylin Data Summit 上,Gartner 研究总监 Julian Sun 也提到了,未来的关键不是开源,而是商业化。这并非否定开源的重要性,开源对于技术的发展起到了至关重要的作用。前一段时间大家也看过,市面上有一些所谓的开源软件已经开始收费了。比如免费了 20 多年的 Java 开始收费了,Hadoop、MongoDB 等开源项目也有存在了很长时间的商用版本。商用版本相较于社区的开源版,更加符合企业的需求,降低了企业的使用门槛。
仍然以 Hadoop 为例,Hadoop 的技术偏底层,需要十分专业的技术基础,因此虽然是很好的技术,但使用门槛过高,前期使用成本过大,缺乏应用创新以及模式创新。并且在社区中,技术的发展方向往往是分散的,是根据社区内的每一名成员的思考在前进,不能聚焦于一个领域下、专攻某一方面。
再回到 Kyligence 与 Kylin 上来,Kyligence 相较于开源版 Kylin,商业版在查询系统设计、元数据设计、BI 兼容性、企业运维等方面都有明显的优势。并且基于 Kyligence 构建 Cube,5 亿的数据在短短 2 个小时之内就能构建好,相较于过去银联旧版的以“数据仓库 ETL + Cognos“体系为核心的多维分析应用,可以说是一个巨大的飞跃。
最后,再回到最开始的问题,什么是大数据?经常有人问,很多公司喊大数据转型喊了好多年,究竟做了什么?王颖卓最后提到:大数据的目的无非是提升服务性能,因此即便将整个 BI 体系更换掉,将全部的 Cognos 拿掉,用户在使用体验上也会完全无感,能感受到的只是性能以及效率的提升。从银联的角度看,用户每天早上打开电脑就能看到最新的数据,这就是做大数据实时分析平台的目的。
随着数据规模的持续增大,传统的报表以及数据仓库技术已经很难满足业务的需求和查询需要。因此,银联也在大数据的架构和技术领域不断的探索和创新,包括引入 Kyligence,以及开发自己全新的 BI 服务体系。所做的一切,最终的目的都是为了能够让数据更好的服务业务、更好的驱动业务前进。通过技术上的创新,提升业务人员使用数据、通过数据来创造价值的能力。
数据是不断变化的,数据所产生的价值是不断变化的,技术也是不断变化的。Hadoop 自 2006 年发展至今,在大数据领域一路高歌猛进。但是到了今天,大数据分析技术不会因为 Hadoop 面临的挑战,而放缓前进的脚步。我们在这次 Kylin Data Summit 上看到,以 Kyligence 为代表的大数据企业, 其产品架构在不断演进,迎合快速变化的大数据技术趋势,从原先的 Hadoop 依赖到全 Spark 技术栈,为的就是帮助企业快速应用,迎接未来挑战。
中国银联的大数据技术也是一样,也在不断通过自身技术上的创新,拥抱数据,让数据产生更多价值,让中国银联的大数据发展,依然走在正确的路上。
(本文参考自 Kylin Data Summit 银联科技事业部高级主管王颖卓的演讲)
点个在看少个 bug 👇