flink车联网项目前篇:数据开发(第66天)

news2024/12/28 19:01:36

系列文章目录

03_数据仓库开发

  1. 开发规范
    1.1 数据库划分规范
    1.2 表命名规范
    1.3 表字段类型规范
  2. 开发前准备
    3.1 业务系统表
    3.2 数据导入
    04_维度主题
  3. 相关表结构
    1.1 dim_area - 城市字典表
    1.2 dim_car_info - 车辆信息表
    1.3 dim_car_vendor - 车队信息表
    1.4 dim_date_work_type -节假日期类型表
    1.5 dim_driver_info - 司机信息
    1.6 dim_user_info -乘客维度信息表
  4. 设计思路

文章目录

  • 系列文章目录
  • 前言
  • 03_数据仓库开发
  • 1. 开发规范
    • 1.1 数据库划分规范
    • 1.2 表命名规范
    • 1.3 表字段类型规范
  • 3. 开发前准备
    • 3.1 业务系统表
    • 3.2 数据导入
  • 04_维度主题
  • 1. 相关表结构
    • 1.1 dim_area - 城市字典表
    • 1.2 dim_car_info - 车辆信息表
    • 1.3 dim_car_vendor - 车队信息表
    • 1.4 dim_date_work_type -节假日期类型表
    • 1.5 dim_driver_info - 司机信息
    • 1.6 dim_user_info -乘客维度信息表
  • 2. 设计思路


前言

本文为flink车联网项目前期准备:数据仓库开发。由于篇幅过长,后续章节:业务实现

03_数据仓库开发

1. 开发规范

1.1 数据库划分规范

MySQL:dim/order/driver
VVP:
mysql:用于存放 flink 的 mysql 映射表信息
dw:用于存放 flink 的 Kafka 映射表信息
redis:用于存放 flink 的 redis 表映射信息
starrocks:用于存放 flink 的 starrocks表映射信息
Paimon:
ods:用于存放 ods 表信息及数据
dwd:用于存放 dwd 表信息及数据
dws:用于存放 dws 表信息及数据
ads:用于存放 ads 表信息及数据
dim:用于存放 dim 相关的表信息及数据
StarRocks:ads、dws

1.2 表命名规范

命名规则:介质_分层_表含义
 介质:
mysql:mysql 映射表
paimon:paimon 表
kafka:kafka 映射表
mc:maxcompute 表
sr:starrocks 映射表
redis: redis映射表
 分层:
ods
dwd
dws
ads
 表含义:
示例:order_info_all 订单信息总表

1.3 表字段类型规范

  1. 数量类型为bigint
  2. 金额类型为decimal,例decimal(20, 2),表示:20位有效数字,其中小数部分2位
  3. 字符串(名字,描述信息等)类型为string
  4. 日期类型为string
    时间类型为datetime
  1. 开发步骤
    因为维表和源表是共用的,所以先开发维表,然后开发源表;
    然后开发订单域的订单主题(实时),动态调价主题(实时),推荐上车点主题(离线);
    然后开发司机主题(离线)、乘客主题(离线)、投诉申诉主题(离线);
    最后开发日志流处理。

3. 开发前准备

3.1 业务系统表

在这里插入图片描述

我们一共有有23张表,其中dim库6张,order库10张,driver库7张。

3.2 数据导入

打开mysql 客户端,运行4、load.sql脚本。
source /export/data/mysql/4、load.sql
注意,每次运行这个脚本都会将历史数据更新到前31天的数据。如果需要将数据进行更新,则运行这个脚本即可。

04_维度主题

维度主题属于公共域,其实就是开发项目中用到的维度表。

1. 相关表结构

在这里插入图片描述

1.1 dim_area - 城市字典表

在这里插入图片描述

1.2 dim_car_info - 车辆信息表

在这里插入图片描述

在这里插入图片描述

1.3 dim_car_vendor - 车队信息表

在这里插入图片描述

1.4 dim_date_work_type -节假日期类型表

在这里插入图片描述

1.5 dim_driver_info - 司机信息

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

1.6 dim_user_info -乘客维度信息表

在这里插入图片描述

2. 设计思路

因为维度表在实时任务和离线任务中都会用到,所以最好使用同一份数据,一方面避免重复开发,降低开发成本,另一方面可以做到数据的一致性。
考虑到维度表的变化相对事实表来说比较缓慢,所以没有必要追求毫秒级更新,做到亚秒级更新即可。所以这里可以采用的技术方案就可以省掉Kafka,直接通过Flink CDC读取mysql数据,然后写入到Paimon表中,因为Paimon表支持增删改查,所以就对应最新的数据。如果维表加工时需要关联,流式读取Paimon表进行双流Join即可,这样就可以做到数据的亚秒级更新。
另外,因为维度是变化的,为了保存这种变化信息,需要将数据进行快照保存,也就是每天将当日的维度信息导入到分区表中,这样在查询历史数据时就可以跟对应日期的数据进行关联,取到正确的数据。当然,如果数据不会变化,则不用同步到MaxCompute,如时间维度表。
因为分区表的使用场景主要是离线关联,为了方便数据的存和取,这里直接使用MaxCompute作为存储介质。
在这里插入图片描述

具体表的数据流转图如下:
在这里插入图片描述

以dim_area为例展示如下:
在这里插入图片描述

项目中主要使用阿里云flink自带的catalog来管理flink的元数据,即vvp。对于paimon表,为了方便表的创建和管理,使用单独的paimon catalog,并为了和MaxCompute整合,将元数据保存到MaxCompute中一份。
MySQL注册表通过Flink SQL进行关联、转换等操作后插入到Paimon表中;Paimon表整合了MaxCompute,所以在MaxCompute中也可以进行查询;最后为了对维度数据进行快照备份,创建了 MaxCompute 分区表,表名后缀 table_i 。
注意:
表名后缀中 _f 表示全量表,_i 表示增量分区表。

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

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

相关文章

虹科技术|优化始于数据:Baby-LIN设备如何高效存储总线数据?

记录汽车总线数据对于监控汽车电子控制单元(ECU)间的通信和诊断网络故障具有重要意义。通过记录测试时的总线数据,不仅可以监控产品是否按照预期运行,还能追踪特定错误或故障背后的原因,这对确保汽车产品质量和性能至关…

MySQL查询居然不区分大小写

MySQL查询居然不区分大小写 事故现场真实原因BINARY 关键字总结MySQL 为什么要这样设计呢?解决方案修改排序规则binary !!!!!懵逼了, MySQL 查询居然不区分大小写,第一次听到这么陌…

实验9 根据材料编程《汇编语言》- 王爽

1. 需求 编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 welcome to masm! 2. 分析 (1)材料中提到,一个在屏幕上显示的字符,具有前景(字符色)和背景(底色)…

[000-01-030].第7节:Zookeeper工作原理

1.Zookeeper工作原理: 1.1.Zookeeper的工作机制 1.Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架;2.Zookeeper负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的…

来了,秋天的第一个POC

立秋就这么水灵灵地过了 又到了“秋天的第一杯奶茶”刷屏的时刻 而我们要追求的是“秋天的第一个POC” 做好变强的准备了吗 Yak POC编写,这一篇就够了 文章中指代的POC仅指使用 Yaklang 编程语言编写的POC 在此篇文章中就详细描述 Yaklang 语法的学习了&#x…

【昱合昇天窗】消防排烟天窗设计使用需注意问题

消防排烟天窗在设计和使用过程中,需要避免出现以下三个问题,以免影响其排烟效果和安全性。1、只关注价格 很多人在选择消防排烟天窗时,只关心天窗的价格,不重视天窗型号、配置选择是否满足厂房需求。这样做的坏处在于安装的天窗可…

还在画恐怖片?局部重绘,艺术再创造 —— Stable diffusion inPainting功能详解与实战指南

前言 在AI绘画的世界里,我们常常面临这样的困境:一幅作品,除了手部姿势、面部表情其他都很完美;这时候,如果要重新生成整幅画,不仅效率低下,而且可能会破坏原本满意的部分。幸好,St…

JAVA毕业设计|(免费)ssm视康眼镜网店销售系统的包含文档代码讲解

收藏点赞不迷路 关注作者有好处 编号:ssm538 ssm视康眼镜网店销售系统的 开发语言:Java 数据库:MySQL 技术:SpringSpringMVCMyBatisVue 工具:IDEA/Ecilpse、Navicat、Maven 文末获取源码 1.系统展示 2.万字文档展示 …

为什么MySql使用B+树

mysql索引为什么选择B树? 在回答这个问题之前,得先了解一个概念,页的概念。页是InnoDB中数据管理的最小单位。当我们查询数据时,其是以页为单位,将磁盘中的数据加载到缓冲池中的。同理,更新数据也是以页为…

数据库实验一 创建数据库

一.实验目的 1.学会数据表的创建; 2.加深对表间关系的理解; 3.理解数据库中数据的简单查询方法和应用。 二. 实验内容 1.题目要求 给定一个实际问题,实际应用问题的模式设计中至少要包括3个基本表。应用问题是供应商给工程供…

被嫌弃的35岁程序员,竟找到了职业的新出路:PMP项目管理

35岁,本应是事业发展的高峰期。更多听到的却是35岁职场天花板,特别是IT从业者,35岁就好像是一道迈不过的坎:多年的工作经验,在35岁的生理年龄面前,一文不值。 IT从业者若想安然度过“35岁危机”&#xff0…

【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出

【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出 文章目录 【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出1.简介2.验证用例3.软件代码4.链接脚本5.编译脚本6.仿真结果6.1 复位结束6.2 运行成功6.3 终端打印 7.总结 1.简介 本文将详细阐述如何利用 printf 来打印字符串…

做自媒体博主如何使用外网视频素材!

想成为视频博主却不知道外网视频怎么下载?看这里! 在这个信息爆炸的时代,做一名视频博主无疑是展现自我、分享创意的绝佳方式。但当我们想要获取更多灵感,从外网的精彩视频中学习时,却常常被下载的问题难住。 其实&…

【启明智显技术分享】工业级HMI芯片Model3A开发过程中问题记录笔记

一、Model3A芯片介绍 Model3A是启明智显针对工业、行业以及车载产品市场推出的一款高性能、低成本的工业级HMI(Human-Machine Interface,人机界面)芯片。该芯片主要应用于工业自动化、智能终端HMI、车载仪表盘、两轮车彩屏仪表、串口屏、智能…

无人机航拍与ArcGIS融合实战:从地表观测到空间数据可视化的全方位指南!无人机图像拼接数据处理与分析、可视化与制图

目录 第一章 无人机航拍基本流程、航线规划与飞行实践 第二章 无人机图像拼接软件的学习与操作实践 第三章 无人机图像拼接典型案例详解 第四章 无人机图像拼接数据在GIS中的处理与分析 第五章 无人机图像拼接数据在GIS中的可视化与制图 第六章 综合案例:无人机航拍植被动…

Docker 部署 XXL-JOB

Docker 部署 XXL-JOB 目录 引言环境准备创建 MySQL 用户并授予权限使用 Docker 部署 XXL-JOB配置 XXL-JOB验证部署总结 1. 引言 XXL-JOB 是一个开源的分布式任务调度平台,旨在简化定时任务的管理和调度操作。其强大的功能和灵活性,使其在互联网公司和…

SSH 隧道方式连接 MySQL 服务器

SSH 隧道方式连接 MySQL 服务器 1 安装 MySQL 客户端工具1.1 Navicat1.2 MySQL Workbench1.2.1 查看本机系统类型1.2.2 安装 Visual C 20191.2.3 安装 MySQL Workbench 2 SSH 隧道方式连接数据库2.1 Navicat2.1.1 SSH 连服务器2.1.2 本地连数据库 2.2 MySQL Workbench 本文介绍…

云动态摘要 2024-08-12

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 全球加速 GA - 新增“巴西(圣保罗)”、“沙特(利雅得)”接入点 华为云 2024-08-12 全球加速服务新增开通“巴西(圣保罗)”、“沙特&a…

BI奇点来临,AIChat打通数据消费“最后一公里”

“把数据用起来和用好”,这是企业数智化转型升级中的一大核心命题。但现实情况中,大部分企业在业务应用和数据消费中始终难以做到得心应手。 直到大模型的崛起,生成式AI技术展现出强大能力,为彻底打通数据消费“最后一公里”带来…

NUC 14 Pro+:灵感加速器,创意无界之旅

喜欢创作的友友们皆懂,灵感如流星,可遇不可求,当它闪烁在你的脑海中,需要即刻行动,将其化为现实。而NUC 14 Pro就将在这时,给予你独特的支持。 灵感火花,瞬间点燃 触摸NUC 14 Pro的轻薄机身&am…