让美团、京东、搜狐都说好的数据仓库,牛在哪?

守着金山讨饭吃,乍听有些难以想象,但很多企业正遭遇这样的窘况。html

数据被誉为“新石油”,如何管理并洞悉数据的价值,是企业将来发展的核心竞争力。进入大数据时代,数据规模与日俱增,若是没有一款性能强大的数据仓库,企业不只难以抵挡海量数据带来的各类挑战,还会在瞬息万变的市场环境中迷失方向。sql

而有些企业在面对海量数据时却能从容应对,他们又有哪些制胜法宝?今天,就让咱们一块儿回顾下,美团、京东、搜狐等企业,如何应对大数据带来的各类挑战。数据库

美团——节约计算资源,提高开发效率apache

做为国内领先的生活服务电子商务平台,美团每时每刻都须要处理大量的订单及商品信息。而在2017年年末,美团已经维护了Kylin和Druid两个开源系统,Kylin主要知足离线固化多维分析的需求,Druid主要知足实时多维分析的需求。架构

但因为Kylin和Druid都是基于预计算的系统,没有保留明细数据,没法进行明细查询。为此,美团于2018年初,开始调研当时开源的ROLAP系统,并进行落地。并发

美团当初主要调研了SQL on Hadoop、TiDB、SnappyData、ClickHouse和Doris等系统,这些都是优秀的开源系统,且都有其实用场景,选型主要从功能、架构、性能、易用性、运维成本等几个维度来分析。app

为何没有选择这些系统的简要说明运维

经过综合对比,美团技术团队最终选择Apache Doris(Incubating)。对用户而言,Apache Doris(Incubating)功能强大,易用性好;对于平台侧而言,Apache Doris(Incubating)易运维、易扩展和高可用:高并发

  1. 易运维指Apache Doris(Incubating)无外部系统依赖,部署和配置都很简单;
  2. 易扩展指Apache Doris(Incubating)能够一键加减节点,并自动均衡数据;
  3. 高可用指Apache Doris(Incubating)的FE 和BE 均可以容忍少数节点挂掉。

美团点评2018年Doris服务现状工具

变化维表的Join是外卖业务很典型的一个应用,为了知足个别历史数据查询的需求,就必须重刷几百天的历史。这带来大量计算资源的浪费,且数据冗余比较严重,开发效率低下。

在应用Apache Doris(Incubating)以后,只须要按天同步事实表和维表,查询现场Join就能够。不须要天天重刷历史数据,开发效率提高明显。在保持查询性能不变的前提下,Apache Doris(Incubating)在导入速度和存储效率上都有了很大的提高。

京东——圆满完成618大促期间的报表业务

每一年的618大促,都是对京东技术团队的一次“大阅兵”。京东广告平台有上百张报表,每日百亿级别的聚合结果增量,须要保证查询效率与实时性的统一。

过去主要的开源解决方案是SQL on Hadoop 生态,但Hadoop方案总体依赖模块过多,对业务团队来讲,运维成本高;若是使用公司大数据平台提供的Hadoop环境,不免与其余团队共用,查询效率与稳定性难以保证,对查询延迟要控制在毫秒级的报表需求更是没法知足;若是自建Hadoop环境,本身维护,又会出现运维压力太大的问题。

经过多方对比选型,京东最终选择了Apache Doris(Incubating),主要有如下几个关键优点:

  1. 谷歌Mesa理论支持,百度工程实践。而且已经进入Apache基金会孵化,将来可期,而且后续开发维护有保障。
  2. 完善的功能支持,标准MySQL协议。由于Apache Doris支持MySQL协议,现存的不少外围MySQL功能模块均可以使用,总体使用都很方便。而且原有的MySQL数据库的用户迁移成本很低。
  3. 高并发、高QPS支持。由于核心代码所有使用C++实现,性能方面要优于其余语言。另外一方面良好设计也保证Apache Doris在应对高并发时性能要优于其余开源产品。
  4. 方便运维,架构清晰。只有FE和BE两个模块,外部依赖少。能够专心维护Doris系统,其余ETL的工做能够交给业务部门处理,解放了人力。

在618大促期间,Doris提供了很是稳定的线上服务。在线进行了稳定的schema change,全程无事故。在导入方面,支撑100亿行/日的增量,导入峰值达到2000w/分钟秒级导入延迟。

在查询方面,支撑了4000w+的每日查询,TP99仅为150ms。大促期间QPS峰值3000+,压测阶段峰值达到1w+

搜狐——开发流程极大简化,数据查询很是方便

做为四大门户之一,搜狐在国内是家喻户晓的名字。搜狐智能媒体,主要是对搜狐主站的文章进行管理、展现和推荐。其数据业务分为两部分:一是传统的BI业务,包括数据报表、多维分析、数据挖掘等;另外一部分主要是和文章相关,包括文章搜索、DMP、打标签等。

根据业务须要,数据处理计算范型主要分为两大部分:Batch层和实时处理层,实际上就是目前典型的Lambda架构。为此,搜狐团队但愿找到一个开源工具能够知足交互式查询和实时数据统计。

搜狐对主流开源产品作了比较

经过综合对比,Apache Doris(Incubating)最终走进了搜狐团队的视野,显著优点以下:

  1. 首先是元信息管理和存储,部署简单,自依赖;
  2. 对于存储层,数据分区比较完善,支持Range分区和Hash分区,有强大的rollup功能,支持Stream load和Batch load,能够针对实时和离线数据场景,可对接Mysql、HDFS;
  3. 对于查询层,支持MySQL协议,能够说是使用零成本,方便迁移,查询功能也很完善。

根据搜狐现有业务须要,统计每5分钟粒度的PV UV汇总数据;统计每一个5分钟时间点的当日累计PV UV;查询当日及历史30天内数据,做为对比;查询须要秒级响应;数据延迟要求控制在5分钟内;原始数据约2000万/5分钟;业务需求特色-统计分析维度固定:a/b/c/d ; a/b/c。

过去原始方案是经过Spark Streaming + Redis + MongoDB来实现的。但该方案存在诸多问题:如针对每一个查询维度组合,生成一个Spark处理任务,对用户后续的需求不能很好知足;Redis压力很大,导入任务运行不稳定,常常延迟;流程复杂,依赖多个系统,调了很长时间都难以稳定下来;时间维度只能使用Processing Time,没法使用实践真实发生的时间Event Time,数据计算没法保证准确性等等。

在将其迁移到Doris后,查询时就简单不少,只需导入一份数据,就能够支持多种维度组合查询。目前,根据业务状况,批量导入约10万行/秒,总共两千万行数据能够快速导入,线上使用以来未遇到延迟问题;聚合后数据800万行/天,单日查询延迟约2秒。开发流程极大简化,数据查询获得巨大提高。

以上就是美团、京东、搜狐等大厂在数据处理方面的实践运用。

自2008年第一个版本发布至今,从过去只为解决百度凤巢报表的专用系统,已经成长为目前国内惟一的分析型数据库孵化项目,Apache Doris (incubating) 已经陪伴全部用户走过了12个年头。一路走来,Apache Doris (incubating)初心未改。

Apache Doris (incubating)官网,点击进入>>

相关文章
相关标签/搜索