上海数禾信息科技有限公司大数据负责人 万鹏
上海数禾信息科技有限公司是一家拥有小贷牌照和融资担保牌照的金融科技公司(下称“数禾科技”),公司的核心产品是“还呗”。本文要分享的主题是数禾科技如何在云上构建和管理数据湖。
以下是云栖大会数据湖分会场主题演讲的正文:
大家好,我是上海数禾信息科技有限公司的大数据负责人万鹏。我们公司的是一家拥有小贷牌照和融资担保牌照的金融科技公司,产品名称是还呗。今天我要分享的主题是我们如何在云上构建和管理数据湖。整个内容分为三个部分。首先我会定义清楚我们公司的业务模式中信贷风控要解决的关键问题是什么,其次讲一下我们公司大数据平台是如何演进成数据湖架构的,最后我会分享我们在数据湖管理方面的心得。
大家试想一下以下这个场景,在马路上一个陌生人突然跑过来向你借钱,你会借给他吗?我相信大部分人是不会的。为什么?因为你对他不了解,不了解其实是信息不对称的结果。信贷风控领域自始至终要解决的最关键问题就是面对海量的需要借钱的互联网用户,如何在信息不对称的情况下,以最低的风险把钱借出去。大数据在这个地方起到了至关重要的作用,因为数据越多,数据的种类越丰富,我们对用户的了解就会越全面,风险评估越准确,风险控制也会相对有效。但是随着业务的发展,数据会越积越多,场景也会越来越复杂,传统的大数据架构已经难以满足面向大规模用户做精准风控的需要。当数据的体量达到一定的级别,当数据的多样性达到一定的复杂度,我们急需一种更加高效、更加灵活、更加低成本的解决方案 -- 那就是数据湖。
当然数据湖的建设不是一蹴而就就能建成的,接下来我来跟大家介绍一下我们是如何一步一步走到数据湖的。
大家看一下左边这个图,我们公司是在2015年创立的,在2016年我们就搭建了开源的大数据集群,麻雀虽小五脏俱全。这套集群运行了两年多以后,也就是2018年,我们发现计算资源和存储资源不能弹性变化,给我们带来了极大的困扰。离线计算和实时计算,互相争抢资源,单点故障解决起来非常吃力。在18年年底,为了解决当时遇到的各种问题,我们基于云计算重新做了一个稍微可扩展的解决方案,就是右边这个图大家看到的这个样子,我们把实时计算完全剥离出来放在了EMR上,把一些关键的应用场景通过云上的标准产品来承接,比如Hbase。在这个模式下我们又强撑了一年,在这一年里,我们发现更多的问题冒出来了,比如说存储成本持续攀高,因为所有的数据都要存三份,然后公司的人员多了以后,权限管理的难度也非常高。
另外架构的复杂度也导致了运维成本和管理成本难以承受。好在是在这个架构下,我们摸索出了基于对象存储OSS直接运行Hadoop集群是可行的,只要能解决性能、数据隔离以及源数据共享三大难题就行。于是在今年年初我们又做了一次架构上的重大调整和升级。
大家来看一这张图,我们把原来的集群全部下线,设计出一种基于OSS对象存储和EMR的流批一体数据湖架构。我们把所有的数据做好分类,放在不同的OSS桶里面,上面开启若干个计算资源独立的EMR集群,这些集群可以按场景来划分,也可以按职能部门来划分,随时需要随时创建,用完即删,然后还可以按需自动扩容,做到了真正的弹性计算。整个数据湖共享一套元数据,那就是全局唯一的一套Hive元数据,是通过共享访问MySQL来实现。然后我们通过自带的Ranger来做角色和数据权限控制,这样就在物理层面和逻辑层面,我们都可以按需做好数据的隔离。EMR运行在OSS上,理论上数据的读写性能要比原生HDFS低很多,好在阿里云提供了JindoFS这个插件,它在Hadoop集群和OSS存储之间做了一层缓存,使得性能的损失是在可以接受的范围以内。这套架构我们已经成功实施并且运行起来了,虽然时间不长,但是我们已经开始享受到了结构简单,存储低廉以及真正的弹性计算带来的种种好处。
下面我来介绍一下我们在数据湖管理实践中所要遵循的原则,总共有五个原则。首先说明,正是因为有了这些原则,我们的数据湖才可以持续的产生价值驱动业务的发展。
第一个,全面记录。全面记录的意思是对于我们的目标客户,我们要在用户授权的前提下,尽可能多的记录他各方面的信息,不同的时点,不同的位置,以及各种操作细节等等,所有维度的信息都会随着时间不停的变化,大数据部门要负责驱动业务部门在所有的业务过程和操作流程上尽可能多的记录原始信息,并且要持续的记录。
第二个,全面实时化。全面实时化我觉得是要让大数据尽可能的流动起来。因为在我们的业务模式下,数据的价值不仅仅是和数据量成正比,也和数据的时效性成正比。信息不对称它往往不是一次性的,而是会随着时间的变化而在持续的产生不对称。实时的数据能够让人和系统实时的感受变化,及时的预测以及及时的调整业务策略,对整个公司来说价值是极大的。
第三个,全面治理。全面治理是相对于传统的数据治理而言,传统的数据治理更加偏重数据质量治理和成本治理。我这里要强调的是我们还要关注架构和效率两个层面的治理。在我看来,任何在持续演进的复杂系统,都是需要全面治理的。比如架构的合理性、系统的复杂度、调度的效率、数据开发的效率以及数据服务的效率等等。全面治理是为了在“降本增效”这个大前提下,我们要提供更便捷、更稳定的数据支撑服务。
第四个,场景驱动。场景驱动的意思是指我们大数据在对外提供服务的时候,要时刻抓住业务的痛点。比如前面我们提到的数据不对称,是风控环节最大的痛点,那么我们所有的系统建设,所有的效率优化都要围绕着关键痛点来展开,所有的资源都要优先支撑关键场景,所有任务的安排都要以解决关键场景的问题为最高优先级。
最后一个是安全合规,这个其实是我们业务的生命线。遵守监管要求,安全合规的做数据管理是业务可持续发展的前提。杜绝灰色空间,从规范层面、流程层面甚至是系统层面,都要杜绝任何人犯错误的可能,确保让所有能接触数据的人都能守得住安全底线。
最后我来总结一下,我们公司的数据湖不是一蹴而就建成的,而是随着业务的发展,在不断的解决问题的过程中逐步发展而成的。作为数据的管理者,追求最低的成本、最高的效率以及最灵活的架构是永恒的目标。我们在数据湖的道路上会一直走下去,不断的迭代,不断的优化。
在这么多年的摸索中,我们总结出来数据湖管理的五个原则,它们是全面记录、全面实时化、全面治理、场景驱动以及安全合规。谨遵这些原则,我们才能做到真正的数据驱动,真正的实现一切业务数据化,以及一切数据业务化。
感谢大家!
更多大数据客户实战案例:https://developer.aliyun.com/article/772449