处理模式
| 模式名称 | 常见场景 | 常见框架 | 
|---|---|---|
| 批处理 | 夜间几个小时,无人值守 | hive spark datax | 
| 流处理 | 7*24H一直运行,无人值守 | maxwell, flink, flume, kafka | 
| 即席处理 | 人机交互 | 接口访问 web页面 | 
数据治理的意义
- 数据质量低:数据错误,不准确或不一致,导致决策依据不可靠
 - 数据孤岛:各部门和系统之间的数据无法有效整合,形成数据孤岛,降低数据的利用价值和沟通效率(数据负责人走了之后无人可以看懂)。
 - 数据安全风险:缺乏有效的数据保护措施
 - 规范性问题:在数据使用、存储和传输过程中,可能无法满足规范性要求,增加数据的理解难度,降低利用率
 - 计算存储的冗余
 
数据治理的方案
1.数据中台
提供一个大而全的平台,将数据建模、数据开发、数据运营、指标可视化…都放到一个平台中。优点是好用,缺点是开发周期长,租用费用贵。
2.数据治理考评
通过设定各种治理项指标,对指标进行考核评分排名,结果导向倒逼开发人员不断改进数据治理的各项问题。优点:成本低,直击问题本身。缺点:缺少工具。
 主要指标:
- 规范 
  
- 有技术owner
 - 有业务owner
 - 表名合规
 - 表有备注
 
 - 存储 
  
- 生命周期合理
 - 是否空表
 - 存在相似表
 
 - 计算 
  
- 长期五产出
 - 长期无访问
 - 计算中有错误
 - 简单加工:sql语句中没有任何join、group by、union函数的复杂计算
 - 计算中存在数据倾斜
 
 - 质量 
  
- 表产出时时效监控
 - 表产出数据量监控
 
 - 安全 
  
- 未明确安全等级
 - 目录文件数据访问权限超过建议值
 
 
架构
数据来源:
- hive元数据:字段名、表名、备注
 - hdfs元数据:访问权限、访问写入时间、数据量大小
 - dolphinscheduler调度器:sql定义,运行时间
 - spark的运行日志,分析数据倾斜
 - 手工录入信息:owner, 安全级别,生命周期
 

Web服务

web框架前世今生
- 各类老框架:php \ perl \ asp \ c#(.net 必须跑在window系统)
 - ssh框架 = struts(1,2) + spring + hibernate
 - ssm框架 = springmvc + spring + mybatis(ibatis)
 - springboot = ssm的基础上包装的便于使用的框架 
  
- 特点 
    
- 节省大量配置,约定大于配置
 - 内置web服务容器,打包部署服务非常方便
 - 非常方便整合各种第三方框架,starter机制对接
 
 - 和java学习时的不同点 
    
- main函数只是启动程序服务器,业务逻辑在其他函数中
 - 程序逻辑是MVC三层架构的
 
 
 - 特点 
    
 
为什么要分层?
- 提高代码的复用,减少重复代码的反复编写
 - 结构清晰,方便定位问题的出错位置
 

 使用规范:
- 尽量逐层调用
 - 控制层:每个类一般代表一种业务请求,每个方法代表某个特定的业务请求
 - 服务层:每个类代表一种业务操作
 - 数据层:每个类代表一张表,每个方法代表对该表的一跳SQL语句
 
SpringBoot项目特点
- 本质上还是一个maven的java项目
 - 预加入了一些依赖
 - 多了一个配置文件application.properties
 - 多了一个启动程序Application, 主方法,直接运行即可
 
参数

- 路径查找使用@RequestMapping(“/”), 用来标记类或方法
 - 定义参数的方法: 
  
@RequestParam("name")来定义参数,使用@RequestParam("name")来获取参数。一般用于查询,赋予多个条件@RequestMapping("/info/{id}"), 使用@PathVariable("id")放在函数列表中来获取参数。用于依靠一个唯一值参数进行查询
 - 请求方式request method 
  
- get查询: 实际上的读操作,@GetMapping
 - post写入,非幂等性写入,实际上的写操作,@PostMapping
 - put写入,幂等性写入,基本上不用
 - delete删除,偶尔会用
 
 - 请求体参数:发送时使用postman工具将数据写出Json格式放入到请求体中,使用
@RequestBody来获取post发送过来的数据。 - 如果需要把键值对参数封装到一个bean对象中,可以在参数列表中什么注解都不加,spring boot会帮你自动封装数据信息到bean对象中。
 - 状态码 
  
- 1xx:访问中
 - 2xx:访问成功
 - 3xx:重定向,跳转
 - 4xx: 
    
- 400: bad request 参数个数或类型不匹配
 - 403:禁止访问,权限问题或IP被禁
 - 404:not found 路径资源不匹配
 - 405:method not allowed 请求方式不匹配
 
 - 5xx: 
    
- 500: 服务器内部错误,查看java console异常
 
 - xxx: 自定义状态码
 
 
容器与组件
Spring 容器启动时:
- 以单例饿汉方式的方式创建所有组件,启动服务器时就创建,常见的组件为@RestController, @Service, @Mapper, @Component
 - 会扫描所有的@Autowired,会自动装配所有组件的引用
 



















