基于华为云EI的数据开发架构与实践

举报
华为云PaaS服务小智 发表于 2021/06/21 17:10:09 2021/06/21
【摘要】 本文旨在介绍如何使用华为云EI服务来进行大数据开发的架构与实践,希望能给准备使用华为云EI服务来进行数据研发的小伙伴提供一些借鉴和帮助。

本文来自【研发智能图书馆】系列,旨在介绍如何使用华为云EI服务来进行大数据开发的架构与实践,给准备使用华为云EI服务来进行数据研发的小伙伴提供一些借鉴和帮助。


前言

在产品线多、数据量大、需求不一的背景下,我们数据团队需要从01打造一个可快速接入不同产品线数据、快速适配各产品线业务、同时能够提供数据应用的“数据引擎”。于是我们针对业务特点建设了测试域的数据仓库,通过划分数据主题,减少数据计算链路,实现统一的数据加工逻辑。

首先列举一下数据开发架构中使用的EI服务:

  • OBS对象存储服务(Object Storage Service),类似于HadoopHDFS
  • DLI数据湖探索(Data Lake Insight),主要用于SparkSqlFlinkSql的数据计算
  • DAYU数据湖运营平台,作业调度系统,实现ETL功能。
  • MRS,大数据集群服务,我们的Kafka环境在上面运行
  • GES,图引擎服务,用来构建节点和边的知识图谱,服务于E2E追溯应用
  • CSS,云搜素服务,类似于Elasticsearch
  • RDSMysql数据库
  • CDM,云数据迁移(Cloud Data Migration),用于OBSRDS的数据同步

整体数据架构如图一所示,自底向上包括数据源、数据存储、数据计算、数据应用四层。接下来分别对这四层做详细介绍。

1.png

1测试域数据架构


数据源

在数据源接入层,我们需要接入追溯链路上每个节点的数据,包含ALM(需求平台)、TestDesign(测试设计)、TMSS(测试用例)、TICC(用例执行)、TDB(测试结果)、DTS(问题单平台)。

在数据源的采集过程中,可以分成FDI/CDM增量采集(保存数据快照)、Binlog日志采集、接口采集、日志采集四种方式。在数据量较少且上游提供了数据接口的情况,我们直接调接口同步数据。对于服务器日志文件的采集,我们使用Flume进行日志的同步。天级离线同步使用FDI/CDM,可以T+1增量保存数据快照。但是在业务数据库分库分表太多的情况下,比如超过10000张表,FDI/CDM需要对接每一张表,并且由于其保存数据快照的方式导致无法和数据库表的添加删除同步,配置的工作量就会特别大,所以我们使用业界成熟同时在社区中较为活跃的方案,即通过Maxwell采集MysqlBinlog日志。通过Maxwell,我们可以很方便地从Binlog里获取数据删除和修改的记录,同时Maxwell相对比较轻量并且支持使用bootstrap读取表中的全量数据,通过这套采集方案,我们解决了分库分表数量大的问题,同时兼顾离线数据和实时数据消费,具体的数据接入流程如下图所示。

2.png

图2:数据接入流程


数据存储

数据采集完后离线数据会落入到对象存储服务(OBS),实时数据会进入MRS集群搭建的Kafka管道。


数据计算

在数据计算部分,离线计算是基于SparkSql,而实时计算则使用Flink,任务调度使用的是华为云EI智能数据湖运营平台(DAYU)以实现ETL功能。


数据应用

在数据应用层,我们使用了华为云图引擎服务(Graph Engine Service,简称为GES)来构建百亿级的知识图谱,用于数据可追溯的查询分析。当前数据报表的底存储使用的是关系型数据库(RDS),后续将引入数据仓库服务(Data Warehouse Service,简称为DWS),这种MPP的底层数据引擎可用于OLAP分析和对外提供接口服务。

在对外提供数据服务时,我们使用的是团队自研开发AIMS,是一套基于tornado实现的Web 服务框架,AIMS的服务架构如下图所示。在第2期的文章中,介绍了AIMS的详细内容,这里不做重复描述。基于AIMS架构,我们目前支撑了公司30+产品的E2E追溯诉求。

3.png

图3:AIMS整体服务架构

结语

当前,我们已打造了基于EI平台的一站式数据服务,提供包括数据规范、数据接入、数据处理与计算和数据总线服务。我们正在建设支撑各产品线的数据总线服务,支撑全公司从需求->用例->问题单所涉及的关键路径的数据查询和获取,同时更为严格地把控数据血缘,打造更为准确规范、一致完整的数据质量。在加强数据完备性建设的同时,可以预见的是数据开发需求的井喷,所以在今后的工作中还需要考虑开放数据计算、存储能力等赋予业务方有数据开发的能力。我们会继续做好数据运营(DataOps),加强数据工程能力、数据集成能力和自动化能力,更好地服务于各产品线。


【研发智能图书馆】系列其他文章:

主动学习在DevOps中的应用与实践》,《文档驱动开发模式在 AIMS 中的应用与实践》,《软件“美不美”,UI测试一下就知道》。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。