orisSummit Asia2024 mit Asia2024 DorisSummit A DorisSummit Asia202 DorisSummit Asia2024 DorisSummit 中通快递基于SelectDB的应用实践 Asia2024 DorisSummit Asia2024 童孝天高级研发工程师 DorisSummit 目录01 02 背景介绍应用实践 orisSummit Asia2024 Asia2024 mit Asia2024 DorisSummit Asia2024 DorisSummit A DorisSummit DorisSummit Asia202 03对比测试 Asia2024 04未来展望 orisSummit Asia2024 mit Asia2024 DorisSummit A DorisSummit Asia202 DorisSummit Asia2024 DorisSummit 01 Asia2024 DorisSummit Asia2024 背景介绍 orisSummit Asia2024 mit DorisSummit A Asia202 公司简介 DorisSummit 简介 Asia2024 DorisSummit 中通快递股份有限公司成立于2002年5月8日,总部位于上海,是一家集快递、物流及其他业务于一体的大型集团公司,中通快递的包裹量在2024年第三季度达到了87.2亿件,同比增长15.9%,市场份额为20.0%左右。 Asia2024 Asia2024 DorisSummit DorisSummit Asia2024 中通科技是中通快递旗下的互联网物流科技平台,拥有一支千余人规模的研发团队,秉承着“互联网+物流”的理念,与公司的战略、业务紧密的衔接,为中通生态圈的业务打造全场景全链路的数字化平台服务。 orisSummit Asia2024 mit Asia2024 DorisSummit A DorisSummit Asia202 DorisSummit Asia2024 DorisSummit 03 Asia2024 DorisSummit Asia2024 应用实践 orisSummit Asia2024 DorisSummit A Asia202 选型背景 DorisSummit 随着业务的不断发展,之前双十一的业务量到现在已成为每日的常态。为了满足各大业务场景对实时分析时效性的要求,同时保证数据快速写入和极速查询,需要一个合适的OLAP引擎补充原有的离线数仓架构体系,痛点具体如下: Asia2024 DorisSummit 数据时效不足 离线数据仓库使用离线抽取的方案,数据时效性为T+1,而报表、数据大盘要求数据实时更新,当前架构无法满足 查询效率低 Asia2024 DorisSummit Asia2024 BI报表/离线分析需满足秒级别查询响应,离线数据仓库执行引擎主要是Trino及SparkSQL,需读取和写入HDFS中的数据,执行时长一般为分钟级别,影响查询效率 维护成本高 mit Asia2024 DorisSummit 整个技术栈涉及组件繁多,包括Trino/HDFS/Yarn/HBase,之前线上也有一些实时场景使用ClickHouse,但是维护较为复杂,且有些场景需求也无法满足 orisSummit Asia2024 mit DorisSummit A Asia202 应用场景 借助SelectDB的高效的数据更新,低延时的实时写入以及优异的查询性能,我们在以下几个场景中进行应用实践: DorisSummit Asia2024 DorisSummit 复杂的实时需求 构建实时宽表,横跨快递的整个生命周期,需要汇总多条kafka数据流,进行数据整合,在通过Flink计算后,将数据写入SelectDB集群,并在此基础上进行准实时的数据分析 离线数据查询 Asia2024 DorisSummit Asia2024 对于BI报表/离线分析需满足秒级别查询响应,我们将离线数据计算后的数据定期导入实时数仓SelectDB表中,可以实现快查询,满足离线数据分析和决策的需求 简单的实时需求 Asia2024 DorisSummit 对于一些较为简单的实时需求,利用SelectDB的部分列更新,以及其高效的查询能力,给C端或者实时大屏提供数据服务接口的能力 orisSummit Asia2024 mit DorisSummit A Asia202 实时宽表 DorisSummit 借助其他OLAP数据库,构建大宽表,基于宽表做分钟级的准实时分析: Asia2024 DorisSummit Asia2024 DorisSummit 6亿+45亿+200列+ Asia2024 日处理数据量数据总量字段总量 Asia2024 DorisSummit 存在的问题:总任务数50+,时效在5-10分钟,随着任务数量的增加,同一时间点的任务数会增加,导致集群负载变大,影响任务的执行时间,时效难以保证 Asia2024 DorisSummit 使用SelectDB带来的收益 DorisSummit Asia2024 DorisSummit 更稳定 更高效 更节约 orisSummit Asia2024 mit Asia2024 A DorisSummit Asia202 支持分区表,扫描的分区数据固定,相对较稳定,原OLAP对全局索引不是很友好,每次都会扫描全表数据,对集群影响更大 相比原OLAP数据库,部分SQL性能提升5-10倍,从原来10分钟左右到目前 DorisSummit 90%以上的分析能到1分钟内,部分可以秒级响应 Asia2024 资源仅使用原有机器的1/3,便可以cover住原来的所有业务 orisSummit Asia2024 mit DorisSummit A Asia202 BI报表/离线分析加速 DorisSummit 查询不够稳定 Asia2024 DorisSummit 在超大Hadoop集群下,namenode的轻微抖动会严重影响一些短而小的adhoc查询和报表分析,导致查询不够稳定。 Asia2024 DorisSummit 不支持高并发 Asia2024 DorisSummit Asia2024 使用的Trino和SparkSQL在处理大规模数据集方面表现出色,但面对高并发查询时,处理效率与我们的预期存在较大差距。 orisSummit Asia2024 mit DorisSummit A Asia202 引入SelectDB 极致的加速体验 Asia2024 DorisSummit DorisSummit Asia2024 DorisSummit •在实时数仓建设阶段,我们把离线数据DIM维度层、应用层的数据通过SeaTunnel写入了SelectDB中,实现了结果表的查询加速,从而实现每秒上2K+数量级的QPS并发查询,数据报表更新及时度大大提高 Asia2024 •SelectDB提供了灵活丰富的SQL函数公式,并拥有高吞吐量的计算能力,数据分析师、产品经理等业务人员通过Metabase Asia2024 DorisSummit (数据探索与可视化工具)+SelectDB即可基本满足BI的数据探索需求,大部分查询响应速度都在秒级完成 Asia2024 DorisSummit 高并发与分析场景实践 DorisSummit 极致的时效性 Asia2024 DorisSummit 作为数据服务提供数据大屏,对实时性要求高,借助倒排、BloomFilter来支持多维分析,通过合理的分区分桶,在查询时过滤非必要的数据,使数据扫描快速定位,加速查询响应时间 Asia2024 DorisSummit 需要进行更新 orisSummit mit A Asia202 Asia2024 DorisSummit Asia2024 对表结构的设计需要结合业务,因地制宜,合理规划Key和分区分筒列,一般将where条件或者join的字段定义成分桶较为合适 支持主键表(UniqueKey)进行高效的数据更新,并对Upsert、条件更新/条件删除、部分列更新、分区覆盖等各类更新提供了完备的支持,满足高效灵活的数据更新需求 orisSummit Asia2024 mit Asia2024 DorisSummit A DorisSummit Asia202 DorisSummit Asia2024 DorisSummit 03 Asia2024 DorisSummit Asia2024 对比测试 orisSummit Asia2024 mit DorisSummit A Asia202 ES使用场景 DorisSummit 写入吞吐大/高并发点查询 Asia2024 DorisSummit 快递信息流转数据量巨大,对写入要求高,并且对订单ID等有高并发点查的需求。 Asia2024 DorisSummit 多维查询 Asia2024 创建时间/签收时间分片 为了加速查询性能,减少扫描数 Asia2024 DorisSummit 据,分别按照揽收时间/签收时间分片,冗余多份数据,加速查询 Asia2024 DorisSummit ES相关业务痛点 DorisSummit Asia2024 DorisSummit 开发成本高存储成本高写入性能受限 orisSummit mit Asia2024 DorisSummit A DorisSummit Asia2024 Asia202 •根据逻辑字段按照固定算法确定数据所属分片,指定分片查询; Asia2024 •需要额外了解ES查询语法,门槛高。 •全字段索引:索引在表创建时是固定的,基于多维度查询创建了全字段索引,存储成本相对较高。 •数据写入时倒排索引需要进行分词,排序等一些CPU密集型操作,大量的倒排索引会导致写入性能下降。 Asia2024 DorisSummit 基于SelectDB带来的收益 Asia2024 orisSummit 开发灵活 存储成本低 多场景下的查询加速 orisSummit A a2024 DorisSummit mit Asia2024 D t A DorisSummit A Asia202 SelectDB兼容MySQL,使开发操作简单、使用门槛低,并且易于部署、迁移与运维。 按需设置倒排索引,降低数据存储,另外SelectDB列存采用的ZSTD压缩算法,可实现8:1的压缩比,进一步降低存储成本。 高频使用SelectDB分区分桶裁剪功能,在查询时过滤非必要的数据,因而在百亿数据集下,依然能有很快的响应时间和更高的并发。 orisSummit Asia2024 mit DorisSummit A Asia202 SelectDBVsPresto oisSummit 2024 数据量 DorisSummit 单分区:100GB数据格式:ORC A SelectDB较Presto有1-2倍的性能提升 DorisSummit 参数优化 Asi Asia2024 dfs.client.socket-timeout=500 解决长尾问题,hdfs集群较大,负载较高 Asia2024 DorisSummit 时,调低socket-timeout,快速失败,从新的block块进行读取重试,提升稳定性 orisSummit Asia2024 mit Asia2024 DorisSummit A DorisSummit Asia202 DorisSummit Asia2024 DorisSummit 04 Asia2024 DorisSummit Asia2024 未来展望 Asia2024 DorisSummit 未来规划 更直观的Profile DorisSummit 目前SQL调优,严重