https://linuxone.cloud.marist.edu/注册账号,登录后即可免费使用linuxone服务器(2个月,4G内存,50G硬盘空间,2核,s390x架构)。
创建实例,保存ssh key,远程连接要用这个key,它不会给任何用户的密码,默认用linux1用户登录。
安装 MySQL 8.x(如果要安装mysql8,需要自己编译安装,比较麻烦,可以用docker安装mysql8)
安装 Docker这是安装docker的文档:https://docs.docker.com/engine/install/rhel/
每次使用docker的时候都需要使用root用户, 比较麻烦. 可用把普通用户添加到docker组, 避免每次都添加sudo. sudo usermod -aG docker linux1
退出当前shell, 重新进入shell, 使刚才的配置生效
docker 安装 mysql8docker pull ibmcom/mysql-s390x:8.0.25
https://hub.docker.com/u/s390x
docker run –name ...
此项目不涉及高并发,所有没有springcloud的相关内容。
利用Springboot 搭建外部服务。 利用Mybatis及Mybatis-plus操作MySQL数据库。 从Hive中提取需要的元数据。 从 HDFS中提取相关信息。 从DolphinScheduler 的任务信息中提取相关信息。
3.1.1 什么是Web服务 Web服务(http服务),接收网页或者App应用发起的http请求,然后通过程序进行处理、计算、查询、存储等,再将结果返回给页面或App应用。
在Springboot框架之前,最流行的框架组合就是所谓的“SSM”,即SpringMVC+Spring+Mybatis
SSM虽好,但是通过搭建一个SSM项目还是比较繁琐的,需要大量的xml配置文件。springboot整合了springmvc ,spring,mybatis 等核心功能。也就是说本质上实现功能的还是原有的spring ,springmvc的包,但是springboot单独包装了一层,这样用户就不必直接对springmvc, spring ...
数据治理考评平台考评平台内部主要由两部分组成。
一部分是最核心的“考评核算引擎”,主要功能是结合考评平台数据考核参数以及各个数据组件的相关信息,比如Hive元数据库、DolphinScheduler 中配置的任务信息、任务完成状况、 HDFS集群的相关信息,进行考评最终核算出分数,并进行保存。
另一部分是服务于外部访问的请求,比如查看考评、维护参数、补充元数据等等
项目背景:随着大数据技术的广泛应用,企业搭建了各种数据仓库、数据湖,但由于数据源复杂、口径不统一等问题,导致数据质量低、数据孤岛严重、安全风险高。因此,数据治理成为企业必不可少的环节。本项目旨在建立一套数据治理考评平台,以评估和优化企业的数据治理水平。
项目目标:量化数据治理效果,提供标准化评分体系发现并改善数据质量、规范性、安全性等问题通过自动化考评减少人工干预,提高治理效率
核心功能:
数据考评指标体系
规范性(如表命名规范、字段备注)存储管理(如生命周期、空表检测)计算质量(如长期无产出、计算报错)数据质量(如数据产出时效、数据量监控)安全性(如权限管理、安全等级)
数据治理考评指标在数据治理考评平台中,我们将考 ...
json web token为了防止每次访问都登录,所以需要在客户端存储token,然后每次请求都带上token。
lambook少用
应为它帮你插入什么你并不知道,还会导致代码混乱。(可能会插入equlas,hashcode等方法)
record语法出现
get请求参数放在url中,post请求参数放在body中,get请求参数长度有限制,post请求参数长度无限制。get会被浏览器缓存,post不会被缓存。
任务调度模块:
定时任务:定时任务是指在指定的时间执行某些操作,比如每天凌晨1点执行某个任务。(cron表达式)
周期任务:周期任务是指按照固定时间间隔执行某些操作,比如每隔1小时执行某个任务。(quartz框架)
DAG任务:DAG任务是指有向无环图,它是一种任务调度模型,它将任务分解成多个子任务,每个子任务之间有依赖关系,只有前置任务执行完成后,才能执行后置任务。(airflow)
为什么不用java timer?因为java timer,如果java程序异常宕机,timer任务不会执行quartz可以将任务持久化到mysql数据库
antlr4
sql -> ...
主维表和相关维表关联时在不影响结果的情况下,尽量用left join,避免使用join。因为要保证相关维表丢数据影响主维表数据
两表join时,先where条件过滤,再join,避免join后数据量过大。
使用union all来合并数据(不影响结果的情况下),而不是union,因为union会去重,增加负担。
用查询的方式修改数据,不用update语句
性能如何提升?
join
可以减少数据量
存在重复计算
数据重复读取
所有在nd表中用1d表减少重复计算
用炸裂函数减少io次数
获取时间范围最大的数据集
将查询的数据集在内存中进行炸裂处理
将炸裂后的结果集筛选出有用的数据
将筛选后的数据照标记进行分组统计
在7d和30d表中用1d表,30d表也算了7d表,可以加if判断,在30d表中算7d,但字段会变多
[up主专用,视频内嵌代码贴在这]
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 aspect ratio (height/w ...
0. 前言:这是错误的通用处理方法,我以maxwell启动失败为例,请根据具体情况进行调整。1. 查看日志文件找到maxwell的日志文件,一般在~/maxwell/logs目录下,根据具体情况进行调整。
2. 排查错误原因根据日志文件,找到error关键字,一般会有具体的错误原因。
3. 处理错误复制错误原因到搜索引擎或GPT,根据搜索结果进行错误处理。
[up主专用,视频内嵌代码贴在这]
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 aspect ratio (height/width = 9/16 * 100%) */
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
虚拟数据生成/opt/module/data_mocker目录下改application.yml文件中的日期
2.1 日志数据采集到kafka这里加一个kafka的原因是:一是为了给实时数仓用,二是如果不加kafka,多个flume采集数据到hdfs如果文件重名,会导致数据写进hdfs失败(因为hdfs不支持随机写),如果用flume聚合会导致第二个flume的source和sink传输数率不一致,导致chinle爆掉2.2 业务数据采集到kafka3. 从kafka把日志数据消费数据到hdfs3.2 从kafka把业务数据消费数据到hdfs
数仓建设(逻辑分层,物理没有分层)4.1 ods建设
4.1.1 为什么要建设ODS层?
因为我们的数仓需要数据,但是无法直接从业务系统获取原因:1.业务数据库行式存储,数据仓库需要列式存储 2.业务数据库不可以存储大量数据,数据仓库需要存储大量数据提升统计分析的准确性 3.不应该让业务数据库对接数据仓库从而增加业务系统的负担
4.1.2 ODS层建设要点因为我们想让统计分析的时间更长,所 ...
熟悉业务MySQL保存的不是行为数据,而是实体数据,状态数据。
数据源-》数据加工-》数据统计-》数据分析-》数据展示-》数据决策
为什么分多成,因为一个指标可能要重复运算
数据采集当天计算所以要求数据采集占用时间短,所以ods与采集到的数据格式尽可能不变
存储方式
数据格式
压缩方式有些可以变
融合异构
汇总不同时间数
数仓目的是分析分层设计为了使数据体系更加清晰,便于管理。
因为有很多数据重复所以有维度dim
er:使用面向对象的方式设计表在
1对多的关系,多的表中建外键比在多的表中建外键查询更高效。
1对1:主外键相同
多对多采用两张表很难实现,第三张表中建立两个外键,分别指向主表和从表。
3nf函数依赖
1nf:每个属性都只包含一个值。不可分解。2nf:在1nf基础上,非主属性不能直接依赖于主键。3nf:在2nf基础上,任何非主属性不能传递依赖于主键。
er模型表太多,不适合统计分析,所以需要维度建模进行分层设计。
维度:
数据统计:汇总数据(行为的结果)——–事实表
数据分析:角度(状态)———维度表
分层设计是逻辑分层,按表名分层。
ods主要存储所以用g ...



.jpg)






.jpg)


.jpg)






