10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

宜人贷 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:501009

评论

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

GitOps系列二|如何借助极狐GitLab 和Terraform以代码形式构建基础设施?

极狐GitLab

kubernete

能否借鉴鸿蒙思路实现物联网燃气泄露监控?

老猿Python

鸿蒙 物联网 北向接口 远程监控

只等你来!OpenAtom XuperChain开发者夏季论坛来啦

百度开发者中心

百度 开源 开发者

爆场预警!百度大脑开放日-AI赋能软硬件产品创新

百度大脑

百度大脑开放日

程序员上班“划水”向阿里猛投简历,两次被刷后,终成“菜鸟”P6

Java 程序员 架构 面试

超详细!百度富媒体检索比对系统的关键技术

百度开发者中心

百度

SpringCloud Gateway 路由数量对性能的影响研究

中原银行

微服务 SpringCloud Gateway JMH性能基准测试 中原银行

成为一个面霸需要面试多少回?

escray

极客时间 6月日更

让开发更丝滑,KodeRover开源分布式持续交付项目Zadig | TGO喜报

花花

试用期 签约计划

为了不写接口文档,我肝了个 IDEA 插件!

程序员小航

Java IDEA idea插件 YAPI 文档

为什么智能作业灯突然成为教育行业的趋势?

anyRTC开发者

音视频 WebRTC 智能硬件

阿里JAVA架构师面试136题含答案:JVM+spring+分布式+并发编程!

Java 程序员 架构 面试

Flink EventTime 和 Watermark

Alex🐒

flink 翻译 flink1.13

SpringCloud Gateway 路由转发性能优化

中原银行

微服务 性能优化 SpringCloud Gateway 中原银行

浪潮云入选中国网络安全百强综合实力领军者象限

云计算

校外培训行业迎来强监管,“教育+区块链”新模式试图解决行业痼疾

CECBC

[译] R8 优化: Staticization

Antway

6月日更

建党100周年,快来预约博睿数据驻场服务!

博睿数据

微博、快手纷纷整治饭圈乱象:抵制不良饭圈风气是全网的责任

石头IT视角

从零开始学习3D可视化之爆炸图

ThingJS数字孪生引擎

科技 3D 3D可视化

【 Meetup 推荐】6月26日,邀请您相聚西子湖畔,探讨 2021 音视频技术最佳实践

七牛云

音视频 直播 RTC Meetup

Nebula 基于 ElasticSearch 的全文搜索引擎的文本搜索

NebulaGraph

elasticsearch 索引 图数据库

为什么中间件协议对区块链生态系统至关重要?

CECBC

作为一名程序员如何开展自己的副业呢?

Changing Lin

话题讨论 6月日更

停车场事故频频,AI 达人将摄像头变身安全卫士

阿里云CloudImagine

阿里云 计算机视觉 音视频 应用 英特尔

数字人民币是央行数字货币还是法定数字货币?

CECBC

openEuler开源之后:引领新的技术变革

花花

试用期 签约计划

2021年,Java开发者值得学习的13项技能

百度开发者中心

Java

Cocos 大表姐:所有技术的本质都是数学问题丨ECUG Meetup 讲师专访

七牛云

音视频 游戏开发 Cocos Meetup

5分钟速读之Rust权威指南(二十四)Box

wzx

rust

优雅编程 | 7 个你应该掌握的 JavaScript 编码技巧

devpoint

JavaScrip 6月日更

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