大数据实时+离线项目架构----智慧物流大数据平台(超流行框架!)

article/2025/10/24 7:19:33

智慧物流大数据平台

文章目录

  • 智慧物流大数据平台
  • 一、项目背景
  • 二、逻辑架构
  • 三、解决方案
    • 技术亮点:
  • 数据流转
  • 四、项目的技术选型
    • 4.1流式处理平台
    • 4.2 分布式计算平台
    • 4.3 海量数据存储
  • 框架软件版本


一、项目背景

本项目基于一家大型物流公司研发的智慧物流大数据平台。该物流公司是国内综合性快递、物流服务商,并在全国各地都有覆盖的网点。经过多年的积累、经营以及布局,拥有大规模的客户群,日订单达上千万。如此规模的业务数据量,传统的数据处理技术已经不能满足企业的经营分析需求。公司需要基于大数据技术构建数据中心,从而挖掘出隐藏在数据背后的信息价值,为企业提供有益的帮助,带来更大的利润和商机。大数据项目主要围绕订单、运输、仓储、搬运装卸、包装以及流通加工等物流环节中
涉及的数据、信息等。通过大数据分析可以提高运输以及配送效率、减少物流成本、更有效地满足客户服务要求,实现快速、高效、经济的物流,并针对数据分析结果,提出具有中观指导意义的解决方案。针对物流行业的特性,大数据应用主要体现在车货匹配、运输路线优化、库存预测、设备修理预测、供应链协同管理等方面。

二、逻辑架构

在这里插入图片描述
 异构数据源
数据源主要有两种方式:Oracle数据库、MySQL数据库
 数据采集平台
数据采集平台负责将异构数据源采集到数据存储平台,分为批量导入以及实时采集两个部分:
实时采集 Oracle数据库采用ogg进行实时采集,MySQL数据库采用Canal进行实时采集。采集到的数据会存放到消息队列临时存储中。

数据存储平台
本次建设的物流大数据平台存储平台较为丰富。因为不同的业务需要,存储分为以下几个部分
Kafka 作为实时数据的临时存储区,方便进行实时ETL处理
Kudu 与Impala mpp计算引擎对接,支持更新,也支持大规模数据的存储
HDFS 存储温数据、冷数据。大规模的分析将基于HDFS存储进行计算。
ElasticSearch 所有业务数据的查询都将基于ElasticSearch来实现
ClickHouse 实时OLAP分析

数据计算平台
数据计算平台主要分为离线计算和实时计算。
离线计算 Impala:提供准实时的高效率OLAP计算、以及快速的数据查询
Spark/ SparkSQL:大批量数据的作业将以Spark方式运行
ElasticSearch 所有业务数据的查询都将基于ElasticSearch来实现

大数据平台应用
离线场景 报表系统
小区画像
实时场景 DashBoard
业务监控
实时报表
交互查询 AdHoc(即席查询)
自助报表

三、解决方案

数据源:关系型数据库Oracle和MySQL
采集:OGG和Canal分别将Oracle和MySQL的增量数据同步到Kafka集群
存储:ETL计算之后分别存储到kudu,Elasticsearch,ClickHouse中
计算引擎:处理数据使用StructuredStreaming

技术亮点:

完整Lambda 架构系统,有离线业务、也有实时业务
ClickHouse实时存储、计算引擎
Kudu + Impala准实时分析系统
基于Docker 搭建异构数据源,还原企业真实应用场景
以企业主流的Spark生态圈为核心技术,例如:Spark、Spark SQL、structured Streaming
Elasticsearch 全文检索
SpringCloud 搭建数据服务

数据流转

在这里插入图片描述

从数据源开始,业务数据主要存放到OracleMySQL数据库中,我们使用OGGCanal分别将Oracle和
MySQL的增量数据同步到Kafka集群,然后通过StructuredStreaming程序进行实时ETL处理,将处理的
结果写入到Kudu数据库中,供应用平台进行离线分析处理;为了将一些要求监控的业务实时展示,
StructuredStreaming流处理会将数据写入到ClickHouse,Java Web后端直接将数据查询出来进行实时的数据展示;为了方便业务部门对各类单据的查询,StructuredStreaming流式处理系统同时也将数据经过JOIN处理后,将数据写入到ElasticSearch中,然后基于Spring Cloud开发能够支撑高并发访问的数据服务,方便运营人员、客户的查询;

四、项目的技术选型

4.1流式处理平台

采用Kafka作为消息传输中间介质

 Kafka对比其他MQ的优点
可扩展 Kafka集群可以透明的扩展,增加新的服务器进集群。
高性能 Kafka性能远超过传统的ActiveMQ、RabbitMQ等,Kafka支持Batch操作。
容错性 Kafka每个Partition数据会复制到几台服务器,当某个Broker失效时,Zookeeper将
通知生产者和消费者从而使用其他的Broker。

 Kafka对比其他MQ的缺点
重复消息 Kafka保证每条消息至少送达一次,虽然几率很小,但一条消息可能被送达多次。
消息乱序 Kafka某一个固定的Partition内部的消息是保证有序的,如果一个Topic有多个
Partition,partition之间的消息送达不保证有序。
复杂性 Kafka需要Zookeeper的支持,Topic一般需要人工创建,部署和维护比一般MQ成
本更高。

 Kafka对比其他MQ的使用场景
Kafka 主要用于处理活跃的流式数据,大数据量的数据处理上
其他MQ 用在对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量还在其次,
更适合于企业级的开发
 总结
在这里插入图片描述

4.2 分布式计算平台

分布式计算采用Spark生态
在这里插入图片描述
如果对延迟要求不高的情况下,可以使用 Spark Streaming,它拥有丰富的高级 API,使用
简单,并且 Spark 生态也比较成熟,吞吐量大,部署简单,社区活跃度较高,从 GitHub 的
star 数量也可以看得出来现在公司用 Spark 还是居多的,并且在新版本还引入了
Structured Streaming,这也会让 Spark 的体系更加完善。

 如果对延迟性要求非常高的话,可以使用当下最火的流处理框架 Flink,采用原生的流处理系
统,保证了低延迟性,在 API 和容错性方面做的也比较完善,使用和部署相对来说也是比较
简单的,加上国内阿里贡献的 Blink,相信接下来 Flink 的功能将会更加完善,发展也会更加
好,社区问题的响应速度也是非常快的,另外还有专门的钉钉大群和中文列表供大家提问,
每周还会有专家进行直播讲解和答疑。

结论:本项目使用Structured Streaming开发实时部分,同时离线计算使用到SparkSQL,而Spark的生
态相对于Flink更加成熟,因此采用Spark开发

4.3 海量数据存储

ETL后的数据存储到Kudu中,供实时、准实时查询、分析
Kudu是一个与HBase类似的列式存储分布式数据库,官方给Kudu的定位是:在更新更及时的
基础上实现更快的数据分析

 Kudu对比其他列式存储(HBase、HDFS)
HDFS 使用列式存储格式Apache Parquet,Apache ORC,适合离线分析,不支持单条纪录
级别的update操作,随机读写性能差
HBASE 可以进行高效随机读写,却并不适用于基于SQL的数据分析方向,大批量数据获取时
的性能较差。
KUDU KUDU较好的解决了HDFS与HBASE的这些缺点,它不及HDFS批处理快,也不及HBase
随机读写能力强,但是反过来它比HBase批处理快(适用于OLAP的分析场景),而
且比HDFS随机读写能力强(适用于实时写入或者更新的场景),这就是它能解决的
问题。
Elastic Search作为单据数据的存储介质,供顾客查询订单信息

 Elasticsearch的使用场景
记录和日志分析 围绕Elasticsearch构建的生态系统使其成为最容易实施和扩展日志记录
解决方案之一,利用这一点来将日志记录添加到他们的主要用例中,或
者将我们纯粹用于日志记录。
采集和组合公共数据 Elasticsearch可以灵活地接收多个不同的数据源,并能使得这些数据可
以管理和搜索
全文搜索 非常强大的全文检索功能,方便顾客查询订单相关的数据
事件数据和指标 Elasticsearch还可以很好地处理时间序列数据,如指标(metrics )和应
用程序事件
数据可视化 凭借大量的图表选项,地理数据的平铺服务和时间序列数据的
TimeLion,Kibana是一款功能强大且易于使用的可视化工具。对于上面
的每个用例,Kibana都会处理一些可视化组件。
ClickHouse作为实时数据的指标计算存储数据库

 ClickHouse与其他的OLAP框架的比较
直接查询,ClickHouse支持类SQL语
言,提供了传统关系型数据的便利

框架软件版本

在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/grdd8GfS.shtml

相关文章

visio中不使用带箭头的线条

在visio中每次都需要用带箭头的连接线,但有时候,确需要不用带箭头的连接线,找了好半天,每次使用每次找,这次特此写博客结论一下。 2.设置线条的格式

visio画箭头时,如何去掉箭头的自动连接连接点(吸附)功能?

1.以Visio2013版为例,在visio顶部操作菜单中,视图-视觉帮助-找到右下小箭头。 2.点击小箭头,在如下弹出框中,取消如下两项的勾选,即可。

如何用Visio画出总线(空心的箭头)

在visio中可以首先画出一个空白的箭头,在下图中找到。 画出一个箭头 然后可以在这个箭头后面拼接长方体,如图 然后,选择开发工具中的操作的联合 得到的效果如下 这样,就画出了总线。

如何用viso画波浪线、以及带箭头的波浪线。

如何用viso画波浪线、带箭头的波浪线!!! 搜索过来搜索过去,还是没有找到一个令自己满意的答案,就自己写一个过程了。 首先我使用的是visio 2013版本。方法一: 打开visio,新建一个基本框图找到…

visio指向插图任意位置和任意改变箭头形状

开发环境: win7,visio 2016 proffessional 问题1 最近在用visio作图时发现用箭头连接两个插图时只能连接到插图上指定位置的点。如下图所示: 比如我想画一条上图中手画的箭头,就没办法连接,只能是连接长方形的上边中…

visio图多树枝直角加箭头 避免箭头过多

集美们,visio图遇到一个指向多个的箭头,利用“连接线”不方便(①箭头容易对不齐;②箭头会躲避文本框,不容易控制),就需要使用多树枝直角形状。 连接符的调用位置 ↑ 里面就有多树枝直角工具了 …

VISIO取消箭头自动吸附及粘连

Visio打开或取消箭头的自动吸附和自动连接 在用Visio画图时Visio的自动对齐、自动连接、自动吸附功能确实能带了很多便利。但在画连接线时,Visio总是自动连接箭头与图形的固定节点,想要微调一下连接位置,就显得很不方便,需要关闭…

visio如何使箭头指向图中的任意位置

visio如何使箭头指向图中的任意位置 会疯真的会被visio搞疯,因为没有系统的学过visio,就是哪里有问题然后去搜大佬博客。 在画流程图的时候,【判断】或【循环】的反馈线的标准画法是反馈指向【流程线】,而不是某一模块。 解决方…

300集ps视频从零基础入门到精通

目前来说,PS是一项很基本的工作技能了。并且Photoshop一直都被纳入大学计算机等级考试中,photoshop已经像Word,Excel,PPT那么普及了。相信同学们在写简历的时候也会写上去。 其实,Photoshop目前也是全球最流行、使用最…

Redis从入门到精通

Redis简介 什么是实时系统: 瞬时可以实现某些数据的统计或者是功能的实现 *_Redis由来: *_什么是redis? 由C语言实现的直接操作内存的开源的高性能的数据库软件 *_redis应用场景 缓存(数据查询,短连接,新闻内容、商品内容等等&#xf…

TCP协议从入门到精通

文章目录 TCP协议TCP头部信息TCP头部信息清单16位端口号(port number)32位序号(sequence number)32位确认号(acknowledgement number)4位头部长度(header length)6位标志位16位窗口大…

PHP从入门到精通

【原】PHP从入门到精通2小时【图文并茂】 主要内容: 搭建PHP开发环境第一个helloworld程序变量全局变量循环结构函数数组面向对象编程继承接口多态日志文件的读写时间格式和时区创建图形从远程获取图形生成二维码php与数据库mysql的连接mysql数据库面向对象编程coo…

Rust 从入门到精通10-所有权

在介绍rust 所有权时,我们先介绍内存管理的一些基础概念。 1、堆和栈 一个进程在执行的时候,它所占用的内存虚拟空间一般被分割为好几个区域,我们称为”段“(Segment)。常见的几个段如下: ①、代码段&am…

Elasticsearch从入门到精通

1、Elasticsearch简介 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 但是,Lucene只是一个库。想要发挥其强大的作用&#xff0…

Scala 从入门到精通

Scala 从入门到精通 scala风格与java风格 public class JavaDemo01 {public static void main(String[] args) {System.out.println("我爱你中国");} }object ScalaDemo01 {def main(args: Array[String]): Unit {println("我爱你中国")} }javac JavaDe…

尚硅谷Redis6从入门到精通

本博客为尚硅谷课程笔记,课程来源:【尚硅谷】Redis 6 入门到精通 超详细 教程_哔哩哔哩_bilibili 本博客参考内容: https://blog.csdn.net/weixin_47872288/article/details/118410080 https://zhangc233.github.io/2021/05/02/Redis/#Hyper…

Maven从入门到精通

文章目录 企业级架构框架图 Maven 项目构建工具概述为何需要maven? 四大特征仓库 repository依赖 dependency坐标 coordinate命令 mvn cmd小结 安装官网安装 配置 settings.xml配置文件设置镜像仓库改变仓库位置 eclipse 集成 maven配置 eclipse创建Maven项目创建ma…

PS从入门到精通第4节——祖传抠图技法

本结内容: 文末有本节内容总结 练习作业:素材包已上传,可免费下载,文末有练习的具体做法 背景素材直接打开为背景 本章知识重点在于对PS不同抠图工具的学习和使用选择合适的抠图工具去进行作业的制作抠图物体边缘无黑边排版比例大…

Docker从入门到精通

目录 一、初识 Docker 1、Docker概念 2、安装Docker(CentOS系统) 3、Docker的架构 4、阿里云镜像加速 5、Docker容器虚拟化 与 传统虚拟机比较 二、Docker 服务相关命令 1、启动docker 服务: 2、停止docker 服务: 3、重…

Midjourney从入门到精通

前言 什么是AI绘画 AI 绘画,顾名思义就是利用人工智能进行绘画,是人工智能生成内容(AIGC)的一个应用场景。其主要原理就是收集大量已有作品数据,通过算法对它们进行解析,最后再生成新作品,而算…