• 数据治理入门


    处理模式

    模式名称常见场景常见框架
    批处理夜间几个小时,无人值守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, 安全级别,生命周期

    在这里插入图片描述

    Web服务

    Spring boot

    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. 结构清晰,方便定位问题的出错位置

    三层结构
    使用规范:

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

    SpringBoot项目特点

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

    参数

    在这里插入图片描述

    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,会自动装配所有组件的引用
  • 相关阅读:
    ALBERT-更小更少但并不快
    解密prompt系列5. APE+SELF=自动化指令集构建代码实现
    Evil.js
    GO语言gin框架实战-04-websocket链接
    平衡二叉树(AVL)【java实现+图解】
    数字时代的“文艺复兴”?起底数字藏品,让人欢喜让人愁
    【狂神说Java】Docker概述 | Docker安装 | Docker的常用命令
    AI图书推荐:利用生成式AI实现业务流程超自动化
    嵌入式基础-电路
    行为型模式-命令模式
  • 原文地址:https://blog.csdn.net/qq_44273739/article/details/134454736