flink车联网项目前篇:项目设计(第64天)

news2025/1/12 10:50:41

系列文章目录

  1. 车联网项目设计
    5.1 数仓分层
    5.2 数仓主题
  2. 数据建模
  3. 数据仓库建模方法论
    2.1 关系建模
    2.1.1 ER模型
    2.1.2 关系模式范式

文章目录

  • 系列文章目录
  • 前言
  • 5. 车联网项目设计
    • 5.1 数仓分层
    • 5.2 数仓主题
  • 1. 数据建模
  • 2. 数据仓库建模方法论
    • 2.1 关系建模
      • 2.1.1 ER模型
      • 2.1.2 关系模式范式


前言

本文介绍车联网项目设计,数仓分层,数仓主题,数据建模。

5. 车联网项目设计

5.1 数仓分层

本项目共分为四层,ODS/DWD/DWS/ADS。
其中实时数仓 ADS 层直接存入到 StarRocks 结果表中,离线数仓 ADS 层会在 MaxCompute 中存一份再存到StarRocks 结果表中。
维度表不作为数仓分层,而是作为主题出现。

5.2 数仓主题

本项目共5个主题域,7个主题,具体如下:
在这里插入图片描述

注:上表中只是教学项目中涉及的主题域和主题,在真实项目中的主题和需求等都要更多一些。
上述项目中,司机主题、乘客主题、投诉申诉主题、推荐上车点主题的时效性要求不高,为离线计算;其他主题为实时计算。

数据仓库建模

1. 数据建模

数据几乎总是用于两种目的:操作型记录的保存和分析型决策的制定。简单来说,操作型系统保存数据,分析型系统使用数据。前者一般仅反映数据的最新状态,按单条记录事务性来处理;其优化的核心是更快地处理事务。后者往往是反映数据一段时间的状态变化,按大批量方式处理数据;其核心是高性能、多维度处理数据。
通常将操作型系统简称为 OLTP(On-Line Transaction Processing)— 联机事务处理,将分析型系统简称为 OLAP(On-Line Analytical Processing)— 联机分析处理。
针对这两种不同的数据用途,如何组织数据,更好地满足数据使用需求。这里就涉及到数据建模问题。即设计一种数据组织方式(模型),来满足不同场景。

2. 数据仓库建模方法论

2.1 关系建模

数据仓库之父 Bill Inmon 提出的建模方法是从全企业的高度,用实体关系(Entity Relationship,ER)模型来描述企业业务,并用规范化的方式表示出来,在范式理论上符合3NF。

2.1.1 ER模型

在信息系统中,将事务抽象为“实体”(Entity)、“属性”(Property)、“关系”(Relationship)来表示数据关联和事物描述,这种对数据的抽象建模通常被称为实体关系模型(ER模型)。

  1. 实体:通常为参与到过程中的主体,客观存在的,比如商品、仓库、货位、汽车,此实体非数据库表的实体表。
  2. 属性:对主体的描述、修饰即为属性,比如商品的属性有商品名称、颜色、尺寸、重量、产地等。
  3. 关系:现实的物理事件是依附于实体的,比如商品入库事件,依附实体商品、货位,就会有“库存”的属性产生;用户购买商品,依附实体用户、商品,就会有“购买数量”、“金额”的属性产品。

 实体之间建立关系时,存在对照关系:
1:1,即1对1的关系,比如实体人、身份证,一个人有且仅有一个身份证号
1:n,即1对多的关系,比如实体学生、班级,对于某1个学生,仅属于1个班级,而在1个班级中,可以有多个学生
n:m,即多对多的关系,比如实体学生、课程,每个学生可以选修多门课程,同样每个课程也可以被多名学生选修

在日常建模中,“实体”用矩形表示,“关系”用菱形,“属性”用椭圆形。

在这里插入图片描述

2.1.2 关系模式范式

范式是关系模式满足不同程度的规范化要求的标准。范式的种类与数据依赖有着直接联系,满足不同程度要求的关系称为不同的范式等级。其中,满足最低程度要求的范式属于第一范式,简称1NF;在第一范式中进一步满足一些要求的关系属于第二范式,简称2NF,依次类推,还有第三范式(3NF)、BC范式(BCNF)、第四范式(4NF)和第五范式(5NF),这些都是关系范式。
范式的目的是减少数据冗余,增强数据的一致性。遵循的范式级别越高,数据冗余性就越低。

 第一范式(1NF):
1NF是关系模式应具备的最起码的条件,如果数据库设计不能满足第一范式,就不称为关系型数据库。
定义:如果关系模式R的每个关系r的属性都是不可分的数据项,那么就称R是第一范式的模式。
例如 (学生信息表):
在这里插入图片描述

以上的表就不符合,第一范式:联系方式字段可以再分。
满足第一范式(1NF)的表结构应该如下:
在这里插入图片描述

 第二范式(2NF):
定义:如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么就称R是第二范式。
例如 (产品流水凭证模板表), 产品代码和交易类型是联合主键:
在这里插入图片描述

通过产品代码和交易类型可以确定凭证模板代码, 差额凭证模板代码, 产品名称, 所以可以把 (产品代码, 交易类型) 作为主键。
但是, 产品名称并不完全依赖于(产品代码, 交易类型), 只要产品代码就能确定产品名称, 这种依赖叫不完全依赖(或部分依赖)。
第二范式不能有不完全依赖,修改后, 满足第二范式:
在这里插入图片描述

 第三范式(3NF):
定义: 首先要满足第二范式,其次非主属性之间不存在函数依赖。由于满足了第二范式,表示每个非主属性都函数依赖于主键。如果非主属性之间存在了函数依赖,就会存在传递依赖,这样就不满足第三范式。
例如(产品流水凭证模板表), 产品代码和交易类型是联合主键:
在这里插入图片描述

差额凭证模板代码依赖于主键 (产品代码, 交易类型), 差额凭证模板名称依赖于差额凭证模板 代码, 这就存在传递依赖, 不满足第三范式。
修改使其满足第三范式:
在这里插入图片描述

 总结:简单来说,
第一范式:列不能再分。
第二范式:建立在第一范式基础上,消除部分依赖。
第三范式:建立在第二范式基础上,消除传递依赖。
2.1.3 小结
实体关系模型的基本假设是数据仓库的需求会发生变化,因此实体关系模型设计所要求的高度抽象、独立性,在面对频繁变化时体现出了其优势。另外,实体关系模型所遵循的三范式在减少数据冗余方面有天然优势,在数据量不断膨胀增长的背景下,规范化的数据模型对于降低不必要的数据存储十分有意义。

实体关系模型在OLAP应用中,主要存在两大问题:

  1. 实体关系模型对数仓建模者的视野有较高要求,需要对企业的业务系统和架构充分理解,因此模型构建在学习成本方面有一定的劣势。
  2. 对于分析型需求来说,实体关系模型较为松散、零碎,物理表数量多,需要进行大量的关联、查询的性能问题非常凸显。
    因此,实体关系模型在OLAP建设体系中更适合基础数据层的建设,目的是将各个系统中的数据以整个企业角度按主题进行相似性组合和合并,并进行一致性处理。

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

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

相关文章

[Meachines] [Medium] TartarSauce Wordpress-gwolle-gb-RFI+tar权限提升+定时器备份文件权限提升

信息收集 IP AddressOpening Ports10.10.10.88TCP:80 $ nmap -p- 10.10.10.88 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 80/tcp open tcpwrappedWordpress & gwolle-gb & RFI $ feroxbuster --url http://10.10.10.88/ $ wpscan --url http://10.…

汽车IVI中控OS Linux driver开发实操(二十五):GPIO设备驱动的上手编写

概述: 1、验证GPIO是否有效。 2、如果有效,则可以从内核GPIO子系统请求GPIO。 3、将GPIO导出到sysfs(这是可选的)。 4、设置GPIO的方向 5、如果将GPIO设置为输出引脚,则将其设置为高/低。 6、设置去抖动间隔,如果将其设置为输入引脚,则读取状态。您还可以为边缘/级别触…

图像直方图计算

1. 图像直方图(Image histogram) 图像直方图,又叫影像直方图,是一种用来表现数位影像中像素分布的直方图,根据统计影像中不同亮度的像素总数,我们可以画出一张代表这张影像的影像直方图,透过这…

排序算法【快速排序】

一、快速排序算法原理 直接采用实际的例子解释原理&#xff0c;实际的数组如下图所示。 排序算法流程如下所示 然后按照上面顺序递归下去&#xff0c;直到排序完成推出。 二、算法代码 #include <stdio.h> #include "test.h"/* 快速排序算法 */ void quick_s…

Camera基础知识系列(1)——凸\凹透镜

目录 前言 一. 凸\凹透镜 1 凸透镜 1.1 凸透镜成像 1.2 物距\像距 1.3 凸透镜成像规律 2. 凹透镜 2.1 凹透镜成像规律 二. 相机 相机镜头 前言 平日里总是时不时地听到别人讲起一些摄影相关的术语&#xff0c;比如&#xff1a;光圈、焦距、等效焦距、EV、画幅、景深、快门…

使用Qdrant+FastText实现向量存储和检索

1 概述 在《使用FastText库训练词向量》一文中&#xff0c;已经训练并保存好了一个用 FastText 训练的词向量模型-model_0809_001。在接下来的实践中&#xff0c;将直接使用该词向量模型来生成对应数据的向量&#xff0c;然后将向量和对应的负载存储到 Qdrant 中&#xff0c;然…

基于Conda的Python版本管理与Python包管理

文章目录 前言Conda是什么Conda与Anaconda安装Anaconda安装包windows v2024.06-1安装包更多版本安装包(Windows/Mac/Linux) 安装 使用步骤创建Python环境激活Python环境安装Python包列出和切换 Python 版本管理多个环境 总结 前言 开发环境中&#xff0c;需要使用不同的Python…

eNSP 华为三层交换机配置DHCP

华为三层交换机配置DHCP 华为DHCP原理&#xff1a;&#xff08;思科四个都是广播包&#xff09; 1、客户端广播发送DHCP Discover包。用于发现当前局域网中的DHCP服务器。 2、DHCP服务器单播发送DHCP Offer包给客户端。携带分配给客户端的IP地址。 3、客户端广播发送DHCP Resqe…

如何给Airtest脚本/报告增加log记录

1. 前言 尽管Airtest脚本运行过程中会输出非常丰富的log信息&#xff0c;并且Airtest报告也会把我们脚本的的运行步骤显示出来&#xff0c;但有时候&#xff0c;我们会需要在脚本里面&#xff0c;插入一些自定义的log内容&#xff08;比如某些关键点&#xff09;&#xff0c;并…

UR5e机器人Gazebo仿真模拟

Gazebo仿真环境 Gazebo是一款开源的机器人仿真平台&#xff0c;基于物理引擎&#xff0c;能够模拟机器人在真实世界中的运动和交互。它支持多种机器人模型与传感器&#xff0c;以及丰富的环境场景&#xff0c;为机器人研发提供了便捷的测试平台。 UR5e机器人Gazebo仿真模拟步骤…

基于Windows系统和‌Linux系统,以tomcat为案例,讲解如何新增自启动服务。

文章目录 引言‌I Linux系统‌(以CentOS为例)基础知识:运行级别(run level)基于chkconfig 工具,设置服务启动类型。基于systemctl 新增系统服务制定定时任务优化停止Tomcat服务命令II 基于Windows系统设置服务自启动的常规操作安装多个tomcat服务,并设置自启动。引言 场景…

IDEA中@Test测试时无法通过键盘输入

在IDEA中使用Test发现Scanner无法在控制台输入&#xff0c;如下所示&#xff1a; 发现这里是只读模式&#xff0c;无法进行输入。 解决方案&#xff1a; 找到编辑虚拟机选项&#xff0c;添加如下&#xff1a; -Deditable.java.test.consoletrue 如下所示:(重启一次IEDA)

R语言统计分析——多元线性回归

参考资料&#xff1a;R语言实战【第2版】 1、多元线性回归 当预测变量不止一个时&#xff0c;简单线性回归就变成了多元线性回归。从技术上来说&#xff0c;多项式回归可以算是多元线性回归的特例&#xff1a;二次回归有两个预测变量&#xff08;X和X^2&#xff09;。 以基础包…

使用DOM破坏启动xss

实验环境&#xff1a; Lab: Exploiting DOM clobbering to enable XSS | Web Security Academy (portswigger.net) 分析&#xff1a; 找破坏点&#xff1a; 第一个输入框可以看见是<texarrea>;不能插入语句.&#xff1a; 构造一个语句试试 <img src1 οnerrοraler…

深入理解HTTPS协议:CA证书的安全机制

文章目录 一、HTTP的不足二、HTTP 加密 证书 完整性保护 HTTPS三、加密与解密1、对称密钥加密2、非对称密钥加密3、证书 一、HTTP的不足 HTTP 主要有这些不足&#xff0c;例举如下&#xff1a; 通信使用明文&#xff08;不加密&#xff09;&#xff0c;内容可能会被窃听不…

kettle获取URL接口数据

使用kettle获取URL接口数据结果保留到文件里 1 生成记录里添加URL信息 2 使用Rest_Client组件处理URL数据结果保存到字段里&#xff08;json的&#xff09; 3 使用json_input 组件处理json数据 4 保存结果到文件里

【protobuf】ProtoBuf——proto3语法详解、字段规则、消息类型的定义与使用、通讯录的写入和读取功能实现

文章目录 ProtoBuf5. proto3语法详解5.1 字段规则5.2 消息类型的定义与使用 ProtoBuf 5. proto3语法详解 在语法详解部分&#xff0c;依旧通过项目推进的方式开展教学。此部分会对通讯录多次升级&#xff0c;用 2.x 表示升级的版本&#xff0c;最终将完成以下内容的升级&#x…

2 C 语言开发工具的选择、 MinGW 的安装与配置、VS Code 的安装与配置、插件推荐

目录 1 开发工具的选择 1.1 Visual Studio 1.2 Code::Block 1.3 Clion 1.4 VS Code 1.5 在线编辑工具 2 开发工具安装 2.1 安装 MinGW-w64 2.1.1 MinGW-w64 介绍 2.1.2 解压 MinGW 2.1.3 将 MinGW 添加至环境变量 2.1.4 验证安装 2.2 安装 VS Code 2.2.1 下载安装…

无刷直流电机的个人总结

电机分类 主要分为两大类&#xff1a;有刷电机&#xff0c;无刷电机 有刷电机 原理图截图来源&#xff0c;工作原理就是对转子线圈通电后产生磁性和外壳中的永磁体相互作用&#xff0c;导致转子转动。而在转子转动过程中如果不改变电流方向&#xff0c;那么磁性不变&#xf…

ROS机械臂——ROS结合OpenCV案例(含资源)

纲要 摄像头驱动 图像属性 图像压缩 ### Realsense摄像头 点云展示 ### 点云图像属性 ## 摄像头标定 摄像头标定流程 如何使用标定文件 OpenCV ROS与OpenCV的集成框架 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b0ff143b710543839325d19c7a3c04c5.png R…