【从0开始离线数仓项目】——新能源汽车数仓项目介绍

news2024/11/15 7:42:14

目录

1、数据仓库概念

2、项目需求及架构设计

3、集群资源规划设计

 4、车辆日志字段说明


1、数据仓库概念

数据仓库(Data Warehouse)是为企业提供数据支持,用以协助企业制定决策、改进业务流程和提高产品质量等方面的工具。它可以接收多种类型的输入数据,如业务数据、日志数据和爬虫数据等。然而,在本项目中,我们只对日志数据进行统计和分析。

具体而言,我们将主要关注汽车行驶过程中传感器数据这一特定类型的日志数据,它记录了汽车在运行过程中各个传感器的使用情况以及相关数据。这些数据对于我们改进汽车性能、诊断问题以及分析驾驶行为等都非常重要。

2、项目需求及架构设计

  • 项目需求:

  •  技术选型:

  • 核心架构:

标记车辆的维度信息(定点DataX全量同步),先将数据上传到HFDS,用Hive创建表格映射;汽车行驶日志,用Flume上传至数仓,ODS对数据进行保存,在DWS中完成公共子查询,最后将ADS导出到Mysql,进行机器学习。

  • 框架版本选型

 本项目使用的Apache框架版本:

  •  服务器选型

  •  集群规模

 

3、集群资源规划设计

在企业中通常会搭建一套生产集群和一套测试集群。生产集群运行生产任务,测试集群用于上线前代码编写和测试。

  • 生产集群

参考腾讯云EMR官方推荐部署

  • Master节点:管理节点,保证集群的调度正常进行;主要部署NameNode、ResourceManager、HMaster等进程;非HA模式下数量为1,HA模式下数量为2。
  • Core节点:为计算及存储节点,您在HDFS中的数据全部存储于core节点中,因此为了保证数据安全,扩容core节点后不允许缩容;主要部署DataNode、NodeManager、RegionServer等进程。非HA模式下数量≥2,HA模式下数量≥3。
  • Common节点:为HA集群Master节点提供数据共享同步以及高可用容错服务;主要部署分布式协调器组件,如ZooKeeper、JournalNode等节点。非HA模式数量为0,HA模式下数量≥3。

消耗内存的分开部署。

数据传输数据比较紧密的放在一起(Kafka、clickhouse)。

客户端尽量放在一到两台服务器上,方便外部访问。

有依赖关系的尽量放到同一台服务器(例如:Ds-worker和hive/spark)。

Master

Master

core

core

core

common

common

common

nn

nn

dn

dn

dn

JournalNode

JournalNode

JournalNode

rm

rm

nm

nm

nm

zk

zk

zk

hive

hive

hive

hive

hive

kafka

kafka

kafka

spark

spark

spark

spark

spark

datax

datax

datax

datax

datax

Ds-master

Ds-master

Ds-worker

Ds-worker

Ds-worker

mysql

mysql

flume

flume

flume

测试集群服务器规划

服务名称

子服务

服务器

hadoop102

服务器

hadoop103

服务器

hadoop104

HDFS

NameNode

DataNode

SecondaryNameNode

Yarn

NodeManager

Resourcemanager

Zookeeper

Zookeeper Server

Flume(采集日志)

Flume

Kafka

Kafka

Flume

(消费Kafka日志)

Flume

Hive

MySQL

MySQL

DataX

Spark

DolphinScheduler

ApiApplicationServer

AlertServer

MasterServer

WorkerServer

LoggerServer

服务数总计

15

11

11

 4、车辆日志字段说明

本次处理的数据全部为车辆日志数据,即车辆在行驶过程中每30秒发送的车辆自身状态的记录。除了日志数据之外,我们还需要处理车辆维度数据,这些数据存储在数据库中。

车辆日志数据对于我们分析和预测车辆性能、维护需求和问题诊断等方面至关重要。而车辆维度数据则提供了有关车辆的其他信息,如生产日期、品牌和型号等,这些信息可以帮助我们更好地理解车辆的性能和特性。在本次数据处理中,我们将同时处理这两类数据。

车辆日志数据

车辆日志数据为Json格式的文本文件。每行为一个完整的Json串,其中字段含义如下:

字段名

字段类型

vin

车辆唯一编码

timestamp

日志采集时间

car_status

车辆状态

charg_status

充电状态

execution_mode

运行模式

velocity

车速

mileage

里程

voltage

总电压

electric_current

总电流

soc

SOC

dc_status

DC-DC状态

gear

挡位

insulation_resistance

绝缘电阻

motor_count

驱动电机个数

motor_list

驱动电机列表

fuel_cell_voltage

燃料电池电压

fuel_cell_current

燃料电池电流

fuel_cell_consume_rate

燃料消耗率

fuel_cell_temperature_probe_count

燃料电池温度探针总数

fuel_cell_temperature

燃料电池温度值

fuel_cell_max_temperature

氢系统中最高温度

fuel_cell_max_temperature_probe_id

氢系统中最高温度探针号

fuel_cell_max_hydrogen_consistency

氢气最高浓度

fuel_cell_max_hydrogen_consistency_probe_id

氢气最高浓度传感器代号

fuel_cell_max_hydrogen_pressure

氢气最高压力

fuel_cell_max_hydrogen_pressure_probe_id

氢气最高压力传感器代号

fuel_cell_dc_status

高压DC-DC状态

engine_status

发动机状态

crankshaft_speed

曲轴转速

fuel_consume_rate

燃料消耗率

max_voltage_battery_pack_id

最高电压电池子系统号

max_voltage_battery_id

最高电压电池单体代号

max_voltage

电池单体电压最高值

min_temperature_subsystem_id

最低电压电池子系统号

min_voltage_battery_id

最低电压电池单体代号

min_voltage

电池单体电压最低值

max_temperature_subsystem_id

最高温度子系统号

max_temperature_probe_id

最高温度探针号

max_temperature

最高温度值

min_voltage_battery_pack_id

最低温度子系统号

min_temperature_probe_id

最低温度探针号

min_temperature

最低温度值

alarm_level

最高报警等级

alarm_sign

通用报警标志

custom_battery_alarm_count

可充电储能装置故障总数N1

custom_battery_alarm_list

可充电储能装置故障代码列表

custom_motor_alarm_count

驱动电机故障总数N2

custom_motor_alarm_list

驱动电机故障代码列表

custom_engine_alarm_count

发动机故障总数N3

custom_engine_alarm_list

发动机故障代码列表

other_alarm_count

其他故障总数N4

other_alarm_list

其他故障代码列表

battery_count

单体电池总数

battery_pack_count

单体电池包总数

battery_voltages

单体电池电压值列表

battery_temperature_probe_count

单体电池温度探针总数

battery_pack_temperature_count

单体电池包总数

battery_temperatures

单体电池温度值列表

其中电机列表为嵌套字段,其含义如下:

字段名

字段说明

id

驱动电机序号

status

驱动电机状态

controller_temperature

驱动电机控制器温度

rev

驱动电机转速

torque

驱动电机转矩

temperature

驱动电机温度

voltage

电机控制器输入电压

electric_current

电机控制器直流母线电流

车辆维度数据

字段名

字段说明

id

车辆唯一编码

type_id

车型ID

type

车型

sale_type

销售车型

trademark

品牌

company

厂商

seating_capacity

准载人数

power_type

车辆动力类型

charge_type

车辆支持充电类型

category

车辆分类

weight_kg

总质量(kg)

warranty

整车质保期(年/万公里)

 本项目参考尚硅谷课程:

【尚硅谷大数据项目之新能源汽车数仓,离线数据仓库项目实战】 https://www.bilibili.com/video/BV1uF411o74x/?p=7&share_source=copy_web&vd_source=2d7beee727c4b0510439779fd78c22f7

附录: 基于Stable Diffusion生成的新能源Tesla。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时间序列预测 | Matlab自回归差分移动平均模型ARIMA时间序列预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列预测 | Matlab自回归差分移动平均模型ARIMA时间序列预测,单列数据输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变量 warnin…

Dart - dill文件序列化为可读文本(续)

文章目录 前言开发环境app.dill文件DEPS文件最后 前言 对前文Dart - dill文件序列化为可读文本做一些补充。 开发环境 macOS: 13.4Dart: 3.0.5Flutter: 3.10.5 app.dill文件 因为Flutter项目编译后会自动生成app.dill文件(位于项目根目录下的.dart_tool/flutte…

基于PyQt5的桌面图像调试仿真平台开发(9)去噪

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

Detect-SLAM论文翻译

Detect-SLAM:实现目标检测与SLAM的互利共赢 摘要 - 尽管近年来在SLAM和目标检测方面取得了重大进展,但这两项任务仍然存在一系列挑战,例如动态环境中的SLAM和复杂环境中的目标检测。为了解决这些挑战,我们提出了一种新的机器人视觉系统&…

UE使用UnLua(一)

一、概述 Unlua是个功能丰富的插件,可以在UE中进行蓝图绑定,在Lua中进行逻辑开发,使用Lua热更新的特性,可以快速开发迭代表层逻辑 二、UnLua环境 首先下载UnLua的插件包,点击下载,不会吧不会吧还有人打不…

基于simulink使用前景检测跟踪汽车(附源码)

一、前言 此示例基于simulink演示如何使用高斯混合模型 (GMM) 检测和计数视频序列中的汽车。 二、模型 下图显示了使用前景检测跟踪汽车模型: 三、检测和跟踪结果 检测和计数汽车可用于分析交通模式。检测也是执行更复杂的任务&#xff0…

【Linux】C++项目实战-实际应用

目录 典型IO的两个阶段(网络IO)Linux上的五种IO模型1.阻塞 blocking2、非阻塞3、IO复用4、信号驱动5、异步 Web ServerHTTP协议(应用层的协议)简介概述工作原理HTTP请求格式HTTP响应报文格式HTTP请求方法(仅作了解)HTTP状态码 服务…

【Java|多线程与高并发】死锁以及哲学家吃饭问题

文章目录 1. 什么是死锁2. 哲学家吃饭问题3.如何解决死锁 1. 什么是死锁 死锁(Deadlock)是多线程编程中的一个常见问题,指的是两个或多个线程相互等待对方释放资源,导致程序无法继续执行的状态。 在一种典型的死锁情况中&#x…

建立点到多点的IPSec隧道(IKE安全策略方式)

目录 1. 组网需求1.1 网络拓扑1.2 配置思路1.3 版本 2. 配置USG5500 A2.1 基本配置2.2 配置域间包过滤规则2.3 配置到达分支的静态路由2.4 定义被保护的数据流2.5 配置名称为tran1的IPSec安全提议2.6 配置序号为10的IKE安全提议2.7 配置IKE Peer2.8 配置IPSec安全策略组map12.9…

哈工大计算机网络课程数据链路层协议详解之:多路访问控制(MAC)协议

哈工大计算机网络课程数据链路层协议详解之:多路访问控制(MAC)协议 在上一小节介绍完数据链路层功能和所提供的服务后,接下来我们介绍一个在数据链路层非常重要的一个协议:多路访问控制MAC协议。 多路访问控制主要是…

简易登录页面实现

导言 本文将介绍一个简单的登录页面的实现&#xff0c;使用HTML、CSS和JavaScript完成。该登录页面具有选项卡切换和表单提交功能。 HTML基础知识 首先&#xff0c;我们来了解一下HTML文档的基本结构&#xff1a; <!DOCTYPE html> <html> <head><titl…

python创建多个logging日志文件

为每一个计算过程创建一个单独的日志文件&#xff0c;并写入对应的结果&#xff0c;同时保留控制台输出的功能&#xff0c;控制台输出与日志文件记录可以分开单独控制。 import os import loggingdef creat_logger(log_path,logging_name,suf_name):if not os.path.exists(log…

NC65 输出打印模板设置流程

NC65 输出打印模板设置流程 一、添加打印模板 1、可以在单据模板初始化设置中生成打印模板&#xff08;这里以结算单为例&#xff09; 输入模板编码和名称&#xff0c;然后按确定即可。 此时&#xff0c;去输出模板初始化节点查看&#xff0c;就可以查看到刚才生成的打印模…

第五章 中央处理器 第六节指令流水线

5.6.1 指令流水线的概念 5.6.2 指令流水线的影响因素和分类

MySQL基础(五)视图、存储过程和存储函数、变量

目录 常见的数据库对象 ​编辑 视图 创建视图 改变视图 优缺点 存储过程与存储函数 创建存储过程 创建存储函数 存储过程和存储函数的区别 存储过程和函数的查看、修改、删除 查看 修改 删除 存储过程的优缺点 优点 缺点 变量 系统变量 查看系统变量 修改…

h5页面如何与原生交互

本文讲述h5页面跟原生通信&#xff0c;比如在app内&#xff0c;调用相机&#xff0c;获取相册内的图片&#xff0c;在app内拉起微信小程序等等&#xff0c;h5页面没有这么多权限能够直接调用移动端的原生能力&#xff0c;这个时候就需要与原生进行通讯&#xff0c;传递一个信号…

链表、列表、列表项

链表、列表、列表项 FreeRTOS 列表与列表项 List_t //List_t 列表typedef struct xLIST{listFIRST_LIST_INTEGRITY_CHECK_VALUE //校验值volatile UBaseType_t uxNumberOfItems; // 列表中的列表项数量:用于记录列表中列表项的个数&#xff08;不包含 xListEnd&#xff0…

AcWing 1497:树的遍历

【题目来源】https://pintia.cn/problem-sets/994805342720868352/exam/problems/994805485033603072https://www.acwing.com/problem/content/description/1499/【题目描述】 一个二叉树&#xff0c;树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历&#xff0c;…

Verilog 基础知识(一) Verilog 基础语法与注意事项

基础知识 0.1 模块(Module) Verilog中的module可以看成一个具有输入输出端口的黑盒子&#xff0c;该黑盒子有输入和输出接口(信号)&#xff0c;通过把输入在盒子中执行某些操作来实现某项功能。(类似于C语言中的函数) 图1 模块示意图 0.1.1 模块描述 图1 所示的顶层模块(top…

1.Git使用技巧-常用命令2

1.Git使用技巧-常用命令2 文章目录 1.Git使用技巧-常用命令2一、本地仓库整理二、查看本地仓库查看过滤 二、逆向操作1. 检出覆盖本地文件 workspace -> NULL1.1 删除workspace 文件 2. 本地仓库回滚3. 远程仓库1. 远程仓库未基于代码做修改 逆操作总结 三、删除1. 删除远程…