实时数仓建设第2问:怎样使用flink sql快速无脑统计当天下单各流程(已发货,确认收货等等)状态的订单数量

这篇具有很好参考价值的文章主要介绍了实时数仓建设第2问:怎样使用flink sql快速无脑统计当天下单各流程(已发货,确认收货等等)状态的订单数量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实时统计当天下单各流程状态(已支付待卖家发货,卖家通知物流揽收,待买家收货等等)中的订单数量。
订单表的binlog数据发送到kafka,flink从kafka接受消息进行指标统计。因为每笔订单的状态会发生变化,比如上午为【已支付待卖家发货】,这个时候【已支付待卖家发货】指标数要+1,下午订单的状态变更为【卖家通知物流揽收】,这个时候【卖家通知物流揽收】指标数要+1,而【已支付待卖家发货】指标数要-1。

如果采用Java代码编程,那么需要深入理解业务考虑每种状态变更,编写大量if逻辑稍有遗留就会统计错误结果。但是如果使用flink sql是不是就不需要考虑这些业务问题了?
要想使得

select order_status,count(order_no) from order group by order_status

能够得到我们期望的结果,必须使得进入该SQL的数据流由append流变成update/retract流。否则就要根据binlog消息的update /delete情况编写这个减去的逻辑。

解决思路

  • flink数据消费不走kafka,直接使用flink cdc去消费数据库的binlog日志。
  • flink数据消费走kafka,那么kafka ddl使用canla-json format。
  • 如果当前flink版本不支持canla-json format,那么就需要将soucre出来的append流转换为update/retract流后进入我们的聚合SQL算子中。

只要source端产生了changelog数据,后面的算子是可以自动处理update消息的,你可以认为:

  • insert/ update_after 消息会累加到聚合指标上
  • delete / update_before 消息会从聚合指标上进行retract

专栏初衷:

  • 要想快速建设实时数仓,对齐离线数仓分层,首选Flink SQL,相比datastream 代码,Flink SQL可大幅提升10倍实时数仓建设落地时间。
  • 作者位于大厂实时数仓团队,目前运行实时任务3000+,实时集群规模2万CU,集群checkpoint峰值5TB,单任务最大QPS峰值50W。
  • 本专栏将分享作者在实时数仓建设过程中遇到的细节点,帮组大家快速建设实时数仓。

作者信息:文章来源地址https://www.toymoban.com/news/detail-601614.html

  • 1.《深入理解Flink核心设计与实践原理》一书作者
  • 2.GitHub 热门项目 fink-boot(800+) 开发者,致力于flink与spring生态集成

到了这里,关于实时数仓建设第2问:怎样使用flink sql快速无脑统计当天下单各流程(已发货,确认收货等等)状态的订单数量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 实时数仓|基于Flink1.11的SQL构建实时数仓探索实践

    实时数仓主要是为了解决传统数仓数据时效性低的问题,实时数仓通常会用在实时的 OLAP 分析、实时的数据看板、业务指标实时监控等场景。虽然关于实时数仓的架构及技术选型与传统的离线数仓会存在差异,但是关于数仓建设的基本方法论是一致的。本文会分享基于 Flink

    2024年02月16日
    浏览(42)
  • Flink CDC和Flink SQL构建实时数仓Flink写入Doris

    软件环境 Flink1.13.3 Scala 2.12 doris 0.14 一、MySQL 开启binlog日志、创建用户 1.开启bin log MySQL 8.0默认开启了binlog,可以通过代码show variables like \\\"%log_bin%\\\";查询是否开启了,show variables like \\\"%server_id%\\\";查询服务器ID。 上图分别显示了bin long是否开启以及bin log所在的位置。 2.创建用户 C

    2024年02月02日
    浏览(76)
  • 如何基于 Apache Doris 与 Apache Flink 快速构建极速易用的实时数仓

    随着大数据应用的不断深入,企业不再满足离线数据加工计算的时效,实时数据需求已成为数据应用新常态。伴随着实时分析需求的不断膨胀,传统的数据架构面临的成本高、实时性无法保证、组件繁冗、运维难度高等问题日益凸显。为了适应业务快速迭代的特点,帮助企业

    2024年02月12日
    浏览(44)
  • 详解大厂实时数仓建设

    1. 实时需求日趋迫切 目前各大公司的产品需求和内部决策对于数据实时性的要求越来越迫切,需要实时数仓的能力来赋能。传统离线数仓的数据时效性是 T+1,调度频率以天为单位,无法支撑实时场景的数据需求。即使能将调度频率设置成小时,也只能解决部分时效性要求不

    2024年02月08日
    浏览(44)
  • 伴鱼实时数仓建设案例

    随着伴鱼业务的快速发展,离线数据日渐无法满足运营同学的需求,数据的实时性要求越来越高。之前的实时任务是通过实时同步至 TiDB 的数据,利用 TiDB 进行微批计算。随着越来越多的实时场景涌现出来,TiDB 已经无法满足实时数据计算场景,计算和查询都在一套集群中,

    2024年01月22日
    浏览(38)
  • 1.8万字详解实时数仓建设方案及大厂案例

    一、实时数仓建设背景 关注公号: 数元斋 1. 实时需求日趋迫切 目前各大公司的产品需求和内部决策对于数据实时性的要求越来越迫切,需要实时数仓的能力来赋能。传统离线数仓的数据时效性是 T+1,调度频率以天为单位,无法支撑实时场景的数据需求。即使能将调度频率

    2024年02月02日
    浏览(43)
  • Flink电商实时数仓(三)

    维度层的重点和难点在于实时电商数仓需要的维度信息一般是动态的变化的,并且由于实时数仓一般需要一直运行,无法使用常规的配置文件重启加载方式来修改需要读取的ODS层数据,因此需要通过Flink-cdc实时监控MySql中的维度数据配置信息表,实时动态的发布广播信息。主

    2024年02月03日
    浏览(48)
  • Flink实时电商数仓(十)

    app BaseApp: 作为其他子模块中使用Flink - StreamAPI的父类,实现了StreamAPI中的通用逻辑,在其他子模块中只需编写关于数据处理的核心逻辑。 BaseSQLApp: 作为其他子模块中使用Flink- SQLAPI的父类。在里面设置了使用SQL API的环境、并行度、检查点等固定逻辑。 bean:存放其他子模块中

    2024年02月03日
    浏览(43)
  • Flink实时电商数仓(八)

    主要任务:从kafka页面日志主题读取数据,统计 七日回流用户:之前活跃的用户,有一段时间不活跃了,之后又开始活跃,称为回流用户 当日独立用户数:同一个用户当天重复登录,只算作一个独立用户。 读取kafka页面主题数据 转换数据结构: String - JSONObject 过滤数据,u

    2024年02月03日
    浏览(38)
  • Flink+Doris 实时数仓

    Doris基本原理 Doris基本架构非常简单,只有FE(Frontend)、BE(Backend)两种角色,不依赖任何外部组件,对部署和运维非常友好。架构图如下 可以 看到Doris 的数仓架构十分简洁,不依赖 Hadoop 生态组件,构建及运维成本较低。 FE(Frontend)以 Java 语言为主,主要功能职责: 接收用户

    2024年02月07日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包