实时计算-智慧大屏分析

数据大屏后端接口开发案例 如何创建一个 maven 项目,开发后端接口,这里演示一个练习案例,从数据库获取数据,然后在网页显示。本文章面向群体为入门级学者,文章产生于作者大学课程学习期间,参考网上其他博主教程,总结归纳所得。 阅读详情

需求分析

  • 按省份|用户性别|用户年龄段,统计当日新增付费用户首单平均消费及人数占比

技术栈

  • 数据库监控与采集 maxwell
  • 实时数仓存储 kafka
  • 实时计算 spark stream
  • 中间层OLAP hbase
  • 可视化层OLAP elastic search
  • topic offset手动提交 redis
  • BI可视化 echart、Superset、Kibana

业务流程

业务流程

Maxwell 监控抓取 MySQL 数据

  • bootstrap采集维度数据
bin/maxwell-bootstrap --user maxwell --password *** --host chandao --database gmall --table base_province --client_id maxwell_1
  • 实时监控
${MAXWELL_HOME}/bin/maxwell --config ${MAXWELL_HOME}/config.properties >/dev/null 2>&1 &
  • maxwell原理
把自己伪装成 slave,假装从 master 复制数据,监控mysql binlog
mysql binlog 的格式有三种,分别是 STATEMENT,MIXED,ROW,保证数据一致性!
  • mysql binlog statement
语句级,binlog 会记录每次一执行写操作的语句。
相对 row 模式节省空间,但是可能产生不一致性,比如
update tt set create_date=now()
如果用 binlog 日志进行恢复,由于执行时间不同可能产生的数据就不同。
优点: 节省空间
缺点: 有可能造成数据不一致
  • maxwell并行度
默认还是输出到指定 Kafka 主题的一个 kafka 分区,因为多个分区并行可能会打乱binlog 的顺序。如果要提高并行度,首先设置 kafka 的分区数>1,然后设置 producer_partition_by 属性可选值 producer_partition_by=database|table|primary_key|random| column

ODS层:spark stream数据分流

  • maxwell数据格式
{"database":"hzmall","table":"z_user_info","type":"insert","ts":1589385314,"xid":82982,"xoffset":0,"data":{"id":30,"user_name":"zhang3","tel":"138*********"}}
  • spark stream分流
//分流
jsonObjDStream.foreachRDD {
  rdd => {
    rdd.foreach {
      jsonObj => {
        //获取操作类型
        val opType: String = jsonObj.getString("type")
        //获取操作的数据
        val dataJsonObj: JSONObject = jsonObj.getJSONObject("data")
        //获取表名
        val tableName: String = jsonObj.getString("table")

        if (dataJsonObj != null && !dataJsonObj.isEmpty)
          if (("order_info".equals(tableName) && "insert".equals(opType)) || (tableName.equals("order_detail") && "insert".equals(opType))
              || tableName.equals("base_province") || tableName.equals("user_info") || tableName.equals("sku_info")
              || tableName.equals("base_trademark") || tableName.equals("base_category3") || tableName.equals("spu_info")) {
            //拼接要发送到的主题
            var sendTopic = "ods_" + tableName
            MyKafkaSink.send(sendTopic, dataJsonObj.toString)
          }
      }
    }
    //手动提交偏移量
    OffsetManagerUtil.saveOffset(topic, groupId, offsetRanges)

DWD首单维护关联分析

  • phoenix 在 hbase 中建表

  • 将用户是否消费的状态保存到 Hbase 中

create table user_status( user_id varchar primary key ,state.if_consumed varchar ) SALT_BUCKETS = 3
  • 订单迭代计算关联K->V user_status
// 以分区为单位,将整个分区的数据拼接一条SQL进行一次查询
val orderInfoWithFirstFlagDStream: DStream[OrderInfo] = orderInfoDStream.mapPartitions {
  orderInfoItr => {
    //当前一个分区中所有的订单的集合
    val orderInfoList: List[OrderInfo] = orderInfoItr.toList

    //获取当前分区中获取下订单的用户
    val userIdList: List[Long] = orderInfoList.map(_.user_id)
    //根据用户集合到Phoenix中查询,看看哪些用户下过单   坑1  字符串拼接
    var sql: String = s"select user_id,if_consumed from user_status where user_id in('${userIdList.mkString("','")}')"
    //执行sql从Phoenix获取数据
    val userStatusList: List[JSONObject] = PhoenixUtil.queryList(sql)
    //获取消费过的用户id  
    val consumedUserIdList: List[String] = userStatusList.map(_.getString("USER_ID"))

    for (orderInfo <- orderInfoList) {
      // 类型转换
      if (consumedUserIdList.contains(orderInfo.user_id.toString)) {
        orderInfo.if_first_order = "0"
      } else {
        orderInfo.if_first_order = "1"
      }
    }
    orderInfoList.toIterator
  }
}
  • 订单关联地域维度

  • 维度数据和状态数据

  • 相同点:长期保存维护、可修改、使用 k-v 方式查询

  • 不同点:数据变更的时机不同、状态数据往往因为事实数据的新增变化而变更、维度数据只会受到业务数据库中的变化而变更

  • 根据共同点,维度数据也是非常适合使用 hbase 存储的,稍有不同的是维度数据必须启动单独的实时计算来监控维度表变化来更新实时数据。

create table province_info (id varchar primary key,info.name varchar,info.area_code varchar,info.iso_code varchar)SALT_BUCKETS = 3
  • 订单与用户维度关联
create table user_info (id varchar primary key ,user_level varchar, birthday varchar,gender varchar, age_group varchar , gender_name varchar)SALT_BUCKETS = 3
/以分区为单位对数据进行处理,每个分区拼接一个sql 到phoenix上查询用户数据
val orderInfoWithUserInfoDStream: DStream[OrderInfo] = orderInfoWithProvinceDStream.mapPartitions {
  orderInfoItr => {
    //转换为list集合
    val orderInfoList: List[OrderInfo] = orderInfoItr.toList
    //获取所有的用户id
    val userIdList: List[Long] = orderInfoList.map(_.user_id)

    //根据id拼接sql语句,到phoenix查询用户
    var sql: String = s"select id,user_level,birthday,gender,age_group,gender_name from user_info where id in ('${userIdList.mkString("','")}')"
    //当前分区中所有的下单用户
    val userList: List[JSONObject] = PhoenixUtil.queryList(sql)
    val userMap: Map[String, UserInfo] = userList.map( userJsonObj => {
        val userInfo: UserInfo = JSON.toJavaObject(userJsonObj, classOf[UserInfo])
        (userInfo.id, userInfo)
      }).toMap

    for (orderInfo <- orderInfoList) {
      val userInfoObj: UserInfo = userMap.getOrElse(orderInfo.user_id.toString, null)
      if (userInfoObj != null) {
        orderInfo.user_age_group = userInfoObj.age_group
        orderInfo.user_gender = userInfoObj.gender_name
      }
    }
    orderInfoList.toIterator
  }
}

订单首单OLAP

  • 订单宽表存储es
// 保存订单数据到ES中
rdd.foreachPartition(
  orderInfoItr => {
    val orderInfoList: List[(String, OrderInfo)] = orderInfoItr.toList.map(orderInfo => (orderInfo.id.toString, orderInfo))
    val dateStr: String = new SimpleDateFormat("yyyyMMdd").format(new Date())
    MyESUtil.bulkInsert(orderInfoList, "order_info_" + dateStr)

    //3.4写回到Kafka
    for ((orderInfoId, orderInfo) <- orderInfoList) {
      MyKafkaSink.send("dwd_order_info", JSON.toJSONString(orderInfo, new SerializeConfig(true)))
    }
  })
  • 大盘可视化
    大盘可视化
大屏监控系统实战(8)-前端请求后端获取数据并显示 一、概述 前面我们已经发布了接口,并进行了测试,一切正常后,接下来我们写前端工程。在如何将SpringBoot+Vue前后端分离项目一次打包为一个Jar包运行?这篇中,我们已经将前后端项目都导入到IDEA中了,所以目前我们的前端项目结构是这样的。用红框标注的就是我们要动的一个组件。不要问我是怎么知道要改这个组件的,我不会告诉你,是我打开那个demo页面,然后通过搜索关键字找到的。 二、di... 阅读详情

相关推荐

大屏监控系统实战(2)-后台工程搭建

一、概述 项目的后端技术栈为Java、SpringBoot、MybatisPlus、爬虫Jsoup、HttpClient、Maven项目构建。 各软件版本分别如下: 软件及环境 版本号 操作系统 Windows10&MacBook Pro 开发工具 IDEA2019.3 数据库工具 Navicat Premium12.0 MySQL 5....

十步杀一人-千里不留行 5256

小破站数据大屏可视化(Vue+spring boot+Hadoop+嗅探)

采用Spring boot框架对于后端进行开发,采用逆向工程对于对于Mapper层和domain层进行生成,并于controller层开发地图接口、周总数居接口、标签接口、作者上榜次数接口、单个视频接口,为前端调用提供服务。

小唐同学超级呆的博客 1360

HTML智慧大屏设计模板与实战项目

本文还有配套的精品资源,点击获取 简介:HTML智慧大屏是一种创新的数据可视化展示技术,广泛应用于政府、企业、公共服务等领域。这种技术通过图形化方式呈现复杂数据,提升决策效率。本资源提供了数字大屏设计模板,包含一系列HTML、CSS和JavaScript技术构建的模板,可用于实时展示关键指标和数据。智慧大屏结合了大数据处理、云计算、人工智能等先进技术,实现动态数据展示和智能...

weixin_29069575的博客 2201

基于Java开发的数据大屏展示程序

本程序为一块不停刷新数据的大屏幕的Java后台程序。前端5分钟刷新一次,需要向后台接口请求数据展示到前段。

the_yiMI的博客 3241

机器学习(三) ----------线性回归算法(梯度下降+正则化)

线性回归算法在机器学习中具有核心地位,它以其简单性和直观性为基础,为理解数据间的关系提供了基本框架。作为许多复杂算法的基础,线性回归不仅用于预测目标变量,还用于解释自变量对目标的影响。同时,它也是机器学习入门的经典算法,对于推广机器学习知识和技术具有重要意义。

2301_77539454的博客 1867

写给小白的“具身智能”入门科普

智能”,大家都懂,也就是AI。那么,什么是“具身”?“具身”是一个很小众的名词,通常都出现在哲学、认知科学领域。它的英文叫Embodied,是embody的过去式和过去分词。em-表示“进入,使……”,-body表示“身体”。组合起来,就是“使……进入身体”。Embodied Intelligence(具身智能),顾名思义,就是“使智能进入身体”、“给智能一个身体”的意思。那么,具身智能,是不是就是“AI+身体”呢?这样说并不准确。

欢迎来到我的博客 1819

掘进机智慧大屏:引领地下工程智能化新潮流

掘进机装备智慧大屏是先进技术与传统掘进机的完美结合。它集成了高清显示、大数据分析、云计算等尖端技术,将掘进机的各项数据实时展示在屏幕上,让操作人员一目了然。无论是掘进速度、土壤硬度、机械磨损,还是油压、水温等关键指标,都能在这里得到精准反馈。

m0_69539167的博客 584

Android 13 Hotseat定制化修改——001 hotseat布局方向

一.背景由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher...

Java_fenxiang的博客 1101

智慧大屏系统

在企业决策中,通过对市场数据、财务数据、生产数据的综合分析,为企业的投资、生产、营销等决策提供支持。延凡智慧大屏系统旨在打破数据壁垒,将海量、复杂的数据转化为直观易懂的可视化图形和信息,广泛应用于城市管理、企业运营、交通指挥、能源监控等多个领域,为管理者、决策者提供全面、实时、精准的信息展示和分析工具,助力高效决策与管理。:采用分布式计算和存储技术,具备强大的数据处理和分析能力,能够快速响应大规模数据的查询和展示请求,确保系统在高并发、大数据量情况下的稳定运行。

xuyan618的博客 907

基于GPU的GEMM矩阵相乘运算优化

从上图中我们可以看到三种处理方法。第一种是将A和B矩阵分块,第二种方法是将C和B矩阵分块,第三种方法是将C和A矩阵分块。GEMM的子任务是GEPP或GEMP;最小粒度的任务是GEBP或GEPB或点乘。

weixin_55035144的博客 2155

SORT算法在遮挡下总跟丢?深入OC-SORT源码,拆解其三大创新点如何解决卡尔曼滤波的顽疾

本文深入解析OC-SORT算法如何通过三大创新点解决多目标跟踪中的卡尔曼滤波顽疾。OC-SORT引入在线平滑虚拟轨迹技术(OOS)、观测中心动量匹配机制(OCM)和基于最后观测的轨迹恢复(OCR),显著提升了遮挡场景下的跟踪性能。实验数据显示,相比传统SORT算法,OC-SORT在MOT17数据集上MOTA提升5.7%,遮挡恢复成功率提高64.2%,为Multi-Object Tracking领域带来突破性进展。

weixin_42547431的博客 238

『光谷云智慧大屏』数字智慧型 案例赏析

随着数字化转型的不断深入,智慧大屏在云数据处理中心扮演着越来越重要的角色。大屏采用先进技术,构建了一个直观且互动的实时数据监控系统。它不仅,还为数据中心的和运营提供了,是数字化转型在云服务领域的重要体现。

ufrontend的博客 1195

ADS124S08配置避坑指南:从SPI时序到寄存器设置,手把手教你调通24位ADC

本文详细解析了ADS124S08 24位ADC的SPI时序配置、寄存器设置及外围电路设计中的关键细节,帮助工程师避开常见陷阱。从SPI通信模式选择到DRDY引脚读取优化,再到基准电压启动时间调整,提供了实战验证的解决方案,确保高精度数据采集的稳定性。

weixin_29192365的博客 285

园区、厂房如果不上智慧大屏,这就有点out。

在工业4.0与数字化转型背景下,智慧大屏作为物理空间与数字系统的交互中枢,已成为现代园区与厂房运营的核心基础设施。其通过IoT传感器网络实时采集设备状态、能耗数据与生产指标,并基于数据中台(Data Middle Platform)实现多源异构数据融合,最终以三维可视化界面(3D Visualization)呈现运营全景。典型应用包括:设备预测性维护(PdM)、能耗动态优化、安全态势感知等。据《2023全球工业数字化报告》,部署智慧大屏的厂房平均故障响应时间缩短42%,能源浪费减少18%。

贝格前端工场的博客 1481

MuJoCo 入门教程(八)Model仓库

一个物理仿真器的好坏取决于它所仿真的模型,而在像 MuJoCo 这样功能强大、建模选项众多的仿真器中,很容易创建出行为与预期不符的 "坏 "模型。MuJoCo Menagerie 的目标是为社区提供一个设计精良、开箱即用的模型集。更多信息,请访问 Menagerie 资源库。

机器人控制与仿真应用 1939

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息以及一些相关问题

天赐好车的博客 2885

智慧大屏:企业数字化转型的“数字中枢”与智能决策新引擎

智慧大屏正从传统数据展示工具升级为企业运营的智能中枢,通过实时数据整合与AI分析实现高效决策。其技术架构包含数据层、服务层和应用层,支持多模态交互与动态可视化,在制造、零售、金融等领域广泛应用。实施需明确需求、统一数据标准、采用敏捷开发并持续优化。未来趋势包括AI原生分析、AR/VR融合和自主决策系统。智慧大屏已成为企业数字化转型的核心基础设施,建议从小范围试点起步,构建开放平台,培养复合型团队。

yzx991013的博客 1531

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

农田水利水库的管理要革新了,智慧大屏是未来大农业管理的必备。

随着科技的进步,农田水利水库的管理正迎来革新,智慧大屏作为现代农业管理的重要工具,正在逐步成为标配。智慧大屏通过集成物联网(IoT)、大数据分析、云计算等先进技术,提供实时监测和数据分析,助力精准农业的发展。本文将探讨智慧大屏在农田水利管理中的应用,包括其如何提升水资源利用效率、实现智能化灌溉、增强灾害预警能力等方面的作用。此外,还将讨论智慧大屏系统构建所需的关键技术及其对提高农业生产效率的重要性。

2401_82881178的博客 849

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

智慧大屏:看见数据价值,驱动业务未来

面向未来,伴随人工智能、物联网与实时计算能力的融合发展,智慧大屏将进一步拓展其边界——从静态展示走向动态感知,从被动呈现转向主动预警,真正成为推动组织智能化升级的战略工具。“蓝色星球智慧大屏”正是在这一背景下诞生的专业数据可视化平台——它不仅是数据的展示窗口,更是连接信息与决策的桥梁,赋能组织实现真正的数据驱动。依托行业主流技术栈,涵盖高性能组件库、可视化引擎以及完整的开发流程体系,我们确保了平台的稳定性、安全性与高扩展性,满足企业长期迭代与规模化部署的需求。打破技术与业务的壁垒。零代码设计,全员可用。

jiuyun1004的博客 273

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

2026年AI数字人智慧大屏实测报告:十大数字人技术服务商场景适配指南

想象一下,走进一家企业的智能展厅,一个高度拟真的数字人导览员不仅能流畅回答你的所有问题,还能通过语音指令联动整个展厅的灯光、屏幕和设备,为你动态展示产品信息。作为数字人行业的领军者,魔珐科技创立于2018年,是一家以3D AI数字人和生成式人工智能为核心技术的AI科技公司。随着多模态大模型与轻量化技术的发展,AI数字人将迈向情感化、自主化、合规化,成为虚实融合的核心生产力,真正实现“有皮囊,更有灵魂”。在政务领域,为苏州工业园区打造AI数字人“小易”,提供政策咨询、办事流程讲解、空间导览和业务导办等服务。

feng15803464706的博客 939

智慧大屏+数字人:企业数据交互的下一个十年

智慧大屏与数字人的融合,不是简单的技术叠加,而是人机交互范式的根本转变。现在,说一句"展示本月销售数据",数字人就能秒级调取并语音播报。"展示今日交通流量热力图"——数字人秒调实时数据,语音播报拥堵路段,大屏同步可视化。"查询3号产线稼动率"——数字人调取IoT数据,结合虚拟产线动画,设备状态一目了然。数字人进化:从"能说话"到"懂业务",成为真正的智能助手。决策加速:从"人找数据"到"数据找人",缩短决策链路。简单说,就是给传统数据大屏装上了"嘴"和"脑"。一句话总结:以前是"看屏",现在是"聊屏"。

2501_92066637的博客 265

实时监测与分析,提升企业能源效率

智慧工地管理管理平台运用物联网技术、云计算等技术,将原本工地管理与现代科技紧密结合,完成建筑施工安全的信息化、信息化管理。与此同时,还能够实时监控系统施工工地主题活动、物资消耗等状况,提升工地上的管理效益。根据ibms管理系统,用户可实时掌握房屋建筑相关设备的运行状态和能源消耗状况,及时发现和处理事情,提升建筑物能源效率和运行管理实际效果。院校指挥调度系统是为了学校安全管理量身定做的一种集成管理系统软件,根据开发利用视频监控系统、报案、通话等设施和技术手段,完成对院校每个自然环境不同区域实时监控和管理。

guhyun的博客 344

2025年AI数字人智慧大屏实测报告:七大数字人技术服务商对比与场景适配指南

2025年AI数字人智慧大屏技术发展与应用分析 摘要:2025年AI数字人智慧大屏技术已实现规模化商用,市场规模预计突破180亿元。行业测评显示,世优科技凭借多模态交互和AI驱动引擎技术位居榜首,商汤数字人、重庆汉沙等企业分列其后。应用场景涵盖政务、文旅、医疗等多个领域,可提升服务效率40-60%。选型需考虑形象真实度、交互响应等五大维度,建议企业通过试点验证效果。未来技术将向大模型赋能、轻量化和多模态交互升级方向发展。

shiyoutech的博客 1198

大数据项目——图书管理智慧大屏(基于SpringBoot和Hadoop集群处理)

本文介绍了一个基于SpringBoot和Hadoop的现代化图书管理系统。系统采用前后端分离架构,包含用户权限管理、图书管理、借阅管理、数据可视化等核心功能模块,并集成了Hadoop大数据处理能力。系统架构清晰,包含前端界面、SpringBoot控制器层、MySQL数据库、服务层和Hadoop集群。项目结构规范,分为控制器层、服务层、数据访问层、实体类等多个模块,支持RBAC权限控制、Excel批量操作、库存自动更新等功能,适合中小型图书馆使用。

2401_83161252的博客 1137

智慧工地源码 智慧大屏、手机APP、SaaS模式

智慧工地源码 智慧大屏、手机APP、SaaS模式

源码技术栈的博客 963

智慧工地管理系统源码 智慧大屏、手机APP、SaaS模式

智慧工地技术参数 技术架构:微服务 开发语言:Java 开发工具:Idea 前端框架:Vue 后端框架:Spring Cloud 数 据 库:MySql 移 动 端:UniApp

xingchen优快云的博客 281
上一篇: spark stream消费kafka Exactly-once
下一篇: Elastic search restful应用指南
架构师老狼
博客等级 码龄14年 44粉丝 57原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值