中国邮政邮科院|中国邮政邮科院 X DorisDB:统一OLAP平台,大幅降低运维成本

邮政科学研究规划院有限公司(以下简称“邮科院”),作为中国邮政集团有限公司的科研智库单位,专注于战略规划、企业管理、工程设计、物流装备、智能终端、质量检测、标准化研究等领域,在助力中国邮政战略转型和经营发展中发挥着重要支撑作用。
邮科院数据组负责全院大数据体系架构的建设,支撑日常BI运营分析、科研数据产品、物流数据、网点画像等业务场景。邮科院数据组通过使用DorisDB,统一了实时和离线的分析场景,替换了ClickHouse、Presto、MySQL等系统,解决了原有多套系统带来的运维和使用复杂性,简化了数据ETL流程,同时大幅提升OLAP、Adhoc等场景的查询效率。本文主要介绍邮科院数据组基于新一代极速全场景MPP数据库DorisDB,在数据服务体系和数据应用场景中的实践和探索。
“作者:谢翔 邮政科学研究规划院有限公司寄递研究所数据组负责人,专注于数仓建设、数据分析等领域研究。”
一、业务背景随着科研数据积累越来越大,数据规模和体量也急剧膨胀。科研的原始数据通常来源于研报抽取、日志埋点文件、业务数据库、三方接口等。过去通常基于CDH/Hadoop等大数据分布式计算框架和数据集成工具,构建离线的数据仓库,并对数据进行适当的分层、建模、加工和管理,构建各类分析主题。邮科院数据体系中沉淀了诸多研报主题数据,例如:电商流量数据,物流企业财务数据,行业报告相关的数据等。
上层数据应用对查询的响应延迟和时效性要求高,会将数据通过数据同步工具同步到MySQL、ElasticSearch、Presto、HBase、ClickHouse等数据库系统中,来支撑上层数据应用的查询要求。
邮科院的大数据总体架构如下图所示,从下到上可以分为数据接入层、数据计算层、数据服务层和数据应用层。
中国邮政邮科院|中国邮政邮科院 X DorisDB:统一OLAP平台,大幅降低运维成本

数据计算层使用科研工作各分析场景下产生的模型/方案/业务的明细数据,进行离线数据计算,对TB级别的明细数据进行调度、聚合、计算,在数仓里沉淀出大量明细表、聚合表和最终的数据报表。
数据计算层生成的各类数据表,会同步到数据服务层,由数据服务层提供接口给数据应用层使用,满足不同的数据业务需求。
二、业务痛点数据服务层的愿景是开放数仓能力,建立统一的数据服务出口,针对不同的数据业务分析场景(数据规模、QPS、UDF支持、运维成本等),原有架构在底层使用了不同的查询引擎:
·大数据量、低QPS:使用Hive、Presto、ClickHouse等基于Hadoop生态的离线批任务计算框架和MPP数据库来解决。
·小数据量、高QPS:使用MySQL、ElasticSearch、HBase、MongoDB等关系型/非关系型数据库来解决。
使用多套查询引擎,我们遇到如下问题和挑战:
·离线/实时ETL任务过多,处理逻辑大部分为简单聚合/去重,聚合表数量庞大,导致运营和运维上的成本增加;
·针对中等数据量、中等QPS的查询场景,如何能兼顾数据规模的同时,有较友好的查询响应延迟;
·大数据量下插入、更新的实时数据场景无法得到支持,例如:网点画像、实时数据导入、邮路路径、研报数据汇总等。
三、OLAP引擎选型针对如上的问题和挑战,我们的目标是寻求尽可能少的OLAP引擎,利用在明细表上现场计算来解决ETL任务、数仓表过多问题,同时需要兼顾在数据规模、查询QPS、响应耗时、查询场景方面的权衡。
目前市面上OLAP引擎百花齐放,诸如Impala、Druid、ClickHouse、DorisDB。经过一番调研,我们最终选择了DorisDB。DorisDB是基于MPP架构的分析型数据库,自带数据存储,整合了大数据框架的优势,支持主键更新、支持现代化物化视图、支持高并发和高吞吐的即席查询等诸多优点,天然能解决我们上述的问题。