您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [四川航空]:四川航空基于SelectDB的湖仓一体大数据分析引擎建设 - 发现报告

四川航空基于SelectDB的湖仓一体大数据分析引擎建设

信息技术 2024-04-25 吴乐 四川航空 GHK
报告封面

吴乐信息技术部大数据架构师 目录 公司介绍与业务背景01 架构演进02 SelectDB湖仓一体应用实践03 规划与展望04 01公司介绍与业务背景 四川航空股份有限公司 四川航空股份有限公司(以下简称:川航)以“美丽川航,美好出行”为使命,以“熊猫之路,连接世界”为愿景,以安全为品牌核心价值,自开航至今持续安全飞行36年,现运营全空客机队超过200架飞机,年运送旅客量超过3000万,航线网络覆盖亚洲、欧洲、北美洲、大洋洲和非洲,为全球旅客提供深具“中国元素,四川味道”的航空服务,品牌价值超过九百亿。 航司业务特点 数据交互复杂 •业务复杂性和多样性:航空公司涉及的业务涵盖多个领域,包括航班调度、票务销售、旅客服务、机组管理、机务维修、财务结算等。 •航班调度:确保航班按时起降,及时反映航班状态(如延误、取消),避免航班冲突和提高安全性。 •机场和航司需要共享大量的实时数据,确保航班的顺利运行。包括:航班动态信息、旅客信息、地面保障等信息。 •乘客体验与服务:乘客信息(如登机、行李、座位安排等)需要实时更新,确保顺畅的登机流程 •航信数据交互,涉及到定票、航班信息、乘客离港等多个环节。 •国际化与合规要求:航空公司运营跨国航班,需满足不同国家的法规和合规要求。 大数据平台建设历程 痛点与需求 •架构简单,低运维成本•统一易用,降低用户学习成本•具备高效多数据源导入能力•秒级查询响应、快速扩展•实时高效,支持实时数据导入,湖仓加速实现高效查询 •架构复杂,涉及组件较多,运维困难•支持高并发查询•数据时效性和查询效率低•大规模数据导入瓶颈•用户开发成本高 选型因素 支持高并发 导入方式丰富 SelectDB支持多种数据导入方式,包括HDFS、Kafka、Spark、Flink以及RoutineLoad、BrokerLoad和StreamLoad,满足不同场景需求。 SelectDB在面对大数据量和高并发的情况下能够展现出出色的性能,可以替换Hive以及Palo数据源提供查询服务 SelectDB与Spark、Flink以及DataX、SeaTunnel等计算框架兼容,官方提供代码示例,易于使用。 SelectDB在处理大表的Join操作方面表现出色。支持多种分布式Join方式,包括BroadcastJoin、ShuffleJoin、HashJoin等方式 SelectDB湖仓一体应用实践 多源数据快速接入 •实时同步入湖 对接核心数据库包括航班调度、旅客服务等,数据实时同步入湖。 •对接消息队列 机场的消息报文等数据,通过RoutineLoad对接Kafka数据,消费数据入湖。 •Hive加速查询 Hive主要存储acars日志数据,通过HiveCatalog对接,方便和SelectDB内表关联,加速查询。 •数据库分析 针对一些不常用的数据库,通过外表查询,快速获取数据。 基于SelectDB的联邦数据湖分析场景 高性能更新能力 MERGEONWRITE更新能力 适用场景: 适用于小批量实时高频导入,基于主键做高频数据更新目前数仓ODS层数据是CDC实时同步导入,全部采用MOR表,同步数据为根据主键进行UPSERT。 测试数据约500G,常规查询以及复杂关联等,使用MOW模型,性能提升近4倍 部分列更新场景 Flink设置部分列更新'sink.properties.partial_columns'='true'在sink.properties.column中指定要导入的列(必须包含所有key列,不然无法更新) 数据建模场景 CREATETABLEselectdb_agg_tab(flight_id varchar(30),datevarchar(30),ac_cntBIGINTSUMDEFAULT'0')AGGREGATEKEY(flight_id,date)DISTRIBUTEDBYHASH(flight_id)BUCKETS10 CREATETABLEselectdb_uni_tab(flight_id varchar(30),datevarchar(30),statusvarchar(30),)UNIQUEKEY(flight_id)DISTRIBUTEDBYHASH(flight_id)BUCKETS10 SelectDB极速分析场景 倒排索引 倒排索引实现多维度快速检索分析,加速字符串类型数据的全文检索、支持自定义分词 CREATEINDEXIDX_CONTENTONQUESTION(`REPLY_CONTENT`)USINGINVERTEDPROPERTIES("parser"="chinese") --查询评价内容里包含好评select*from QUESTIONwhereREPLY_CONTENTmatch'好评'--分词分析SELECTTOKENIZE(REPLY_CONTENT,'"parser"="chinese","parser_mode"="fine_grained"')FROMQUESTION 查询性能提升约4倍 未来规划 架构优化 •存算分离架构,引入更为廉价的存储介质以降低成本,数据湖场景下更灵活地弹性部署。•CCR主备集群同步优化,探索主备集群实现自动负载,数据自动恢复。 统一日志分析 •利用SelectDB倒排索引替换目前ES做日志分析,降低成本。 自动化运维 •引用Manager接管生产集群运维。•数据血缘分析•表热度分析、慢查询自动监控 ThanksforWatching!