上图很好的说明了数据平台Genie的组成以及数据使用流程。先说数据使用流程,首先所有数据(包括结构化数据和非结构化数据)都会在数据仓库中进行标准化,如:单位统一,字典统一,数据格式统一,数据命名统一等等。统一规范的数据会直接或者间接的被数据集市使用,作为数据集市的入口。数据集市之间业务耦合性很低,所以数据耦合性也就低,这样可以很好的避免整体作业的耦合度。各个业务的数据应用也会直接使用自己的数据集市。
2.2 Genie的功能模块再说Genie的组成,Genie整体分七个子系统。
meta data: 元数据的管理是核心中的核心,元数据服务化是做数据平台的基础中的基础,几乎所有的需求功能都会依赖它来开展。
Authority: 统一权限切面,统一管理,灵活配置。此处权限包括数据的访问权限配置。
Monitor: 监控,按照租户维度统计集群使用情况等。
Triangle: 自研发调度系统,分布式、服务化、高可用、使用友好。如上图是Triangle调度系统的架构图。整体是一个Master Slave的架构,Job Runtime Dir 概念是指当前Job的运行所需要的环境完整打包提供,如Python 环境。
Data Dev: 上图是一个数据开发流程。数据开发平台—开发测试上线的一站式平台,安全、快捷、支持SQL, Python, Spark Shell。
Data Pipeline:数据管道,用于离线数据管道配置管理和实时数据管道配置管理。可以实现1分钟完成离线入仓配置和实时入仓配置。
Data Knowledge:数据知识,用于血缘关系查询、数据指标管理。
三、总结没有最好的架构,只有更适合的架构 。每个公司的情况不一样,业务模式不一样,虽然都是ETL数据处理,都是数据仓库,都是机器学习,但是有多少需求是数据仓库?机器学习的应用场景是什么?ETL实时性要求是怎么样的?这些细节都有很多复杂的客观条件约束。
在技术架构的选型中有两个至关重要的因素,即场景和成本。简单来说,场景就是要做什么,要低成本的方式实现,不要过度设计。如果场景复杂,那么可以从多维度抽象细分,比如:时间维度(历史待解决问题,目前的问题,未来可能面临的问题)。同理,就成本而言,应该考虑的维度也很多,如:开发周期、运维复杂度、稳定性、现有人员的技术栈等等。
在下篇中,我们会从“实时数据仓库技术细节”和“数据平台功能简介”两方面继续为大家解读宜人贷的PaaS数据服务平台Genie,敬请大家持续关注。
下篇:技术细节及功能导读:在上篇中,我们已经简单了解了宜人贷数据平台Genie的特点,并且掌握了数据平台发展历程的一些信息。本文作为下篇,首先我们会在其中重点讲解实时数据仓库的技术细节,之后介绍数据平台的功能。下面我们一起来了解一下这些知识吧~
四、实时数据仓库技术细节离线数据仓库是t+1的数据,也就是说数据时效性是处理前一天的数据。一般来说离线方案同步数据的策略是每天定时同步一次数据,而且基本是同步一次全量数据,也就是说每天一个全量数据(业务库)的镜像。
除了时效性,还有一点就是镜像的数据状态只有一个,所以想知道某个值的历史变化过程,就需要走拉链表(非常耗时耗资源)。实时数据仓库的实现方式很多,但是大多都是殊途同归。
实时数仓有两点特点:第一访问实时数据;第二结果能近似实时的返回。当然离线仓库如果优化的好,完成第二点也是可以实现的。思考两个问题,为什么要用实时数据?为什么要有实时数据仓库?
近几年数据工程师们在如何提高数据时效性上做了非常多的努力和尝试。推动这些实时数据同步、处理技术发展的当然还是场景与需求。中国的大互联网环境竞争非常激烈,如何提高用户转化率变得尤为关键。
用户画像、推荐系统、漏斗分析、智能营销等等数据相关的产品都离不开实时数据的处理与计算。
获取实时数据最直接的方式是直连业务库,优势明显,缺点也很明显,有些逻辑需要跨库多源查询关联的时候直接连业务库就行不通了。所以首先需要把多个源头的数据集中同步起来,这个同步过程就是一个非常具有挑战的地方,要考虑数据的时效性,对业务系统的侵入性,数据的安全性和数据的一致性等等诸多难题。
所以我们需要一个同步数据的工具,它需要有以下几个特点:
能够近似实时的同步生产库的数据和日志数据
和生产库还有应用服务器完全解耦
同步出来的数据可以分发到其他的存储
整个同步过程保证数据不丢失,或者说可以按照任意时间批量重新同步
宜信敏捷大数据团队开发的DBus和Wormhole能很好的满足以上4点。
DBus利用数据库的binlog进行数据抽取,binlog一般延迟是比较低的,这样既保证了实时的特性,也保证了对生产库的零侵入。