SelectDB 是基于 Apache Doris (分析型数据库)构建的现代化数据仓库,支持大规模实时数据上的极速查询分析,主要用于 OLAP 场景下对大规模数据进行快速分析和查询,它支持多维分析、实时查询、增量更新、高效的数据更新等功能。在实现高效的数据更新方面,SelectDB 是怎么做到的呢,目前采用了哪几种技术手段:
- 数据分片:将数据划分为多个分片,每个分片可以独立进行数据更新。这样可以在不影响其他分片的情况下,对特定分片进行更新,提高了数据更新的并行性和效率。
- 分布式事务:SelectDB 支持分布式事务,确保在多个分片上的数据更新是一致的。通过使用两阶段提交协议或类似的机制,可以保证数据的一致性和完整性。
- 智能索引:为了提高数据更新的速度,SelectDB 采用了智能索引技术。通过智能索引,可以快速定位到需要更新的数据行,避免了全表扫描,从而提高了数据更新的效率。
- 数据压缩:为了减少存储空间和网络传输开销,SelectDB 支持数据压缩。通过数据压缩,可以减少存储成本和提高数据加载和查询速度。
- 内存缓存:SelectDB 利用内存缓存技术来提高数据更新的性能。将经常访问的数据存储在内存中,可以减少磁盘IO 操作,从而提高数据更新的速度。
- 优化器:SelectDB 的查询优化器可以根据查询的特性和数据的分布情况,选择最优的执行计划。这有助于提高数据更新的效率,特别是在处理复杂查询时。
- 持续集成/持续部署 (CI/CD) :通过使用 CI/CD 工具,可以自动化数据库的部署、测试和更新过程。这有助于减少错误和提高数据更新的可靠性。
- 监控与日志分析:SelectDB 提供了监控和日志分析功能,可以帮助开发者和运维人员及时发现和解决数据更新中的问题。
数据库的技术升级更新为企业带来了全新的机遇和挑战。通过分析型数据库(Apache Doris)企业能够更好地应对大规模数据处理和高并发查询的挑战,提高数据处理效率、实时分析能力和数据一致性可靠性。这有助于企业更好地应对市场变化和客户需求,实现业务创新和发展。
不同的行业都有着订单分析、运单分析、用户画像更新、数据删除、数据覆盖等诉求,这些诉求要想得到快速的满足,就要依赖于高效的数据更新,分析型数据库高效的数据更新在不同行业场景的表现是不一样的:
游戏行为分析场景
- 存量数据几百亿,单副本数十 TB,表包含几十个字段, MolW
- 数十级并发 Flink Connector 任务做 Upsert,峰值吞吐高达近五十万行每秒
物流运单分析场景
- 半年的物流运单数据分析,宽表 200 字段,MoW
- 近十并发 Flink Connector 任务做 Upsert,秒级 Checkpoint,吞吐仅十万每行
支付订单分析场景
- 支持月统计(数据规模千亿左右)、年统计(数据规模万亿左右)
- Upsert 吞吐达每秒十万行
消费金融场景
- 宽表拼接的场景,使用 MoW 表的部分列更新
- 几百列数据,实现数十并发,每个并发更新达十列
- 平均数据可见时间降低明显,数据缩短超 40%
某客户 PoC 压力测试
- 近 50 并发 Flink Connector 任务做 Upsert,秒级 Checkpoint
- Doris MoW 表导入稳定,吞吐可达近十万行每秒
- 某产品导入持续报 Too Many Versions 和 Publish Timeout,导入吞吐五万行每秒,数据量大后 OOM