黑马一站制造数仓实战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 

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

堆排序算法

我们之前学了堆: 数据结构---堆-CSDN博客 数据结构:堆的实现-CSDN博客 我们知道堆有小堆和大堆之分,根节点不是最小就是最大的,我们可以利用这个特点实现堆排序 思路: 为什么我们要选择堆排序呢 它的效率相比于冒泡…

Nginx反向代理详解

Nginx反向代理详解 nginx反向代理是一种常用的服务器架构设计方案,其原理是将客户端请求先发送到反向代理服务器,反向代理服务器再将请求转发到后端真实服务器处理,并将处理结果返回给客户端,从而实现负载均衡、高可用、安全和减…

数据结构:带头双向循环链表的实现

引言 单链表存在缺陷:需要从头开始找前一个节点 解决方法:双向链表 链表的结构(8种): 1. 单向,双向 2. 带头、不带头 带头即为带哨兵位的头节点,第一个节点不存储有效数据。带头节点&#…

C#,数值计算——插值和外推,谢别德(Shep)插值方法的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 谢别德插值方法 /// Object for Shepard interpolation using n points in dim dimensions. Call /// constructor once, then interp as many times as desired. /// &…

【网络奇幻之旅】那年我与大数据的邂逅

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;网络奇幻之旅 ⭐每日一句&#xff1a;循梦而行&#xff0c;向阳而生 &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️ 文章目录 &#x1f4…

如何删除mac苹果电脑上面的流氓软件?

在使用苹果电脑的过程中&#xff0c;有时候我们也会遇到一些不需要的软件。无论是因为不再需要&#xff0c;或者是为了释放磁盘空间&#xff0c;删除这些软件是很重要的。本文将为大家介绍怎样删除苹果电脑上的软件&#xff01; CleanMyMac X全新版下载如下: https://wm.make…

【图论】重庆大学图论与应用课程期末复习资料2-各章考点(计算部分)(私人复习资料)

图论各章考点 二、树1、避圈法&#xff08;克鲁斯克尔算法&#xff09;2、破圈法3、Prim算法 四、路径算法1、Dijkstra算法2、Floyd算法 五、匹配1、匈牙利算法&#xff08;最大权理想匹配&#xff08;最小权权值取反&#xff09;&#xff09; 六、行遍性问题1、Fleury算法&…

华为交换机,配置攻击防范示例

攻击防范简介 定义 攻击防范是一种重要的网络安全特性。它通过分析上送CPU处理的报文的内容和行为&#xff0c;判断报文是否具有攻击特性&#xff0c;并配置对具有攻击特性的报文执行一定的防范措施。 攻击防范主要分为畸形报文攻击防范、分片报文攻击防范和泛洪攻击防范。 …

Centos7安装

想学Vmware安装可以看下下面链接,不想就算了 https://blog.csdn.net/weixin_43895362/article/details/134723073 选择第一项&#xff0c;安装直接CentOS 7&#xff0c;回车 稍等后出现进入下图,选择中文,这个只是安装时的语言 首先设置时间,时区选择上海&#xff0c;查看时…

Docker容器间网络共享

Docker容器间网络共享 1、新建网络2、容器绑定网卡3、验证 Docker环境中为了一套应用部署多个环境、并且不修改配置文件的情况下&#xff0c;做到一键部署。要求不同容器直接的网络交互&#xff0c;使用容器名称。 网络相关常用命令 #查看网络内部信息docker network inspect b…

5G承载网和大客户承载的演进

文章目录 移动4/5G承载网联通和电信4/5G承载网M-OTN&#xff08;Metro-optimized OTN&#xff09;&#xff0c;城域型光传送网PeOTN&#xff08;packet enhanced optical transport network&#xff09;&#xff0c;分组增强型OTN板卡增强型PeOTN集中交叉型PeOTN VC-OTN&#x…

将本地项目推送到github

欢迎大家到我的博客浏览。将本地项目推送到github | YinKais Blog 本地项目上传至 GitHub<!--more--> 1、进入项目根目录&#xff0c;初始化本地仓库 git init 2、创建密钥&#xff1a;创建 .ssh 文件夹&#xff0c;并进入 .ssh 文件夹 mkdir .ssh cd .ssh/ 3、生成…