写点什么

应用实践 | 蜀海供应链基于 Apache Doris 的数据中台建设

作者:SelectDB
  • 2022 年 7 月 04 日
  • 本文字数:3153 字

    阅读完需:约 10 分钟

应用实践 | 蜀海供应链基于 Apache Doris 的数据中台建设

导读:蜀海供应链是集销售、研发、采购、生产、品保、仓储、运输、信息、金融为一体的餐饮供应链服务企业,因其业务比较复杂,2020 年底完成了以 Apache Doris 为核心的架构升级,并在 2021 年开始建设以 Apache Doris 为核心的数据中台。本文将从数据接入,数据服务编排,数据安全,Doris 应用等方面进行介绍。


作者蜀海供应链大数据团队负责人 王永绪

业务背景

蜀海供应链是集销售、研发、采购、生产、品保、仓储、运输、信息、金融为一体的餐饮供应链服务企业,为广大餐饮连锁企业及零售客户提供整体食材供应链解决方案服务。因其业务比较复杂,2020 年底完成了以 Apache Doris 为核心的架构升级,并在 2021 年开始建设以 Apache Doris 为核心的数据中台。


在使用 Doris 之前,我们采用了 CDH 这套数据平台,用了很多组件,但其链路过长,并且开发和维护成本比较大,最后没有引入一个很好的 OLAP 系统。


因为我们的数据历史包袱比较轻,经过对 Apache Doris 的调研和测试,决定使用以 Apache Doris 为核心建设数据平台,它有以下优势:

  • 同时支持高并发点查询和高吞吐的 Ad-hoc 查询。

  • 同时支持离线批量导入和实时数据导入。

  • 同时支持明细和聚合查询。

  • 兼容 MySQL 协议和标准 SQL。

  • 支持 Rollup Table 和 Rollup Table 的智能查询路由。

  • 支持较好的多表 Join 策略和灵活的表达式查询。

  • 支持 Schema 在线变更。

  • 支持 Range 和 Hash 二级分区。

  • 高可用,能容忍部分节点挂掉。

  • 运维简单,部署,维护,升级都比较简单,不依赖外部组件。


架构图如下:


由于之前已经对元数据,数据服务,接入数据质量,血缘关系的建设做过介绍,本文将从数据接入,数据服务编排,数据安全,Doris 应用等方面进行介绍。

数据接入

数据接入功能是数据开发的重要一环,我们开发了一套数据接入系统,在 Web 端操作,实现零代码数据接入到 Doris,以下为主要功能介绍:

  • 订阅 MySQL Binlog,入仓到 Doris 表。

  • 订阅 Kafka Topic,入仓到 Doris 表。

  • 数据动态清洗,在页面编写代码即可完成数据入仓之前的转换。

  • 接入任务合并,为节省资源,支持分库分表在一个任务接入,支持多个 TOPIC 在一个任务接入。

  • 动态数据质量校验,配置字段质量规则,进行接入数据质量校验。

  • 入仓加密,再接入过程中,可以对敏感数据进行加密后再入到 Doris 表。

  • 错误数据管理,因为网络或者数据错误等原因,在页面可完成数据的重新入仓。

  • 数据接入链路监控,比如错误数据监控,数据生产链路异常监控,数据消费链路异常监控,任务数据接入趋势图,集群数据接入趋势图等。


数据接入任务列表:


数据接入任务配置:


数据接入动态代码处理:

数据服务编排

数据服务是供业务系统调用 API 获取数据的一个系统。可以在页面进行 API 新建、编辑、在线开发调试、设置限流、上下线等操作。由于 API 之间可能存在业务逻辑关系,并且不能在配置同一个 API,我们开发了数据服务编排功能,通过拖拉拽的方式,让 API 之间能够进行编排并进行数据传递,对外提供 API 时,仍然暴露的是一个 API。

举例:用户和用户所属的城市保存在一个 MySQL 数据源,每个城市的销售额保存在 Doris 数据源。要开发的 API 的功能是用户只能查看他所属城市的销售额。那么可以通过服务编排功能来实现,Node1 节点通过用户 ID 获取到城市,Node2 节点获取上游节点的输出(城市)作为输入,获取城市销售额作为 API 的输出。



每个节点的输入和输出都可以自定义配置,输入可以来自 API 请求参数,也可以来自上游某个节点的输出,可以来自全局参数,比如用户 ID,分页参数等;


数据安全建设

数据安全是一个很大的话题,涉及到方方面面,这里从数据加密,数据权限和数仓数据备份几个方面进行简单介绍。

数据入仓加密

在数据接入过程中,可以选择对字段进行加密,当接入到 Doris 表后,就已经是加密的数据,后续的数据分析,可以利用密钥进行解密。

数据接入加密配置:

数据权限

由于公司查看报表的人员分布很广,对于同一个数据模型,每个城市每个区域的销售,运营,工厂人员,管理人员等人员查看到的数据是不一样的,需要精确控制到行权限和列权限,所以**我们在 Doris 上层开发了一套数据权限系统,通过配置化的方式,完成数据权限配置,可以精确到行权限和列权限。**BI 报表系统作为一个接入方,引入数据权限客户端并实现相应抽象方法即可。


举例 1:对一个报表模型,张三只能查看区域为华北区域或者西北区域的数据;李四,王明只能查看城市为西安或者北京,并且销售额大于 10000 的数据;张四,张五不受限制,其他人无任何权限。


模型行级权限规则列表:


行级别赋权规则编辑:



举例 2: 所有人都能查看报表数据,但是每个人只能查看自己所在城市,并且金额大于 200 或者金额小于 100 的数据。

自由组合规则条件和规则关系:



人员标签管理:



举例 3:列权限规则,可以针对用户设置禁止查看,数据脱敏等规则列级别权限配置:



数仓数据备份

我们以 Dori 作为存储和计算的核心,Doris 本身数据已经是多副本存储,但是考虑到容灾,我们还是会对核心接入数据进行备份到 HDFS,为此开发了一套数仓数据备份系统,把 Doris 表按照全量或者分区,定时备份到 HDFS。


备份计划配置:


备份计划任务列表

Doris 的应用

我们用 Doris 承载了数据分析的计算和存储。此外,还存在一个这样的场景:业务的 MySQL 数据库数据一直在增长,大量的历史数据影响业务线上性能,而且不能直接删除,因为还有低频的历史数据查询,为此,我们基于 Doris 开发了一套业务历史数据归档系统,可以定时把不再变更的历史数据进行增量归档,通过数据服务系统提供数据查询,把归档的数据推送给业务方,业务方进行校验,并删除历史数据。


归档计划列表:


归档计划配置:


数据推送计划配置:

收益

目前以 Doris 为核心的数据平台,已经支撑了公司几十个业务系统的数据查询和数据分析需求。为 BI 智能分析,各业务系统提供了优异的查询性能,并且极大减少了数据平台维护,数据开发,数据中台建设的成本。

  • 数据实时接入稳定可靠,通过 Stream Load,实时接入了数千张表,每天接入数据总条数在亿级别,非常稳定可靠;

  • 支持高并发高性能的数据在线分析查询,每天对 Doris 的在线分析查询次数在百万级别,大部分 SQL 在毫秒级别,慢 SQL 也有很大优化空间,并且 Doris 会自动做一些场景下的查询优化;

  • 通过直接查询原始接入表,建立物化试图,建立索引,支撑了多个低延时高并发的实时查询需求。并且多表 Join 性能优异;


其他:

  • Doris 的整体架构简单,运维成本很低,可在线滚动升级,可节省人力专注于数据中台的建设以及业务开发;

  • Doris 高度兼容 MySQL 协议,交互式查询分析,提供高效的数据开发体验;

  • 高可用,数据分区多副本存储,不会因为部分节点的异常导致整体服务不可用;

  • 广泛生态兼容,社区提供了和 Flink,Datax 等大数据交互的 Doris 插件,通过 Broker 导入导出数据简单快捷;

  • 社区活跃,Doris 功能和性能在不断的扩充和提升,遇到问题能够得到社区的密切帮助。

加入社区

欢迎更多热爱开源的小伙伴加入 Apache Doris 社区,参与社区建设,除了可以在 GitHub 上提 PR 或 Issue 之外,也欢迎大家积极参与到社区日常建设中来,比如:

参加社区征文活动,进行技术解析、应用实践等文章产出;作为讲师参与 Doris 社区的线上线下活动;积极参与 Doris 社区用户群的提问与解答等


SelectDB 是一家开源技术公司,致力于为 Apache Doris 社区提供一个由全职工程师、产品经理和支持工程师组成的团队,繁荣开源社区生态,打造实时分析型数据库领域的国际工业界标准。基于 Apache Doris 研发的新一代云原生实时数仓 SelectDB,运行于多家云上,为用户和客户提供开箱即用的能力。


相关链接:

SelectDB 官方网站:

https://selectdb.com (We Are Coming Soon)

Apache Doris 官方网站:

http://doris.apache.org

Apache Doris Github:

https://github.com/apache/doris

Apache Doris 开发者邮件组:

dev@doris.apache.org

发布于: 刚刚阅读数: 3
用户头像

SelectDB

关注

极速易用 开源开放 2022.04.20 加入

The enterprise-grade cloud-native distribution for Apache Doris.

评论

发布
暂无评论
应用实践 | 蜀海供应链基于 Apache Doris 的数据中台建设_数据库_SelectDB_InfoQ写作社区