借力StarRocks,"陆战之王"大润发如何在零售业数字化转型中抢占先机?
作者:大润发大数据团队
自 1998 年在上海开设第一家大型超市以来,大润发已在中国大陆地区成功开设近 500 家综合性大型超市,覆盖全国 29 个省市及自治区达 230 多个城市,年销售额过千亿。大润发优鲜、淘鲜达、饿了么、天猫超市线上平台用户达到 6900 万。活跃用户超过 1650 万,一线城市平均每店日均线上订单量突破 2000单。
作为国内大型连锁量贩超市的先导者,大润发在物流仓储、商品管理等领域很早就引入了大数据技术进行智能决策分析,帮助优化管理精度、提高管理水平。大数据平台也跟随技术浪潮多次迭代升级,沉淀出一整套特有的数据子系统和大数据处理方案。
大润发大数据业务起步较早、数据累积和历史组件较多,同时为了保证技术的前沿性,因此逐步发展出了多分析引擎的架构。一方面可以根据各类型引擎的特点处理合适的在线数据产品,一方面也可以根据各类引擎的技术优势及使用效果调整使用场景调节使用权重。
OLAP组件选型
—对于新的 OLAP 引擎,我们有如下几点期待:
社区活跃的开源框架,运维成本不会太高; 能支持多类型 Join,大表 Join 性能要优秀; 要支持高并发处理查询,且查询延迟低,这也是我们最核心的诉求; 要能够支持大规模数据的导入导出,且能与现有数据平台相互兼容; 数据模型灵活,使用场景全面; 支持预计算技术。
我们对时下流行的组件进行了前期调研,StarRocks 以出色的性能、良好的兼容、极简的部署吸引了我们的注意。StarRocks 与大润发数据平台框架现有组件的特点及应用场景对比如下:
为了验证 StarRocks 实际使用性能是否能够达到预期,我们采用了学术界和工业界广泛使用的星型模型测试集 Star Schema Benchmark(简称 SSB 测试集),在本地测试集群(3FE+3BE架构)上进行了单表查询的系列测试。
在 SSB 测试集的 13 个查询中,StarRocks 的整体查询性能是 ClickHouse 的 2 倍多; 在 SSB 测试集的 12 个低基数查询中,StarRocks 的整体查询性能为 ClickHouse 的 1.1 倍。
实践案例
建表还需要注意一些分区分桶问题,官方建议单个分桶的大小在 1-10G,此时查询性能较好。所以如果源表数据量过大或过小,可以适当调整分区或分桶数,以达到最佳的性能状态。
可以根据建表语句 Properties 配置中的参数开启动态分区功能,让 StarRocks 调用底层常驻线程预创建分区; 可以关闭 StarRocks 的动态分区,通过数据平台执行预定义 SQL 语句进行分区创建操作。
1、兼容测试
实时团队也测试了 Apache Flink+StarRocks 的兼容性,凭借官方的 Flink-connector-starrocks 依赖,可以很好实现实时需求的改造。不过需要注意的是:
1.11 版本的依赖没有 Source 读取方法,仍需使用 JDBC 读取。 1.13 以后版本的依赖有 Source 和 Sink 方法。
这两个方法的底层实际是转为 Stream Load 方法进行写入写出,对比 JDBC 的单 FE,可以实现多 FE 数据传输,性能更强。所以如果有实时的应用场景,推荐 Flink 1.13+ 版本配合对应的依赖取得更好的使用体验。
2、其他设想
#04
实践总结
—
性能卓越:StarRocks 的单表性能不输 ClickHouse,多表 Join 的延时对比我们现有的的组件又有着较大优势,即便不做特定的优化,也能有较好表现,这是十分难得的。
运维简单:StarRocks 舍弃了传统多组件的架构形式,FE+BE 的结构十分精简,部署较为便捷。而运行上的稳定可靠,使得对运维的资源消耗非常低。
插件丰富:开发者维护了一些较为实用的插件和工具,可以进行一键部署、日志结构化等。如果这些功能后期能够稳定嵌入 StarRocks 后续版本中,应该可以更好优化使用体验。
社区活跃:开源社区有长期稳定版和快速迭代版可以自由选择,版本升级操作也较为容易。同时有中文社区论坛和官方群可以随时进行问题反馈获得答疑,这一点是要胜过很多竞品的。
权限管理不足:StarRocks 的用户角色功能有待改善,例如该版本只能在创建用户时授予角色,不能授予用户多角色,删除角色后用户权限依然保留。庆幸的是,在不久后的 3.0 版本中,StarRocks 将实现完整的 RBAC,并丰富更多权限项目,从而解决这一问题。
预计算功能泛用性不强:物化视图作为预计算的特色功能,运用场景较为基础,条条框框局限过多,比如不能实现多列聚合运算,不能实现多表 Join 等,使用起来难以做到如臂使指的效果。StarRocks 2.4 版本的异步物化视图功能已经在逐步解决这一困扰。
关于 StarRocks
StarRocks 创立两年多来,一直专注打造世界顶级的新一代极速全场景 MPP 数据库,帮助企业建立“极速统一”的数据分析新范式,助力企业全面数字化经营。
当前已经帮助腾讯、携程、顺丰、Airbnb 、滴滴、京东、众安保险等超过 170 家大型用户构建了全新的数据分析能力,生产环境中稳定运行的 StarRocks 服务器数目达数千台。
2021 年 9 月,StarRocks 源代码开放,在 GitHub 上的星数已超过 3700 个。StarRocks 的全球社区飞速成长,至今已有超 200 位贡献者,社群用户近万人,吸引几十家国内外行业头部企业参与共建。StarRocks 技术内幕:
👇 阅读原文了解 StarRocks 产品详细信息