酷家乐是群核科技旗下出名业务品牌,专一云设计零碎及三维内容制作的技术研发和利用,面向家居、房产、公装等全空间畛域,为企业级客户提供设计渲染、营销展现、生产施工、几何建模等场景的解决方案和服务。
酷家乐大数据技术团队负责酷家乐大数据体系框架的建设,撑持日常BI经营剖析、商业化数据产品、在线大小数据业务、人群画像等场景。生产环境上应用StarRocks集群(10 x 物理机)替换了原有阿里云ADB集群和 EMR Presto集群,在应用局部集群资源前提下,查问性能即可与ADB持平,Presto P95的查问从秒级晋升到500ms级别。在实现等同剖析工作状况下,StarRocks性价比是同类产品的两倍以上。
StarRocks一套集群对立了实时和离线的剖析场景,替换了多套零碎带来的零碎复杂性,简化了数据ETL流程,同时大幅晋升Adhoc场景查问效率。
本文次要侧重于酷家乐大数据团队基于新一代极速MPP剖析型数据库StarRocks,在数据服务体系和数据利用场景中的实际和摸索。
“ 作者:弋舟,
大数据技术专家,酷家乐大数据团队负责人,坐标杭州 ”
数据引擎现状
随着业务规模越来越大,数据规模和体量也急剧收缩。企业的原始数据通常来源于日志埋点文件、业务数据库、三方接口等。企业通常基于CDH/Hadoop等大数据分布式计算框架和数据集成工具,构建离线的数据仓库,并对数据进行适当的分层、建模、加工和治理。
但下层数据利用对查问的数据存储、时效性要求高,数据最终会通过数据同步工具回流到MySQL、ElasticSearch、Presto、HBase等关系型数据库/MPP数据库中。
酷家乐大数据体系积淀了诸多主题数据,例如:C端用户行为流量数据,B端用户账号等应用数据,行业报告相干的数据等。
因为数据收缩,尤其是酷家乐设计工具应用场景下产生的模型/计划/渲染应用明细数据,离线实时计算工作须要对TB级别的数据进行调度、聚合、计算,在数仓里积淀出大量明细表、聚合表和最终的数据报表。
数据服务层的愿景是凋谢数仓能力,建设对立的数据服务进口,针对不同的查数场景(数据规模、QPS、UDF反对、运维老本等),在底层引擎上的选型:
- 大数据量、低QPS:应用Hive + Presto等基于Hadoop生态的离线批工作计算框架和MPP数据库来解决。
- 小数据量、高QPS:应用MySQL、ElasticSearch、HBase、MongoDB等关系型/非关系型TP数据库来解决。
在目前的数据架构下,咱们遇到如下问题和挑战:
- 离线/实时ETL工作过多,解决逻辑大部分为简略聚合/去重,导致聚合表数量宏大,导致经营和运维上的成本增加;
- 针对中等数据量、中等QPS的查问场景,如何能兼顾数据规模的同时,有较敌对的查问的耗时响应,耗时小于200ms;
- 大数据量下插入、更新的实时数据场景的反对,例如:用户画像、实时DMP、用户门路、监控数据大盘等。
新引擎的引入
针对如上的问题和挑战,咱们的指标是寻求尽可能少的ROLAP引擎,利用在明细表上现场计算来解决ETL工作、数仓表过多问题,同时须要兼顾在数据规模、查问QPS、响应耗时、查问场景方面的衡量。
目前市面上ROLAP引擎百花齐放,诸如Impala、Druid、ClickHouse、StarRocks。通过一番调研,咱们最终抉择了StarRocks。StarRocks是基于MPP架构的剖析型数据库,自带数据存储,整合了大数据框架的劣势,反对主键更新、反对现代化物化视图、反对高并发和高吞吐的即席查问等诸多长处,人造能解决咱们上述的问题。
利用实际
StarRocks上生产环境次要作为离线/实时数据的ROLAP数据库应用。离线数据次要存储于ODPS,通过DataX工作批量同步数据,实时数据次要存储于Kafka中,基于Kafka的流式解决工作写入。DataX工作和Flink工作对立写Doris Proxy服务,由代理控制器通过HTTP Stream Load的形式控制数据写入周期和批次大小。基于StarRocks重构原有剖析平台对数仓内现有存在痛点数据业务进行梳理:
- 每日的数据增量在上亿规模的超大明细表,须要统计日、周、月、季、年等统计数据;
- 商家账号应用、模型应用、计划渲染在任意日期区间的聚合值、累计值、去重值。
这些需要在前端查问,都须要保障低提早。在没有引入StarRocks之前,咱们应用的底层引擎是MySQL或者Presto on HDFS存贮存明细表/聚合表进行查问。MySQL解决上亿规模的数据,无论应用分库分表、分区表、集群化部署的PolarDB计划,都会存在慢查问、数据库扛不住、运维艰难的困境;Presto on HDFS的计划更偏差于剖析型数据业务,尽管能存储海量的数据,计算能力不错,惟一致命的在于无奈满足在线业务的高吞吐QPS,查问比拟难做到毫秒级。引入StarRocks带来的业务成果如下:
- 撑持了在线数据查问+数据分析业务,服务于对内经营+对外商业化数据产品,在线业务查问P95耗时在毫秒级别,剖析型业务查问P95耗时在秒级别;
- 反对10亿规模的明细表查问,月、季、年度统计数据现场算聚合统计、去重,查问耗时能管制在500ms;
- 千万级别的多表的join和union查问,通过Colocate Join个性优化,查问响应在秒级。
实时链路的摸索
在摸索实时数据链路计划时候,咱们次要思考到了StarRocks的如下劣势:
- 实时写入性能:目前StarRocks反对HTTP Stream Load自定义的分钟级别微批写入和Kafka To StarRocks的秒级提早,齐全能满足T+m实时数据业务;
- 对立离线和实时剖析:实时数据和离线数据更好的在StarRocks中进行交融,灵便撑持利用,数据存储策略通过StarRocks动静分区的性能进行清理;
- SQL Online Serving:高效的SQL即席查问能力,可能兼容业界风行的SQL标准,撑持业务灵便简单的拜访,进步取数开发的效率。
总结和布局
酷家乐大数据团队引入StarRocks生产集群,解决了数据服务层单表亿级别规模、高QPS数据场景下引擎的空白,间接凋谢明细表准实时查问的能力,给下层数据业务和BI零碎提供了更多的抉择和自由度,同时将大大减少数仓中大量ETL工作、聚合表、报表,升高了数仓ETL的运维压力和保护老本。将来的咱们在StarRocks的利用和实际上还有不少布局:
- 除了unique和duplicate数据模型,将来会将合乎的数据场景迁徙至aggregation模型和物化视图表,进一步升高数仓开发保护老本,升高查问提早;
- StarRocks on ES的性能值得咱们深挖和摸索,解决了原生ES集群无奈反对跨索引join的能力;
- 更多数据应用层的场景接入StarRocks,例如人群更新、用户画像服务、用户行为路径分析等,将进一步拓展StarRocks在实时数据写入、批量数据更新场景中的利用;
- 和酷家乐数据集成平台、数仓平台深度买通,欠缺监控体,作为大数据团队的基础设施去保障稳定性和服务;
- 思考应用多云架构,自主可控的数仓架构能够灵便的在多云间切换迁徙,升高繁多来云厂商的依赖,管制老本进步可用性。
- ......
最初的最初,感激StarRocks技术团队给予的激情、靠谱的答疑解惑和技术支持!!!