一体化无边界的大数据基础平台

作者:涂明雷 | 大树金融大数据负责人,TiDB User Group (TUG) 大使

过去的两年我在大树金融担任大数据团队负责人,打造了一套一体化无边界的大数据基础平台,其中的一些架构思路和做法值得分享一下。

何谓一体化无边界、它的架构要点、典型应用案例,这些是我接下来要讲的。

一体化无边界

所谓一体化,指的是一套基础架构同时支撑 分析挖掘、线上业务 和流处理。
所谓无边界,指的是同样的组件我们用客户也用、既可以平台/API嵌入业务系统也可以业务逻辑嵌入数据平台。

这是我们的基础架构及业务影响图,

029e91e116475be1741fed4ea0253150828b2569.jpeg

接下来讲下它的要点:

架构要点

抽象点说,数据总线连接各类存储、计算组件,组件能力的不同组合可以满足各类业务场景。

这里 数据总线/同步能力是关键。正是基于强大的数据同步能力,不同来源的数据可以在数据仓库里被直接访问,不同计算可以分散到不同组件、最后结果汇集于所需要的地方,让平台上不同组件可以取长补短、互通有无。

比如,

[存储体系]

2 caff2fbd92435bda9c11f0d64b456cdaed3ebf18.jpeg

通过实时同步,

  • 形成了 热-温-冷(MySQL-TiDB-Hive/HDFS)存储体系
  • 线上MySQL专心存储热数据,不再需要分库分表
  • TiDB汇集所有线上业务数据,可提供全量、跨库查询
  • Hive/HDFS有所有数据,业务数据+日志数据,支撑大规模分析挖掘

~

[计算转移]

3 c005aa55b67a1ad3d91c856102c7d1851c0fe666.jpeg

借助实时同步,我们转移了洗数逻辑,不再需要访问不同系统获得数据(直接推送给它),业务迭代更快速(SQL、实时上线),计算结果同步到原来的目标数据库(外部应用不受影响)。

~

依托强大的数据总线/同步能力,让我们在选择和组合业务所需的存储、计算能力方面更加自由。

大数据平台一些常见的能力/要素如下:

  • 快速检索(for 查询)能力
  • 快速扫描(for 分析)能力
  • 海量存储能力
  • 廉价存储能力
  • 大规模(批处理)计算能力
  • 流处理计算能力
  • 图存储&计算能力
  • 函数&算法生态能力
  • 数据输出/可视化能力
  • 资源调度/管理能力
  • 元数据管理能力
  • 等等

我们的一些组件选型及看中的能力如下:

  • Kafka w/ connect(数据总线,CDC)
  • Hadoop w/ Hive/HDFS/YARN(海量廉价存储,快速扫描,计算资源&调度)
  • Spark(大规模分析计算,跨源访问,流处理,机器学习)
  • Flink(流处理,CEP,等)
  • TiDB(大规模存储,快速检索,复杂查询,MySQL生态)
  • PostgreSQL w/ pipelineDb/timescaleDb/*_fdw(流处理,监控数据处理,复杂查询,跨源访问,Pg生态)
  • ElasticSearch w/ ELK(日志数据处理,模糊查询)
  • 等等

总线连通的做法还有几个相关的问题需要考虑:

  • 被连接的各存储组件,需要具备流式入库和 CDC(Change Data Capture)能力。(MySQL、Pg、TiDB、ES 具备这方面能力,Hive 这边,我们开发了流式入库的能力,同时支持了修改/删除。)
  • 统一的数据交换格式以及版本迭代
  • 归档删除,热存储组件删除历史数据时,全量仓库那边不能删除。(我们通过约定删除机制解决了这个问题。)

如上,针对分析挖掘、线上查询、批处理、流处理等应用场景,我们并没有独立的基础架构。但我愿顺着这个思路展开,看看针对不同业务/场景提供的解决方案:

分析架构

面向数据分析和风控人员

4 61f62aebea1782765555fae17df4eb2259374a1c.jpeg

Hive 和 Pg 是主力,

  • Hive w/ spark 我们做了些优化后,性能还不错,日常大作业和交互查询都在上面
  • 对于精确小查询,又碰上 Hadoop 资源吃紧,我们建议走 TiDB
  • 中间表和输出结果放 Pg,是对外报表的主要后端
  • 借助 pipelineDb 及其他辅助插件,中间表可以在 Pg 实时生成,并按需同步到其他地方

线上架构

面向线上业务系统

5d988eef8f3d465978795f3b22b03a913f86c5496.jpeg

TiDB 是主力,

  • 历史/全量查询、跨库查询 以及业务脚本运行都走 TiDB
  • 需要同时访问冷热数据的,用 Pg + Mysql_fdw 支持(注:适用于条件明确的查询,条件模糊/大查询不适合)
  • Pg w/ pipelineDb 用作实时洗数,结果实时同步到需要的地方(计算过程中需要用到线上MySQL主库 或 TiDB 数据的,可以自由访问)

流处理架构

既能支撑大规模分布式计算,又兼具PgSQL生态优势。

6 63389318ff675daff4e2f3dc696b8cb03091af30.jpeg

在数据流动的各个环节都可以自由处理,

  • Flink 主要用于超大规模数据预处理 以及 CEP 等特殊场景(开发、部署及管理成本要高些)
  • Pg w/ pipelineDb 推荐日常使用,Pg 生态,复杂 join、访问外部数据方便
  • 借助数据总线 Flink 和 Pg/pipelineDb 可以轻松整合

开放架构

这一部分落实 “无边界”大数据平台的想法

7 c30cdf6e6377584638e35b50e3ae284fb0fe7657.jpeg

核心组件服务化,

  • Kafka 服务化,数据直写&消费
  • Spark 服务化,计算资源开放
  • TiDB、Pg 通过 JDBC 服务化
  • ES 通过 Rest 接口服务化

开放架构让大数据平台融入业务系统,同时通过流处理业务逻辑也可以托管在大数据平台上。

说不好 是业务系统选择了大数据平台,还是大数据平台融化了业务系统。用一个词描述可能更合适,那就是 “平台化”。

案例-运营策略优化

这是公司客户关系管理委员会提出的一个项目,其基本想法是,根据不同地方持续收集的用户及行为数据,进行客群细分(营销阶段、用户意愿等),据此作出营销决策(流转,手段等),执行/反馈,并不断作出评价和改进。

8 afdaf8269a211d299d48b63261995b82abf9448a.jpeg

营销决策由CRM系统负责,客群细分在大数据平台上进行。

落实方式其实是用户画像,分为相对稳定部分和实时变化部分。数据分析团队负责稳定部分的用户标签,通过每日的全量脚本作业在Hive上运行实现;大数据团队负责实时部分的用户生命周期、导流状态等,在 Pg/pipelineDb 上开发实现。两份数据最终同步到ES,在那里合并后等待CRM系统使用。

为了更好的适应用户操作及系统事件,还同时做了用户事件处理,对不同来源的相关数据做出处理后生成用户事件,实时推送给CRM系统。事件处理在 Pg/pipelineDb 里进行,生成结果通过 Kafka-rest http API 提供给 CRM系统实时消费。

基础数据架构

前面讲述的各个架构有一个共同点,那就是都跟业务数据有关。这个不太一样,它是关于基础数据的。

何谓基础数据,指的是非业务逻辑产生的日志、监控、链路追踪这些基础设施和运行时系统自身的数据。而作为业务的基础数据,则包括采集、可靠传输、存储、融合,以及基于这些数据的衍生系统和业务。

9 47bd112f3d89d81dd72ed873b99af2e4082c9d6f.jpeg

基础数据架构要点如下,

  • 采集端,整合日志、监控、tracing SDK(融合,traceId 嵌入日志)
  • 传输网络,为日志、监控、tracing 数据提供统一传输(缓存,数据加工,智能路由 等)
  • 总线&入库,为大规模实时数据分析提供便利
  • 存储体系,ES 支持日志分析,Pg w/ timescaleDb 支持监控数据分析(扩展的 Pg SQL 语法&函数,可自由关联外部数据)
  • 监控&配置管理(基础数据体系本身也需要监控,并且需要集中的配置管理)

业务数据 + 基础数据,交叉融合,是我构想的双剑合璧、数据大融合。关于基础数据的应用我有很多构想,这里不作展开。

写在最后

存储、计算、融合、治理。
存储、计算一般可通过选择避免研发,但融合、治理还是得自己操心。
上述描述很好的解决了数据融合问题,但对数据治理没怎么触及。

我们目前对数据治理作的直接研发不多,但已经做了很好的铺垫了。
数据治理的核心数据血缘方案一个常见的思路,是四处搜集/提取数据集、数据转换相关的元数据信息,把他们拼接、呈现出来就是我们期望的数据血缘关系图了。
上述做法很巧妙的把很多数据表定义、数据处理逻辑集中化、文本化了,这种情况下的爬取、分析,比起源码扫描分析、日志扫描分析、数据文件分析等等,要简便了多少?
实际上,由于 kafka connect、mysql、pg、hive、airflow 等已有了还算可以的元数据管理功能,我们目前对专门开发元数据管理系统的需求不是很大。

平台性能方面,日入库/处理数据量 3~4 亿条(几十GB)的样子,迁机房造成大量重生数据时达到过 20多亿条/天,我们在自建机房的物理机总数量 20台左右。增加资源肯定能提升性能,根据我在前东家网宿处理更大规模数据量的经验,百亿级别的数据量应该不用调整架构。
平台运维方面,我们做了 Schema 自适应调整、自动检查修复、故障隔离、故障重启、监控/预警、数据质量报告等,所以,不出意外的话,日常运维还是比较省心的。

以上,建成的大数据基础平台其实是一套穷人的大数据平台,以较低的门槛便捷的满足各种应用场景的需求,并可以随着业务壮大做出调整和优化。愿平台后续的运营者使用愉快!

原文链接:https://asktug.com/t/topic/360

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • 【什么是大数据、大数据技术】 大数据,又称巨量资料,指的是所涉及的数据资料量规模巨大到无法在合理时间内通过传统的应...
    kimibob阅读 2,732评论 0 51
  • 昨晚看李笑来在得到上的直播,订阅了他的专栏199ymb/Y,其实之前没想过订阅,觉得李笑来讲的东西是不是带有...
    E想天开阅读 355评论 0 1
  • 今天重温了简快身心积极疗法的基本信念:1.把焦点放在“解决”,而不是“问题”上。2.每一个人都想有一个更好的明...
    钟小葵zxk阅读 234评论 0 2
  • 基本知识 其实, 接触了这么久的 AOP, 我感觉, AOP 给人难以理解的一个关键点是它的概念比较多, 而且坑爹...
    永顺阅读 8,092评论 5 114
  • DNA甲基化会调控基因的表达水平,进而影响基因的相互作用。将基因的相互作用网络和差异甲基化信息结合起来,基于那些甲...
    生信修炼手册阅读 1,286评论 0 3