数据治理入门

处理模式

模式名称 常见场景 常见框架
批处理 夜间几个小时,无人值守 hive spark datax
流处理 7*24H一直运行,无人值守 maxwell, flink, flume, kafka
即席处理 人机交互 接口访问 web页面

数据治理的意义

  1. 数据质量低:数据错误,不准确或不一致,导致决策依据不可靠
  2. 数据孤岛:各部门和系统之间的数据无法有效整合,形成数据孤岛,降低数据的利用价值和沟通效率(数据负责人走了之后无人可以看懂)。
  3. 数据安全风险:缺乏有效的数据保护措施
  4. 规范性问题:在数据使用、存储和传输过程中,可能无法满足规范性要求,增加数据的理解难度,降低利用率
  5. 计算存储的冗余

数据治理的方案

1.数据中台

提供一个大而全的平台,将数据建模、数据开发、数据运营、指标可视化…都放到一个平台中。优点是好用,缺点是开发周期长,租用费用贵。

2.数据治理考评

通过设定各种治理项指标,对指标进行考核评分排名,结果导向倒逼开发人员不断改进数据治理的各项问题。优点:成本低,直击问题本身。缺点:缺少工具。
主要指标:

  1. 规范
    • 有技术owner
    • 有业务owner
    • 表名合规
    • 表有备注
  2. 存储
    • 生命周期合理
    • 是否空表
    • 存在相似表
  3. 计算
    • 长期五产出
    • 长期无访问
    • 计算中有错误
    • 简单加工:sql语句中没有任何join、group by、union函数的复杂计算
    • 计算中存在数据倾斜
  4. 质量
    • 表产出时时效监控
    • 表产出数据量监控
  5. 安全
    • 未明确安全等级
    • 目录文件数据访问权限超过建议值

架构

数据来源:

  1. hive元数据:字段名、表名、备注
  2. hdfs元数据:访问权限、访问写入时间、数据量大小
  3. dolphinscheduler调度器:sql定义,运行时间
  4. spark的运行日志,分析数据倾斜
  5. 手工录入信息:owner, 安全级别,生命周期

数据治理入门_第1张图片

Web服务

数据治理入门_第2张图片

web框架前世今生

  1. 各类老框架:php \ perl \ asp \ c#(.net 必须跑在window系统)
  2. ssh框架 = struts(1,2) + spring + hibernate
  3. ssm框架 = springmvc + spring + mybatis(ibatis)
  4. springboot = ssm的基础上包装的便于使用的框架
    • 特点
      • 节省大量配置,约定大于配置
      • 内置web服务容器,打包部署服务非常方便
      • 非常方便整合各种第三方框架,starter机制对接
    • 和java学习时的不同点
      • main函数只是启动程序服务器,业务逻辑在其他函数中
      • 程序逻辑是MVC三层架构的

为什么要分层?

  1. 提高代码的复用,减少重复代码的反复编写
  2. 结构清晰,方便定位问题的出错位置

数据治理入门_第3张图片
使用规范:

  • 尽量逐层调用
  • 控制层:每个类一般代表一种业务请求,每个方法代表某个特定的业务请求
  • 服务层:每个类代表一种业务操作
  • 数据层:每个类代表一张表,每个方法代表对该表的一跳SQL语句

SpringBoot项目特点

  1. 本质上还是一个maven的java项目
  2. 预加入了一些依赖
  3. 多了一个配置文件application.properties
  4. 多了一个启动程序Application, 主方法,直接运行即可

参数

数据治理入门_第4张图片

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

容器与组件

Spring 容器启动时:

  1. 以单例饿汉方式的方式创建所有组件,启动服务器时就创建,常见的组件为@RestController, @Service, @Mapper, @Component
  2. 会扫描所有的@Autowired,会自动装配所有组件的引用

你可能感兴趣的:(数据仓库,大数据)