丙型肝炎吃什么药最好| 盐酸吗啉胍片是什么药| cosplay是什么| 眼底出血用什么眼药水最好| 阑尾是干什么用的| 肺部气肿吃什么药能治好| 手掌像什么| 头皮屑特别多是什么原因| tsh是什么意思| 神仙是什么意思| 回头是岸是什么生肖| 弟子规是什么意思| 梦见穿山甲预示着什么| 后囟门什么时候闭合| 12月13号什么星座| 萨瓦迪卡是什么意思| 尿道痒男吃什么消炎药| 响是什么意思| 哺乳期吃什么奶水多| 慢性胃炎吃什么药效果好| 心口疼是什么原因引起的| 用凝胶排出豆腐渣一样的东西是什么原因| 幽门螺旋杆菌有什么危害| 意象是什么意思| 属蛇本命佛是什么佛| 又什么又什么的什么| 兔死狗烹什么意思| 封神榜讲的是什么故事| 锦鲤可以和什么鱼混养| 新农合是什么| 刘邦字什么| 布克兄弟什么档次| 毋庸置疑什么意思| 组织液是什么| 旖旎是什么意思| 人为什么要吃饭| 心度高血压是什么意思| 什么叫潮吹| 汤姆福特属于什么档次| 超声心动图是什么| 为什么会打鼾| 股癣是什么样的| 新生儿为什么会有黄疸| 菠萝蜜不能和什么一起吃| 私通是什么意思| 孩子一直咳嗽不好是什么原因| 红茶适合什么季节喝| 伤口拆线挂什么科| 不举是什么意思| 异性朋友是什么意思| 头晕什么原因| 肛周脓肿是什么原因引起的| 贫血会出现什么症状| 月经期间适合吃什么| 陛下的陛是什么意思| 反清复明是什么意思| 兰花代表什么象征意义| 童字五行属什么| gm是什么牌子| 什么奶粉跟母乳一个味| 什么是放疗治疗| 贪小失大什么意思| 血常规是什么意思| 盆腔少量积液是什么意思| 阿拉蕾什么意思| 古人的婚礼在什么时间举行| 皮下出血是什么原因| 黄疸是什么样子的图片| ct什么意思| 女人脾虚吃什么最好| 光影什么| 黄油是什么油| 鸿运当头什么意思| 失业是什么意思| 伤官格是什么意思| 孕妇牙痛有什么办法| 检查头部挂什么科| 缺钙吃什么补钙最快| 同型半胱氨酸是什么| 月亮五行属什么| 泻立停又叫什么名字| 为什么乳头会疼| 小麦肤色是什么颜色| 菱形脸适合什么发型| 肩膀上有痣代表什么| 香仪是什么意思| 400多分能上什么大学| 孩子上吐下泻吃什么药| 心脏疼吃什么药效果好| 豆加支念什么| 血压低会出现什么症状| 眩晕停又叫什么| jeep是什么意思| 红细胞体积偏高是什么意思| 红参和高丽参有什么区别| 公积金缴存基数什么意思| 被隐翅虫咬了涂什么药| 梦见自己刷牙是什么意思| 脑出血挂什么科| 一什么教室| 脚板肿是什么原因引起的| 7月23日什么星座| 男人睡觉流口水是什么原因| 尘肺病用什么药最好| 痈肿疮疖是什么意思| 右肺上叶为什么恶性多| 猪八戒的真名叫什么| 2月24号是什么星座| 早上起床口苦吃什么药| 小儿急性喉炎吃什么药| 拔草是什么意思| 喉咙嘶哑是什么原因| 正月十二是什么星座| 什么是文科什么是理科| 玉对人身体健康有什么好处| 什么属于包皮过长| 冬天吃什么| 猫不喜欢什么味道| 西梅是什么水果| 菲林是什么| 膝盖积液用什么药最好| 阉割什么意思| 扁桃体炎吃什么药| 为什么会得带状疱疹| 优五行属性是什么| 圆脸适合什么发型女| 测心率手表什么牌子好| 为什么会晕血| 冷暴力是什么| 腰封是什么意思| 四叶草代表什么意思| nuxe是什么牌子护肤品| cpv是什么病毒| 经常流眼泪是什么原因| 怀孕3天有什么症状| 钙片什么时候吃最好吸收| 颈椎病睡什么枕头最好| 备孕要注意些什么| 月经期间同房有什么危害| 男人硬不起来是什么原因| 87年什么命| 语字五行属什么| 栋字五行属什么| itp是什么病| 流产有什么症状| 男性吃什么增强性功能| 舌头咬破了用什么药| 茶水洗脸有什么好处和坏处| 为什么会得阑尾炎| 你是电你是光是什么歌| a型rhd阳性是什么意思| 拜阿司匹林什么时间吃最好| 一月10号是什么星座| 骨裂是什么感觉| 口巴念什么| 诸神黄昏什么意思| 小孩头发黄是什么原因| 促甲状腺激素偏高是什么意思| 理工科是什么意思| 老人经常便秘有什么好办法| 糖化高是什么意思| 8.8是什么星座| 右眼皮上长痣代表什么| 来例假肚子疼吃什么药| 血沉是检查什么的| 香火是什么意思| 放屁臭什么原因| 肝胆湿热吃什么药| 运动不出汗是什么原因| 尘螨是什么| 有甲状腺结节不能吃什么| 阴道刺痛什么原因| 过敏性皮炎吃什么药好| 神经官能症挂什么科| usp是什么意思| 十一月二十是什么星座| 宝宝病毒感染吃什么药效果好| 腰间盘突出什么症状| 大哥是什么生肖| 梦见自己会开车了是什么意思| 梦到镯子碎了什么预兆| 伤口不愈合是什么原因| 鸭肉不能和什么一起吃| 百香果有什么营养| 隔离霜有什么作用| 结婚25年属于什么婚| 一只眼皮肿是什么原因| 三甲医院是什么意思| 发低烧吃什么药| 记者学什么专业| 婴儿为什么喜欢趴着睡| 功成名就是什么意思| 肩膀疼挂什么科室最好| 臭虫怕什么东西| 羊肉不能和什么一起吃| 唾液酸偏低意味什么| 检测毛囊去什么医院| 吃饱了胃胀是什么原因| 智利说什么语言| 办身份证需要什么| 半青皮是什么意思| 没什么好怕| 可甜可盐什么意思| 路引是什么| 二姨子是什么意思| 124是什么意思| 桑葚和什么泡酒壮阳| 去医院查怀孕挂什么科| 脚踝疼是什么原因| 喉咙疼痛一咽口水就疼吃什么药| 肝叶钙化灶是什么意思| 目加此念什么| 空鼻症是什么| 韩信属什么生肖| 扬代表什么生肖| 静脉曲张挂号挂什么科| 97属什么生肖| 什么食物含钾| 阳性血是什么意思| 紫外线过敏用什么药| 老舍的原名是什么| 六允读什么| 麦冬的功效与作用是什么| 蒲公英和什么一起泡水喝最好| 楚门的世界是什么意思| 怀孕了尿液是什么颜色| 8023是什么意思| 孔雀吃什么食物| 瓜子脸适合剪什么发型| 肺积水有什么症状| 2017是什么年| 90岁属什么生肖| 大便不调是什么意思| 血压高压低是什么原因| 低盐饮食有利于预防什么疾病| 宝宝风寒感冒吃什么药最好| playboy什么意思| ems是什么意思| 孔雀为什么会开屏| 牡丹和芍药有什么区别| u型压迹是什么意思| 视力模糊是什么原因引起的| 黑卡是什么卡| 梦见大风大雨预示什么| 半夜胎动频繁是什么原因| 梅干菜是什么菜| 锁骨上有痣代表什么| 早晨五点是什么时辰| 光谱是什么| 结晶是什么意思| 简单明了是什么意思| 小孩子不吃饭是什么原因引起的| mg是什么单位| 欲言又止什么意思| 被蜈蚣咬了有什么症状| 无水奶油是什么| 2021年什么年| 银耳为什么助湿气| 面藕是什么| 乙肝三项检查什么| 孽缘是什么意思| 肠梗阻挂什么科| mys是什么意思| levi是什么意思| 百度
客户案例 > 案例详情

三明十一中:彰显安全教育平台作用,开展...

客户介绍
百度 纵论产业升级大潮下的资本风向此次峰会的另一个焦点是产业升级,天风证券副总裁、研究所所长赵晓光从制造业、硬件,以及整体科技行业或者是TMT行业三个维度,为我们探讨了未来产业升级所带来的新机会。

曹操出行创立于 2015 年 5 月 21 日,是吉利控股集团布局“新能源汽车共享生态”的战略性投资业务,以“科技重塑绿色共享出行”为使命,将互联网、车联网、自动驾驶技术以及新能源科技,创新应用于共享出行领域,以“用心服务国民出行”为品牌主张,致力于打造具有优质服务口碑的出行品牌。

业务挑战

作为一家互联网出行平台,曹操主要提供了网约车、顺风车和专车等多种出行服务。其中,打车是核心业务之一。整体业务过程大致如下:首先用户在平台上下单,然后曹操平台会给司机进行订单的派发,司机接到订单后,会进行履约服务。结束一次订单服务后,乘客会在平台上进行支付。

在整个流程中,涉及到的数据将会在业务系统中流转,主要包括有营销、订单、派单、风控、支付、履约等。这些系统产生的数据存储在 RDS 中,并进一步流入实时数仓中进行分析和处理。最终数据会进入到不同的使用场景中,比如实时的标签,实时大屏、多维 BI 分析,还有实时业务监控以及实时算法决策。

面对曹操出行不断增长的数据生产成本和研发需求,传统 Lambda 架构已无力支撑现有业务,并呈现以下痛点:

  • 数据组件过多:为了满足多样化应用场景,架构中引入了大量数据处理组件,增加了架构的复杂性。

  • 研发成本高:不仅在实时流处理链路上投入大量研发资源,还需额外构建一条离线数据链路,导致成本加剧。

  • 运维效率低:架构基于 Kafka 搭建,数据审核和数据订正变得非常困难。

  • 资源开销大:组件众多,加大了运维和管理成本;在需要精准一致性的场景下,双链路数据同步增加了业务的复杂度;在某些计算场景中,需要 Flink 维护大状态进行处理,引发了性能问题并导致了资源浪费。

阿里云的解决方案
基于 Hologres 实现数据的高并发更新

市面上主流的数据湖产品通常采用 LSM(Log-Structured Merge)架构,主流数据主键模型更新模式有 CopyOnWrite 和 MergeOnRead。这两种场景都有各自的问题:CopyOnWrite 具有写放大的问题,数据的延迟会比较高;MergeOnRead(读时合并)模式在读取数据时需要进行大量的数据合并操作,因此读取性能可能较差。

Hologres 的存储架构采用分布式存储系统,并在其上构建了存储引擎。在底层,Hologres 使用了分布式存储系统来管理数据的存储和分布。存储引擎包括一些关键组件,如 Block Cache、Shard。每个 Shard 中包含了多个 Tablet 和 Write-Ahead Log(WAL)。在 Hologres 中,行存使用 MergeOnRead 方式,列存采用 MergeOnWrite。

在 MergeOnWrite 模式下,一条数据进入 Hologres 时,首先到达 WAL Manager(Write-Ahead Log 管理器),同时也会进入到 Memtable(内存表)。在 Memtable 中,主要存储三类数据:数据文件、删除标志文件(例如基于 RoaringBitmap 的文件)和索引文件。当 Memtable 数据积累到一定阶段后,会生成不可变的 Memtable,并通过异步线程定期将其刷新(flush)到 Data File(数据文件)中。通过这种架构,Hologres 能够兼顾行存和列存的优势,并通过适当的数据合并策略来提高性能和存储效率。

Hologres 还支持 Binlog,Binlog 也是一种物理表,其跟原表的主要区别是内置的几种自身结构,包含自身递增序列,数据修改类型以及数据修改时间,Binlog 本质上也是分 shard 进行存储,所以也是一种分布式表,并且在 WAL 之前生成,因此在数据上可以与原表保证强一致性。

此外,Hologres Binlog 修改类型也还原了 Flink 中的四种 RowKind 类型。在数据更新过程中会产生两条更新记录(update_before,update_after),并且保证了更新记录是连续的存储。

如下图所示,写入一个数据一个 pk1,然后再写入一个 pk2 数据,pk2 的数据再做一次更新,那么在 Binlog 中会产生 4 条数据结果。

基于阿里云 Hologres 的实时数仓实践
  1. 实时数仓架构设计

  1. dwd 宽表构建实践

    Hologres 列更新能力能很好地实现宽表 Join。在整个生产过程中,还需重点关注维表的应用场景,其应用场景包含几种情况:一种是维表是不变的,或者缓慢的变化,另一种是维表频繁变化的。为了保证数据最终的一致,通常的设计是像离线的方式去构建一个维表拉链的数据,通过 Start Time 和 End Time 的方式去存储维度状态有效的一个周期。

    其次需要关注维表延迟问题。在实际生产过程中,维表链路与主表的链路通常是异步的,可能会出现维表延迟导致主表关联数据为空或关联到过时的维度状态。为处理这种情况,需要在 Hologres 中实施维度缺失记录的过滤,并采取补偿机制进行维度补偿处理。同时,还需要定时调度进行维度字段和维表对比检查,以增量方式修正不一致的维度状态。

  2. 聚合计算场景优化

    针对许多预聚合计算场景,统一收敛到 Rollup 计算模型中,主要解决以下问题:在 Flink 聚合场景中经常会出现状态兼容性的问题;数据复用性非常差的问题,例如研发人员收到需求需要新增指标或者维度粒度时,为了不影响生产数据的稳定性,新增需求需要构建新任务,导致任务管理混乱。

    针对上述问题,曹操出行主要进行了两点优化:

    • 构建 MapSumAgg 算子,MapSum 主要通过对 SumAgg 算子做了重新设计,使之能够支持 Map 内部结构的求和逻辑。

    • 对 Grouping Sets 进行动态配置化,这样 Grouping Sets 动态增加维度粒度,使整个任务在不重启的情况下也能自动去做自适应。

    结合这两点,把已有的指标放入 map 结构中进行封装,这样在不改变原有的算子状态,也可以得到很好的处理。在下游中可以针对不同维度组合,指标集合做好选择,然后由同步工具做实时的数据路由,为下游提供服务。

  3. 链路中吞吐能力调优

    整个流链路中吞吐能力的调优主要涉及两个部分:

    • 数据写入侧:在将数据写入 Hologres 之前,针对字段状态频繁变更的场景进行了优化。引入了一个 Union 层,在 Union 层和 ODS 层中,数据根据主键进行分区。在 Union 层中,通过一个小窗口进行预聚合计算,以减少对 Hologres 的写入压力,从而提高整体数据吞吐量。然而,这种方式的缺点是无法捕获中间状态的数据。

    • 数据读取侧。在使用 Binlog 更新数据时,会产生连续的变更前后数据。在这种场景下,可以采用 lag 开窗的方式来获取一次变更中连续的上下游数据。通过比较这两个数据之间的差异,可以过滤掉冗余的变更数据,从而减轻整个处理下游数据的压力。这种方式可以提高读取数据的效率和吞吐量,减少不必要的数据处理。

  4. 元数据血缘的改造

    曹操出行主要采取以下措施来进行元数据血缘的改造:

    • Flink Catalog 集成,在元数据中去整合 Hologres 的 Catalog,也支持 Kafka Topic 表中自定义 Catalog,支持多版本 schema 和任务数据的多版本,提供更灵活的数据处理能力。

    • Kafka Source 和 Kafka Sink 的改造。结合整个上线发布的流程,对于数据的版本信息,是通过 Kafka Sink 对 Header 进行记录,Kafka Source 对 header 的版本信息进行过滤,从而把数据版本引入到整个上下游的链路,提供上下游数据灵活的迭代。这种做法的好处是,在整个链路中可以感知到下游数据的使用情况,帮助用户快速定位是否还有任务依赖于某个版本的数据,下图主要是展示一个开发流程中元数据的集成。

  1. 搭建链路保障体系

    在日常开发过程中,对于任务健康以及任务出现异常后的判断和检测,都是通过异常检测诊断工具去做支持。主要体现四个方面:

    • 对于基础信息采集,通过采集工具,把 Flink 内置 Metric、Yarn 的 Metric 以及 Kafka 信息进行采集,提供基础数据,包括作业信息,Kafka 一些 Topic 信息,作业最新指标情况。

    • 对于异常的判断,通过内存以及 Topic 增长情况,包括 CPU 使用情况,以及任务有无出现反压,任务有无倾斜做出异常的判断。

    • 对于异常原因的诊断-内部原因,内部原因主要会看 CheckPoint 的失败情况,Kafka LAG 具体是什么算子造成的反压,Restart 的次数,attempt 的次数。

    • 对于异常原因的诊断-外部原因,外部原因主要是看 Job Manager 以及 Task Manager 所在节点自身的情况,包括 CPU 使用率、IO 利用率、内存情况等,然后做出综合判断,帮助用户去快速定位具体问题的原因。

    在链路保障体系中,全链路的感知能力是非常重要的。曹操出行主要通过流量监控和延迟监控来实现全链路的感知能力:

    • 流量监控层面:通过 Kafka Current Offset 以及 Hologres 内置的 Offset 信息做定时的采集,从而推算出 Kafka 以及 Hologres 表的生产速率。

    • Latency 监控层面:主要采集 Kafka Offset 以及 Flink Source 的 Offset 情况,结合 Kafka Massage Timestamp 去推算出每个任务自身延迟情况,再结合整个数据血缘进行一个串联,可以得出端到任务自身整体的延迟时间。

通过任务上下游生产速率比,以及任务自身延迟情况,在整个生产链路中可以快速定位出具体异常和问题发生的节点,以便及时处理和优化,提高系统的性能和稳定性。

  1. 建设数据订正能力

    在传统的 Streaming 链路中,数据订正方案一直是个复杂工程,主要涉及以下两个方面的挑战:

    • 如何知晓订正的数据为正确数据,验证其具有一定困难。

    • 在整个验证过程中,如何保证对下游的透明,如果丢状态去做重启的订正,肯定会对下游造成很大的影响。

业务价值
  • 架构清晰简单

    对比原有 Lamada 架构,Hologres+Flink 整体架构更加清晰,使用数据组件大大减少。

    整体技术复杂难度降低,原先为了解决数据一致性问题,数据需要在不同的异构存储和异构链路中来回传输和计算,整个技术复杂度较高。

  • 开发效率提高

    整个开发模式变得简单易用,大大缩短开发人力投入和周期。数据实时模型分层非常清晰,提升了整体下游的复用性,且使用门槛大幅度降低。

  • 运维体验提升

    由于数据存储在 Hologres 上,因此数据探查更加便捷,数据订正难度大幅降低。

  • 成本减少

    组件维护成本减少。数据的离线存储和实时存储,从双份存储降低到一份存储,以及降低了数据在异构存储之间的同步与计算成本。解决了 Flink 中各类计算场景中大状态的资源成本,减少了计算开销并提升了处理性能。

什么泡水喝对肝脏好 调羹是什么意思 高血压二级是什么意思 女性尿道口有小疙瘩是什么原因 凌晨12点是什么时辰
孕妇什么情况容易早产 下巴下面是什么部位 张柏芝和谢霆锋为什么离婚 什么是三有保护动物 抑郁挂什么科
附件炎吃什么药 12月21号是什么星座 剖腹产坐月子可以吃什么水果 农历10月24日是什么星座 36 80是什么罩杯
胃胀肚子胀吃什么药 甜五行属什么 孕酮低是什么原因造成的 什么的夏夜 梦到妈妈怀孕什么预兆
亚临床甲减是什么意思hcv9jop6ns7r.cn 藿香是什么hcv7jop7ns2r.cn 得意门生是什么意思hcv8jop7ns7r.cn 外公的妈妈叫什么hcv9jop7ns3r.cn 十一月一号是什么星座hcv9jop6ns9r.cn
李连杰什么病hcv8jop5ns7r.cn 徒劳无功是什么意思hcv8jop8ns7r.cn 疝外科是治什么病的hcv7jop7ns1r.cn 扁桃体结石吃什么药hcv8jop4ns7r.cn b型血阳性是什么意思hcv8jop4ns3r.cn
西安古时候叫什么hcv8jop9ns0r.cn 肉便器是什么意思hcv9jop3ns3r.cn 泡沫是什么材料做的hcv8jop7ns8r.cn 吃维c有什么好处hcv8jop7ns2r.cn 狗肉不能和什么食物一起吃hcv9jop3ns7r.cn
什么样的梅花hcv8jop8ns0r.cn 抑郁症是什么病hcv9jop1ns9r.cn 手麻是什么原因引起的hcv7jop6ns9r.cn 阿迪达斯和三叶草有什么区别hcv9jop5ns7r.cn 肌酐是检查什么的hcv9jop0ns3r.cn
百度