写点什么

宜人贷 PaaS 数据服务平台简介(下篇)

  • 2020-02-13
  • 本文字数:3069 字

    阅读完需:约 10 分钟

宜人贷PaaS 数据服务平台简介(下篇)

导读:在上篇中,我们已经简单了解了宜人贷数据平台 Genie 的特点,并且掌握了数据平台发展历程的一些信息。本文作为下篇,首先我们会在其中重点讲解实时数据仓库的技术细节,之后介绍数据平台的功能。下面我们一起来了解一下这些知识吧~


三、实时数据仓库技术细节


离线数据仓库是 t+1 的数据,也就是说数据时效性是处理前一天的数据。一般来说离线方案同步数据的策略是每天定时同步一次数据,而且基本是同步一次全量数据,也就是说每天一个全量数据(业务库)的镜像。


除了时效性,还有一点就是镜像的数据状态只有一个,所以想知道某个值的历史变化过程,就需要走拉链表(非常耗时耗资源)。实时数据仓库的实现方式很多,但是大多都是殊途同归。实时数仓有两点特点:第一访问实时数据;第二结果能近似实时的返回。当然离线仓库如果优化的好,完成第二点也是可以实现的。思考两个问题,为什么要用实时数据?为什么要有实时数据仓库?


近几年数据工程师们在如何提高数据时效性上做了非常多的努力和尝试。推动这些实时数据同步、处理技术发展的当然还是场景与需求。中国的大互联网环境竞争非常激烈,如何提高用户转化率变得尤为关键。


用户画像、推荐系统、漏斗分析、智能营销等等数据相关的产品都离不开实时数据的处理与计算。


获取实时数据最直接的方式是直连业务库,优势明显,缺点也很明显,有些逻辑需要跨库多源查询关联的时候直接连业务库就行不通了。所以首先需要把多个源头的数据集中同步起来,这个同步过程就是一个非常具有挑战的地方,要考虑数据的时效性,对业务系统的侵入性,数据的安全性和数据的一致性等等诸多难题。


所以我们需要一个同步数据的工具,它需要有以下几个特点:


· 能够近似实时的同步生产库的数据和日志数据


· 和生产库还有应用服务器完全解耦


· 同步出来的数据可以分发到其他的存储


· 整个同步过程保证数据不丢失,或者说可以按照任意时间批量重新同步


宜信敏捷大数据团队开发的 DBus 和 Wormhole 能很好的满足以上 4 点。


DBus 利用数据库的 binlog 进行数据抽取,binlog 一般延迟是比较低的,这样既保证了实时的特性,也保证了对生产库的零侵入。


其实利用日志来构建一个健壮的数据系统是一个很常见的方案。Hbase 利用 wal 来保证可靠性,MySQL 主备同步使用 binlog,分布式一致性算法 Raft 利用日志保证一致性,还有 Apache Kafka 也是利用了日志来实现的。


DBus 很好的利用了数据库的 binlog 日志并且进行统一的 schema 转化,形成了自己日志标准,以便支持多种数据源。DBus 的定义是一个商业级别的数据总线系统。它可以实时的将数据从数据源抽取发送给 Kafka。


Wormhole 负责将数据同步写入其他的存储之中。Kafka 就成了一个真正意义上的数据总线,Wormhole 支持 sink 端按照任意时间开始消费 Kafka 中的数据,这样也就能很好的进行数据回溯。


1535436906161095307.png


Genie 的实时架构如下:


1535436920116014701.png


有了 DBus 和 Wormhole 我们可以很轻松的把数据从生产备库实时的同步到我们的 Cassandra 集群,然后再同步 Presto,为用户提供 SQL 语言计算。


通过这个简单的架构我们高效的完成了实时数据仓库的搭建,并且实现了公司的实时报表平台和一些实时营销类的数据产品。


对于为什么会使用 Presto 我可以给出以下的答案:


· Presto 拥有交互级别的数据计算查询体验


· Presto 支持水平扩展,presto on yarn (slider)


· 支持标准 SQL,并且方便扩展


· facebook, uber, netflix 生产使用


· 开源语言 java 符合我们团队技术栈, 自定义函数


· 支持多数据源关联 join 逻辑下推,Presto 可以接 Cassandra, Hdfs 等等


· pipelined executions - 减少了不必要的 I/O 开销


1535436936981036321.png


Presto 是 m/s 架构,整体细节不多说了。Presto 有个数据存储抽象层,可以支持不同的数据存储上执行 SQL 计算。Presto 提供了 meta data api,data location api, data stream api,支持自开发可插拔的 connector。


1535436953819067280.png


在我们的方案中是 Presto on Cassandra 的,因为 Cassandra 相对于 Hbase 来说可用性更好一些,比较适合 adhoc 查询场景。Hbase CAP 中偏向 c,Cassandra CAP 中偏向 a。Cassandra 是一个非常优秀的数据库,方便易用,底层使用 Log-Structured Merge-Tree 做存储索引的核心数据结构。


综上我大概的介绍了宜人贷的实时数据处理架构,下面我们看一下整体的数据处理架构。


1535436970116052100.png


整体 Lambda 架构 speed 层利用 DBus 和 Wormhole 组装成了一套实时数据总线,speedlayer 可以直接支撑实时数据产品。DataLake 是一个抽象的概念实现方式,我们主要是利用 Hdfs + Cassandra 存储数据,计算引擎主要以 Hive 和 Presto 为主,再通过平台统一的 metadata 对元数据整合提供,这样就实现了一个完整的 DataLake。DataLake 主要的应用场景是高级灵活的分析,查询场景如 ml 。


DataLake 和数据仓库的区别是,DataLake 更加敏捷灵活,侧重数据的获取,数据仓库则侧重于标准、管理、安全和快速索引。


参考文献:


https://www.confluent.io/blog/using-logs-to-build-a-solid-data-infrastructure-or-why-dual-writes-are-a-bad-idea/


http://thesecretlivesofdata.com/raft/


https://engineering.linkedin.com/data-replication/open-sourcing-databus-linkedins-low-latency-change-data-capture-system


https://yq.aliyun.com/articles/195388


https://www.cnblogs.com/tgzhu/p/6033373.html

四、数据平台 Genie 之功能简介

整个 Genie 数据服务平台由 7 个大的子平台模块组成:


· 数据查询


· 数据知识


· 实时报表


· 数据开发


· 作业调度


· 权限管理


· 集群监控管理


下面我们来介绍一下其中的几个模块。


>>>>数据查询模块


· 用户可以查询数据仓库、数据集市、实时数据仓库的数据


· 通过对 SQL 的解析来实现细粒度的权限管理


· 提供多种查询引擎


· 数据导出


1535437035602041956.png


>>>>数据知识模块


· 元数据监控管理


· 对全公司的元数据提供管理查询功能


· 可以监控元数据变更并预警邮件


· 血缘分析查询引擎


· SQL 分析引擎


· 对仓库所有的作业/表/字段进行分析


· 提供血缘分析/影响分析


1535437060623059218.png


1535437076968077229.png


1535437101664064989.png


>>>>数据报表模块


· 实时数据仓库


· Presto on Cassandra 直连 Presto


· 数百张表,实时同步(DBus+WHurl)


· 达芬奇报表平台 (达芬奇 url)


· 近千张报表全公司已使用


1535437130083083149.png


>>>>数据开发模块


· 数据程序设计 Genie-ide


· 提供 Genie-ide 进行数据程序的开发


· 提供网盘进行脚本保存管理


· 可以实时测试/上线


· 数据管道


✔ 一键离线入仓


✔ 一键实时入仓


1535437151859010957.png


>>>>作业调度 Triangle 模块


· 微服务架构设计每个模块均为一个服务


· 提供 restful 接口可以方便二次开发与其它平台融合


· 提供健康监控作业管理后台


· 提供公共作业和私有作业


· 作业流之间逻辑隔离


· 并发控制,失败策略管理


1535437182208046715.png


以上是对数据平台 Genie 模块功能的简介,那 Genie 平台具体可以做哪些事情呢?


首先,它可以实现离线入仓,实时入仓 1 分钟内配置完成(数据仓库,数据集市);


其次,实时入仓后可直接配置实时报表展示推送(BI 分析);


第三,实时数据支持多种含有权限安全的同构对接方式:api ,kafka, jdbc(业务数据产品);


第四,一站式数据开发支持 hive,spark-sql,presto on cassandra,python(数据开发);


第五,服务化的调度系统支持外部系统接入(基础技术组件)。


本文转载自宜信技术学院网站。


原文链接:http://college.creditease.cn/detail/167


2020-02-13 21:50780

评论

发布
暂无评论
发现更多内容

【活动报名】11月19日 | AI GC 的技术与应用构建

亚马逊云科技 (Amazon Web Services)

人工智能 机器学习

部署和体验Helm(2.16.1版本)

程序员欣宸

Kubernetes Helm 11月月更

Vue基础学习(五)

Studying_swz

Vue 11月月更

网址访问速度免费加速教程:又拍云cdn

程序员余白

网页加速 CDN加速 11月月更

2022-11-11:设计一个最大栈数据结构,既支持栈操作,又支持查找栈中最大元素。 实现 MaxStack 类: MaxStack() 初始化栈对象 void push(int x) 将元素 x 压

福大大架构师每日一题

Java 算法 福大大

Java实现List中集合的元素进行排序

共饮一杯无

Java List 11月月更

深入Redis数据结构和底层原理

闫同学

redis 缓存 11月月更

初探Apollo远程服务配置中心

闫同学

阿波罗 11月月更 apllo 远程配置中心

【愚公系列】2022年11月 微信小程序-app.json配置属性之networkTimeout

愚公搬代码

11月月更

聚焦银行APP用户体验,易观千帆GX指数即将独家首发

易观分析

易观

Vue基础学习(四)

Studying_swz

Vue 11月月更

Go-MySQL-Driver,让Go语言拥抱MySQL

闫同学

Go MySQL 11月月更

计算机网络:随机访问介质访问控制之令牌传递协议

timerring

令牌桶 11月月更

算法题学习---链表中环的入口结点

桑榆

算法题 11月月更

Git 分支管理策略汇总

AlwaysBeta

git GitHub gitlab 分支管理

HTML零基础入门教程(一)

异星球的小怪同志

前端 HTML5, CSS3 DW 零基础 11月月更

阿里CTO程立:首个全面深度用云的天猫双11,更敏捷、更经济、更绿色

阿里技术

云计算 severless

Zebec Chain有望成为公链赛道新兴生力军,地平线计划持续进击

小哈区块

1.6k Star!可以优雅的使用Git了。。。

Jackpop

CSS的学习笔记(五)

lxmoe

CSS 前端 学习笔记 11月月更

Zebec Chain有望成为公链赛道新兴生力军,地平线计划持续进击

西柚子

【LeetCode】分割数组Java题解

Albert

算法 LeetCode 11月月更

SAP UI5 数据绑定中的工厂函数

汪子熙

SAP Fiori SAP UI5 ui5 11月月更

opensd开源啦 !这套自动化部署OpenStack工具你值得拥有

openEuler

开源 操作系统 openEuler OpenStack

Vivado安装和使用

梦笔生花

Verilog FPGA系统 vivado 11月月更

一款超好用的Json编辑工具

Jackpop

类继承

Maybe_fl

汽车产业“芯事”何解?

易观分析

汽车芯片

定了,2022双11 技术进化开启新未来

阿里技术

双11

运维进阶训练营 -W03H

赤色闪电

运维

Vue插件(plugin)

Augus

vue.js 11月月更

宜人贷PaaS 数据服务平台简介(下篇)_行业深度_孙立喆_InfoQ精选文章