四川航空基于SelectDB的湖仓一体大数据分析引擎建设
公司介绍与业务背景
四川航空股份有限公司(川航)是国内大型航空公司,运营全空客机队超过200架,年运送旅客量超过3000万,航线网络覆盖全球。航司业务特点包括航班调度、乘客体验与服务、机场和航司数据交互、业务复杂性和多样性、国际化与合规要求。数据交互复杂,实时要求高,业务系统多。
架构演进
四川航空大数据平台建设经历了以下阶段:
- 2010年:大数据 Hadoop 平台,用于提升报表刷新时效。
- 2014年:数据仓库与数据集市,集中业务系统数据,按需开发数据报表。
- 2018年:基于 Hadoop 和 Palo 的数据中台,实现数据治理、数据底座和数据产品统一。
- 2022年:OLAP 技术栈、统一数据服务。
- 2023年至今:湖仓一体分析引擎。
早期架构存在架构复杂、运维困难、支持高并发查询、数据时效性和查询效率低、大规模数据导入瓶颈、用户开发成本高等问题。目标需求是架构简单易用、高效多数据源导入、秒级查询响应、快速扩展、实时高效。
SelectDB 被选型为湖仓引擎,主要因素包括数据生态圈丰富、Join 能力出色、导入方式丰富、支持高并发。
SelectDB 湖仓一体应用实践
多源数据快速接入
- 对接消息队列,通过 Routine Load 对接 Kafka 数据,消费数据入湖。
- 对接核心数据库,实时同步入湖。
- Hive 加速查询,通过 Hive Catalog 对接,方便和 SelectDB 内表关联。
- 数据库分析,针对不常用的数据库,通过外表查询。
基于SelectDB的联邦数据湖分析场景
提供统一查询入口,支持 SQL 查询分析、数据导入和数据写回。
高性能更新能力
- MOR 表支持小批量实时高频导入,基于主键做高频数据更新。
- MOW 表模型性能提升近 4 倍,50 并发平均耗时 4.6ms。
- 部分列更新场景支持事件名、离港航班变更、航班状态变更等。
数据建模场景
- AGGREGATE KEY 用于报表统计、指标计算。
- UNIQUE KEY 用于航班状态、客票状态。
- DUPLICATE KEY 用于明细数据、变更记录。
SelectDB 极速分析场景
- 倒排索引实现多维度快速检索分析,加速字符串类型数据的全文检索。
- 查询性能提升约 4 倍,100 并发平均耗时从 3206822ms 减少到 523247ms。
SelectDB 湖仓应用收益
- ETL 数据导入速度提升 5-13 倍。
- 查询分析速度提升 3-6 倍。
- 实时单日查询量提升 10-18 倍。
- 查询延时小于 1 秒(96%)。
规划与展望
未来规划
- 架构优化:存算分离架构,引入更为廉价的存储介质以降低成本。
- CCR 主备集群同步优化,探索主备集群实现自动负载,数据自动恢复。
- 统一日志分析:利用 SelectDB 倒排索引替换目前 ES 做日志分析,降低成本。
- 自动化运维:引用 Manager 接管生产集群运维。
- 数据血缘分析:表热度分析、慢查询自动监控。