2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

评论

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

莫想到有一天得重新写个 etcd client

八苦-瞿昙

Arthas vmtool(从 jvm 里查询对象,执行 forceGc)

刘大猫

Java 监控 Arthas 监控工具 vmtool

《算法导论(第4版)》阅读笔记:p17-p27

codists

算法

iVX:从技术架构到行业实践的全面升级

代码制造者

鸿蒙应用开发中的生命周期管理:从组件到应用的全流程解析

Geek_ee1bf0

鸿蒙 HarmonyOS HarmonyOS NEXT 实践分享

湖仓一体架构在金融典型数据分析场景中的实践

镜舟科技

数据分析 金融 存算分离架构 StarRocks 湖仓一体

打造一款响应式图片画廊

繁依Fanyi

从InfluxDB到StarRocks:Grab实现Spark监控平台10倍性能提升

StarRocks

spark StarRocks 数据库、 物化视图 Iris

用 CodyBuddy 帮我写自动化运维脚本

悟空聊架构

AI 悟空聊架构 CodeBuddy首席试玩官

鸿蒙跨平台开发教程之Uniapp布局基础

幽蓝计划

手动开发?给我一条提示词,CodeBuddy能做的你都做不到!

VyrnSynx

CodeBuddy首席试玩官

100台电脑局域网搭建攻略和设备配置指南

Ogcloud

局域网 企业组网 局域网组建 局域网搭建 企业网络搭建

Kagi搜索:互联网搜索的净土,值得你的每一分钱

AI段舸

AI 搜索软件

淘宝天猫图片搜索拍立淘接口(附代码示例)

tbapi

淘宝图片搜索接口 淘宝拍立淘接口 淘宝图片搜索API 天猫图片搜索接口 天猫拍立淘api

2025-05-11 代码人生 - 精选文章周刊

安全乐谷

Java Python 编程 面试 找工作

5分钟完成手势识别项目!CodeBuddy的Craft模式让传统编程方法沦为古董?

VyrnSynx

CodeBuddy首席试玩官

Roo Code携手WireMCP开启智能网络流量分析的新纪元

穿过生命散发芬芳

MCP

《算法导论(第4版)》阅读笔记:p18-p31

codists

算法

iVX:结合AI 原生开发的图形化编程平台解析

代码制造者

AI AI编程

鸿蒙适配unity的交互方法

cfx

鸿蒙 HarmonyOS HarmonyOS NEXT

极简远程革命:节点小宝 — 无公网IP的极速内网穿透远程解决方案

猫头虎

网络

第四章:数据治理的目标

数据小吏

密评中,我们没用商用密码,会不会不合格?

黑龙江陆陆信息测评部

uniapp开发HarmonyOS NEXT应用之项目结构详细解读

幽蓝计划

一站式国产远程访问工具推荐:全面解析、深度对比与最佳选型指南

猫头虎

网络

HarmonyOS Next 用户通知服务Notification Kit介绍与实战

轻口味

鸿蒙 HarmonyOS HarmonyOS NEXT HarmonyOS5.0

TikTok直播卡顿怎么解决?教你几个方法!

Ogcloud

SD-WAN tiktok直播 tiktok直播网络 tiktok网络 sd-wan专线

关于懒加载,LazyForEach和Repeat的区别,哪一个性能更好呢?

cfx

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT

淘宝天猫商品评论API接口(附代码示例)

tbapi

淘宝评论API 天猫评论API 淘宝商品评论API 天猫商品评论API 淘宝评论数据采集

AI 推理 | vLLM 快速部署指南

Se7en

Cursor AI 官方下载链接

玄兴梦影

下载 cursor AI 代码编辑器

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