【ArchSummit架构师峰会】基于大模型的基础框架、中台、应用层等专题全覆盖 >>> 了解详情
写点什么

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

评论

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

怎么进大厂?166位Java工程师的大厂面试经验分享

北游学Java

Java 面试 大厂

官宣:恭喜 ChaosBlade 项目进入 CNCF Sandbox

阿里巴巴云原生

容器 云原生 k8s 监控 Go 语言

HuskyLens人工智能摄像头

不脱发的程序猿

人工智能 智能硬件 AIOT HuskyLens 人工智能摄像头

再次荣获最受观众喜爱奖

Serverless Devs

阿里云 云原生 cncf #Serverless

为啥你写的代码总是这么复杂?

华为云开发者联盟

软件 代码 代码注释 bug 复杂度

华为云PB级数据库GaussDB(for Redis)揭秘第十期:GaussDB(for Redis)迁移系列(上)

华为云开发者联盟

数据仓库 华为云 数据迁移 GaussDB(for Redis) PB级数据库

“云演唱会”也有仪式感!能检票、可转赠,爱奇艺“云票”如何重构线上购票逻辑

爱奇艺技术产品团队

Amazon Glue 版本 2.0 将作业启动时间缩短了 10 倍,现已全面开放!

亚马逊云科技 (Amazon Web Services)

编程思考路径2条

顿晓

5月日更 思考路径

iMazing比iTunes好用在哪些地方

懒得勤快

智慧党建三维云展厅可视化

一只数据鲸鱼

数据可视化 智慧党建 三维可视化

Nginx负载均衡配置误区

运维研习社

nginx 负载均衡 5月日更

如何高效地存储与检索大规模的图谱数据?

华为云开发者联盟

存储 知识图谱 检索 图结构 表结构

MapReduce排序以及序列化

五分钟学大数据

大数据 hadoop mapreduce

NumPy之:理解广播

程序那些事

Python Numpy 程序那些事

源码解析之Seata项目中的分布式ID生成算法

Coder的技术之路

分布式 分布式ID

CampusBulider(模模搭)学习笔记5:创建自定义建筑

ThingJS数字孪生引擎

大前端 可视化 3D 3D可视化 数字孪生

堪称完美!淘宝内部百亿级Java高并发系统架构设计PDF手册分享

Java架构追梦

Java 架构 高并发 淘宝网 亿级架构设计

【LeetCode】子数组异或查询Java题解

Albert

算法 LeetCode 5月日更

揭秘 Amazon Go 无人商店是如何炼成的!

亚马逊云科技 (Amazon Web Services)

嵌入式程序调用函数的内部过程和机制

不脱发的程序猿

单片机 嵌入式程序 嵌入式设计

2021年5月国产数据库排行榜:“华为高斯模式”取得成功,阿里OPA持续攀升

墨天轮

数据库 dba tdsql TiDB Gauss DB

关于组件,你真的了解么?

架构精进之路

组件化 5月日更

限流与Guava RateLimiter原理解析

千珏

Java 微服务 限流算法 Guava 令牌桶

STM32电源框图解析(VDD、VSS、VDDA、VSSA、VREF+、VREF-、VBAT等的区别)

不脱发的程序猿

嵌入式 stm32 单片机 电源框图解析

云图说|不要小看不起眼的日志,“小日志,大作用”

华为云开发者联盟

运维 日志 云日志服务 安全监控审计

数据采集之js自定义采集

大数据技术指南

大数据

Linux C/C++ 学习路线总结!助我拿下腾讯offer

赖猫

后台开发 C/C++ Linux服务器开发

流量变现业务概论——Linkedmall流量变现业务初步分析及系统设计概要

关贺宇

anyRTC 六周年 打造全网最低音视频价格

anyRTC开发者

音视频 WebRTC RTC sdk

Amazon Route 53 Resolver 落地中国区,轻松玩转私有域名互访不是梦!| 新服务上线

亚马逊云科技 (Amazon Web Services)

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