黑马一站制造数仓实战1

1. 项目目标
一站制造
企业中项目开发的落地:代码开发
代码开发:SQL【DSL + SQL】
SparkCore
SparkSQL
数仓的一些实际应用:分层体系、建模实现
2. 内容目标
项目业务介绍:背景、需求
项目技术架构:选型、架构
项目环境测试

实施
项目行业:工业大数据
项目名称:加油站服务商数据运营管理平台
中石化,中石油,中海油、壳牌,道达尔……

整体需求
基于加油站的设备安装、维修、巡检、改造等数据进行统计分析
支撑加油站站点的设备维护需求以及售后服务的呼叫中心数据分析
提高服务商服务加油站的服务质量
保障零部件的仓储物流及供应链的需求
实现服务商的所有成本运营核算

具体需求
运营分析:呼叫中心服务单数、设备工单数、参与服务工程师个数、零部件消耗与供应指标等
设备分析:设备油量监控、设备运行状态监控、安装个数、巡检次数、维修次数、改造次数
呼叫中心:呼叫次数、工单总数、派单总数、完工总数、核单次数
员工分析:人员个数、接单次数、评价次数、出差次数
报销统计分析、仓库物料管理分析、用户分析

报表

8ee5ceee3cd745c39159a8667a6bac55.png
项目具体需求
提高服务质量,做合理的成本预算
需求一:对所有工单进行统计分析
安装工单、维修工单、巡检工单、改造工单、回访分析
需求二:付费分析、报销分析
安装人工费用、安装维修材料费用、差旅交通费用

加油站设备维护的主要业务流程

a74c1e541ad14c309e65b3ab46093077.png

step1:加油站服务商联系呼叫中心,申请服务:安装/巡检/维修/改造加油机
step2:呼叫中心联系对应服务站点,分派工单:联系站点主管,站点主管分配服务人员
step3:服务人员确认工单和加油站点信息
step4:服务人员在指定日期到达加油站,进行设备检修
step5:如果为安装或者巡检服务,安装或者巡检成功,则服务完成
step6:如果为维修或者改造服务,需要向服务站点申请物料,物料到达,实施结束,则服务完成
step7:服务完成,与加油站站点服务商确认服务结束,完成订单核验
step8:工程师报销过程中产生的费用
step9:呼叫中心会定期对该工单中的工程师的服务做回访
小结
掌握加油站设备维护的主要业务流程
工单分析、费用分析、物料分析、回访分析 

技术选型
目标:掌握加油站服务商数据运营平台的技术选型
实施
数据生成:业务数据库系统
Oracle:工单数据、物料数据、服务商数据、报销数据等
数据采集
Sqoop:离线数据库采集
数据存储
Hive【HDFS】:离线数据仓库【表】
数据计算
SparkCore:类MR开发方式【写代码调用方法函数来处理:面向对象 + 面向函数】
对非结构化数据进行代码处理
场景:ETL
SparkSQL:类HiveSQL开发方式【面向表】
对数据仓库中的结构化数据做处理分析

场景:统计分析
开发方式
DSL:使用函数【DSL函数 + RDD函数】
SQL:使用SQL语句对表的进行处理
功能:离线计算 + 实时计算
注意:SparkSQL可以解决所有场景的分布式计算,离线计算的选型不仅仅是SparkSQL
SparkSQL/Impala/Presto
使用方式
Python/Jar:spark-submit
ETL
ThriftServer:SparkSQL用于接收SQL请求的服务端,类似于Hive的
Hiveserver2
PyHive :Python连接SparkSQL的服务端,提交SQL语句
JDBC:Java连接SparkSQL的服务端,提交SQL语句
spark-sql -f :运行SQL文件,类似于hive -f
beeline:交互式命令行,一般用于测试
数据应用
MySQL:结果存储
Grafana:数据可视化工具
监控工具
Prometheus:服务器性能指标监控工具
调度工具
AirFlow:任务流调度工具
技术架构

c61ebc1ed8de4277896ac136437d49ec.png

小结
本次项目的技术架构是什么?
Lambda架构:离线计算层 + 实时计算层 + 数据服务层
项目中用到了哪些技术?
数据生成:Oracle
数据采集:Sqoop
数据存储:Hive
数据处理:SparkSQL
数据应用:MySQL + Grafana
数据监控:Prometheus
任务调度:AirFlow
版本控制:Git + Gitee
资源容器:Docker

Docker的介绍

Docker是一个开源的应用容器引擎,使用GO语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用程序进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为容器。

目标
提供简单的应用程序打包工具
开发人员和运维人员职责逻辑分离
多环境保持一致性,消除了环境差异
功能:“Build,Ship and Run Any App,Anywhere”
通过对应用组件的封装,分发,部署,运行等生命周期的管理,达到应用组件级别的一次封装,多次分发,到处部署

b582b779d6f246258bbca221117783bd.png

组成
宿主机:安装Docker的那台实际的物理机器
docker client 【客户端】:用于连接服务端,提交命令给服务端

#拉取镜像
docker pull ……
#启动容器
docker run ……
#进入容器
docker exec ……
#查看容器
docker ps ……

docker daemon【服务端】:用于接收客户端请求,实现所有容器管理操作
docker image【镜像】:用于安装APP的软件库,简单点理解为软件的安装包
docker container 【容器】:用于独立运行、隔离每个APP的单元,相当于每个独立的Linux系统

Docker的网络

Docker的本质在一个操作上虚拟了多个操作系统出来,那每个操作之间如何进行网络通信

模式
host模式:每个虚拟系统与主机共享网络,IP一致,用不同端口区分不同虚拟系统

4691ed6b101a4232ada4218c3a088919.png

container模式:第一个容器构建一个独立的虚拟网络,其他的容器与第一个容器共享网络
 

2b9b8ce2f0064104a2e6fc4427007679.png

none模式:允许自定义每个容器的网络配置及网卡信息,每个容器独立一个网络

77df5c09a694483b871b848daa599890.png

bridge模式:构建虚拟网络桥,所有容器都可以基于网络桥来构建自己的网络配置

55e70c2fb11e48dd878ca98a117d6452.png

本次项目中使用bridge模式,类似于VM中的Net模式使用

# 创建
docker network create --subnet=172.33.0.0/24 docker-bd0 1
# 查看模式
docker network ls 1
# 删除
docker network rm ……

Docker的使用

Docker管理

# 启动服务
systemctl start docker 1
# 查看状态
systemctl status docker 1
# 关闭服务
systemctl stop docker

image管理

添加镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 1
列举镜像
docker images 1
移除镜像
docker rmi ……

container管理

# 创建并启动container run = create + start
docker run --net docker-bd0 --ip 172.33.0.100 -d -p 1521:1521 --name oracle 3fa112fd3642
# 列举container
#列举所有的
docker ps -a
#列举正在运行的
docker ps
# 进入container
docker exec -it Name bash
# 退出container
exit
# 删除container
docker rm ……

集群软件规划 

9c3acda4a16a41f9ab9a3a0b5248455b.png

Shuffle【分区、排序、分组】三种场景
重分区:repartition:分区个数由小变大
调用分区器对所有数据进行重新分区
rdd1
part0:1 2 3
part1: 4 5 6
rdd2:调用分区器【只有shuffle阶段才能调用分区器】
part0:0 6
part1:1 4
part2:2 5
全局排序:sortBy
part0:1 2 5
part1: 4 3 6
方案:将所有数据放入磁盘
实现:对数据做了范围分区:将所有数据做了采样:4
part0:6 5 4
part1:3 2 1
全局分组:groupBy,reduceByKey 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《opencv实用探索·六》简单理解图像膨胀

1、图像膨胀原理简单理解 膨胀是形态学最基本的操作,都是针对白色部分(高亮部分)而言的。膨胀就是使图像中高亮部分扩张,效果图拥有比原图更大的高亮区域。 2、图像膨胀的作用 注意一般情况下图像膨胀和腐蚀是联合使用的。 &…

SpringBoot3.x + mp代码生成器(更新系列)

小伙伴们,有没有这样一个体验,每次开始写一个项目时,搭建项目环境,建entity,mapper,service,controller层文件的感到繁琐,这属实体力活呀!然而,自从有了Mybat…

STM32F407-14.3.9-01输出比较模式

输出比较模式 此功能用于控制输出波形,或指示已经过某一时间段。 当捕获/比较寄存器与计数器之间相匹配时,输出比较功能: ● 将为相应的输出引脚分配一个可编程值,该值由输出比较模式(TIMx_CCMRx 寄存器中的 OCxM⑦…

基于WebSocket实现客户聊天室

目录 一、实现聊天室原理 二、聊天室前端代码 三、聊天室后端代码(重点) 四、聊天室实现效果展示 一、实现聊天室原理 1.1 介绍websocket协议 websocket是一种通信协议,再通过websocket实现弹幕聊天室时候,实现原理是客户端首…

《功能磁共振多变量模式分析中空间分辨率对解码精度的影响》论文阅读

《The effect of spatial resolution on decoding accuracy in fMRI multivariate pattern analysis》 文章目录 一、简介论文的基本信息摘要 二、论文主要内容语音刺激的解码任务多变量模式分析(MVPA)K空间 空间分辨率和平滑对MVPA的影响平滑的具体过程…

刷题笔记12.01 贪心策略

P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 说最大不超过.不用高精度,好说 #include <bits/stdc.h> using namespace std; int n,n2,a; long long a1[10004],a2[10004],sum; int main() {ios::sync_…

【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷14

单选题 1、下列现象中有化学变化发生的是 A、蜡烛融化 B、冰块融化 C、电磁炉烧开水 D、铁生锈 答案&#xff1a;D 2、把左边的图形用剪刀剪开&#xff0c;拼成右边的正方形&#xff0c;至少剪几刀 A、1 B、2 C、3 D、4 答案&#xff1a;B 3、能够检验土壤中有沙和粘…

SCT2432QSTER,可替代LMR14030-Q1;3.8V-40V输入、3.5A、高效率同步降压型DCDC转换器、具有内部补偿功能

描述&#xff1a; SCT2432Q是3.5A的同步降压转换器&#xff0c;具有宽输入电压&#xff0c;范围从3.8V到40V&#xff0c;它集成了一个80mΩ的高压侧MOSFET和一个50mQ的低压侧MOSFET&#xff0c;SCT2432Q采用峰值电流模式控制&#xff0c;支持脉冲跳过调制(PSM)&#xff0c;具有…

kafka 集群 ZooKeeper 模式搭建

Apache Kafka是一个开源分布式事件流平台&#xff0c;被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序 Kafka 官网&#xff1a;Apache Kafka 关于ZooKeeper的弃用 根据 Kafka官网信息&#xff0c;随着Apache Kafka 3.5版本的发布&#xff0c;Zookeeper现…

TCP_握手+挥手过程状态变化分析

TCP状态解读 握手挥手过程状态变化 同时握手 双发同时发起syn请求&#xff0c;状态变化过程如下&#xff1a; 图片来源&#xff1a;http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh-4.htm 同时挥手 4次挥手&#xff0c;可以理解为2…

基于相关性的四种机器学习聚类方法

在这篇文章中&#xff0c;基于20家公司的股票价格时间序列数据。根据股票价格之间的相关性&#xff0c;看一下对这些公司进行分类的四种不同方式。 苹果&#xff08;AAPL&#xff09;&#xff0c;亚马逊&#xff08;AMZN&#xff09;&#xff0c;Facebook&#xff08;META&…

Public Keys为constant size的accountable multi-signature

1. 引言 见Dan Boneh等人2023年论文《Accountable Multi-Signatures with Constant Size Public Keys》。 多签方案用于&#xff0c;将多方对同一消息 m m m的多个签名&#xff0c;聚合为对 m m m的单个短签名。 多签方案应用广泛&#xff0c;尤其是在proof-of-stake共识协议…

高并发下缓存失效问题-缓存穿透、缓存击穿、缓存雪崩、Redis分布式锁简单实现、Redisson实现分布式锁

文章目录 缓存基本使用范式暴露的几个问题缓存失效问题---缓存穿透缓存失效问题---缓存击穿一、单机锁正确的锁粒度不正确的锁粒度无法保证查询数据库次数是唯一 二、分布式锁getCatalogJsonData()分布式锁演进---基本原理分布式锁(加锁)演进一&#xff1a;删锁失败导致死锁分布…

zookeeper心跳检测 (实操课程)

本系列是zookeeper相关的实操课程&#xff0c;课程测试环环相扣&#xff0c;请按照顺序阅读来学习和测试zookeeper。 阅读本文之前&#xff0c;请先阅读----​​​​​​zookeeper 单机伪集群搭建简单记录&#xff08;实操课程系列&#xff09;zookeeper 客户端常用命令简单记录…

nodejs微信小程序+python+PHP学科建设管理信息系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

11.28~11.29基本二叉树的性质、定义、复习;排序算法;堆

完全二叉树&#xff08;Complete Binary Tree&#xff09;是一种特殊的二叉树结构&#xff0c;它具有以下特点&#xff1a; 所有的叶子节点都集中在树的最后两层&#xff1b;最后一层的叶子节点都靠左排列&#xff1b;除了最后一层&#xff0c;其他层的节点数都达到最大值。 …

如何快速看懂市场行情?

一、看大盘指数 咱们平时所说的大盘其实指的就是上证指数&#xff0c;它是整个市场的晴雨表。大盘涨了&#xff0c;个股跟着上涨的概率就大&#xff0c;大盘跌了&#xff0c;个股被拖累下跌的概率也大。所以&#xff0c;要想在股市中尝到甜头&#xff0c;大盘分析是少不了滴&am…

Django HMAC 请求签名校验与 Vue.js 实现安全通信

概要 在 Web 应用的开发过程中&#xff0c;确保数据传输的安全性和完整性是一个不容忽视的问题。使用 HMAC&#xff08;Hash-based Message Authentication Code&#xff09;算法对请求内容进行签名校验&#xff0c;是一种常见且有效的安全策略。本文将详细介绍如何在 Django …

[1] AR Tag 在ros中的使用

1.定义 AR Tag 是一种用于增强现实&#xff08;AR&#xff09;应用中的视觉标记&#xff0c;用于跟踪和定位虚拟物体在现实世界中的位置。 AR Tag由黑白正方形图像表示&#xff0c;图像内部有黑色边框中的某些图案。它与我们经常用到的二维码长得类似&#xff0c;原理其实也一…

STM32内部温度传感器使用方法详解

STM32内部温度传感器使用方法详解 前言 STM32内部集成了一个片上温度传感器&#xff0c;可以用来测量MCU及周围的温度。测量范围&#xff1a;-40~125&#xff0c;精度1.5℃。虽然精度不高&#xff0c;但在某些应用场景下是够了的&#xff0c;相比于外部接入传感器&#xff0c…