数据治理之定时调度和血缘关系

SpringBoot定时调度

  1. 在applicaiton类上加注解@EnableScheuling
  2. 创建调度包scheduler
  3. 创建一个考评类调度类AssessScheduler
  4. 创建exec()方法,添加注解@Scheduled(cron=“******”)
    • 分表代表秒,分,时,日,月,星期
    • 0/5,*****, 代表每5秒执行一次

调度工具

  1. 大数据:oozie, Azkaban, 任务众多,流程复杂,配置复杂
  2. java: quartz , xxl-job, elastic-job, 流程简单,分布式,高可用,配置较为复杂
  3. springtask,不支持复杂的流程,也不支持分布式,配置非常简单

血缘关系

  1. 通过双向树形图,来展示表与表之间的关系
  2. 提取关系,每个表的上游source_table, 每个表的下游sink_table
  3. 提取表的元数据 + 当天任务实例的sql
  4. 解析SQL,提取来源表(调用SQL工具,制作一个节点处理器,目的就是提取来源表),得到key-value结构,Key是目标表,value是source表集合。
    • 使用语法树来提取来源表,会查询到真实表和子查询表,需要将子查询表去掉,只保留真实表。
    • 将库名.表名加入到来源表set中,需要对带库名和不带库名两种情况都做处理
  5. 保存数据到血缘关系表中

展示血缘图

方案1:把数据写出来,用Java递归实现组装左右树结构
方案2:利用图数据库neo4j, 存储两个节点之间的关系,可以通过语法直接提取某个节点与其他所有父子多层级的关系
方案3:每次只展开一层,用户点击时再查询下一层的节点

总结

为什么要做这个项目

  1. 明确没有这个项目之前,痛点在哪里

    • 规范
      • 不规范
      • 不易理解
      • 不易变更扩展
    • 存储
      • 冗余:磁盘,内存
    • 计算
      • 冗余:内存,cpu
      • 不够优化:数据倾斜,sql
    • 质量
      • 不按时
      • 不按量
    • 安全: 不安全
  2. 数据治理考评平台:通过… 利用… 实现了…最终…

    • 通过:规划定义了各种数据治理指标项,从Hive, hdfs, ds日志提取各种数据源,实现了针对各个表和指标的考评
    • 利用:各个指标的评分排行和问题描述等方式,倒逼开发人员对数据治理不断改进
    • 最终: 让程序员发现数仓现有的问题,找到优化方向
  3. 如何实现的?

    • 整体架构图
    • 开发平台流程图
    • 技术清单:springboot + mybatis-plus + hive + hdfs + dolphinscheduler
    • 两个引擎:
      • 批处理:spring task
      • 即席处理:
    • 5个治理类型 + 17个指标 (全文背诵)
      • 每个指标如何实现的
  4. 新学的技术框架:

    • springboot

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

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

相关文章

Java集合知识总结

目录 1. 请解释Java集合框架中的Collection接口和它的主要方法。2. 描述一下ArrayList和LinkedList的区别以及它们各自的使用场景。3. 解释一下Java中的泛型及其在集合框架中的应用。4. 解释一下Java集合框架中的迭代器及其主要方法。5. 什么是Java集合框架中的fail-fast机制&a…

(十三)Flask之特殊装饰器详解

目录: Flask中用作装饰器的特殊的函数第一部分:before_request和after_request一、 before_request装饰器:二、after_request装饰器:三、多个before_request和after_request执行流程分析: 首先—理论讲解:然…

Python3 面向对象

面向对象技术简介 类(Class):用来描述具有相同属性的方法和对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数类变量:类变量在整个实例化的对象中是公用的。类变量定义在…

微软Azure AI新增Phi、Jais等,40种新大模型

微软在官方宣布在Azure AI云开发平台中,新增了Falcon、Phi、Jais、Code Llama、CLIP、Whisper V3、Stable Diffusion等40个新模型,涵盖文本、图像、代码、语音等内容生成。 开发人员只需要通过API或SDK就能快速将模型集成在应用程序中,同时支…

Java EE 进程线程

JavaEE 进程&线程 文章目录 JavaEE 进程&线程1. 进程1.1 概念1.2 进程管理1.3 PCB (Process Control Block) 2. 线程2.1 概念2.1 线程与进程的区别2.3 创建线程 1. 进程 1.1 概念 什么是进程? 进程是操作系统对一个正在执行的程序的一种抽象 我们可以打开…

Python编程基础

Python是一种简单易学的编程语言,广泛应用于Web开发、数据分析、人工智能等领域。无论您是初学者还是有一定编程经验的人士,都可以从Python的基础知识开始建立自己的编程技能。 目录 理论Python语言的发展程序设计语言的分类静态语言与脚本语言的区别 代…

Allegro层叠中的介电常数如何填写指导说明

Allegro层叠中的介电常数如何填写指导说明 在用Allegro进行PCB设计的时候,需要在cross-section中设置好每个层的信息,包括层命名,每层的厚度等等信息。如下图 一般来说,这些信息就足够了 但是对于有仿真需求或者等长设计需要使用ps作为延时单位的设计的时候,需要额外在层…

JVM基础篇:垃圾回收

1.前言 1.1C/C的内存管理 在C/C这类没有自动垃圾回收机制的语言中,一个对象如果不再使用,需要手动释放,否则就会出现内存泄漏。我们称这种释放对象的过程为垃圾回收,而需要程序员编写代码进行回收的方式为手动回收。内存泄漏指的…

Express内置的中间件

自Express 4.16.0 版本开始,Express 内置了3个常用的中间件,极大的提高了 Express 项目的开发效率和体验: 1.express.static 快速托管静态资源的内置中间件,例如: HTML 文件、图片、CSS 样式等 (无兼容性) 2.express.json 解析JSON 格式的请…

6.12找树左下角的值(LC513-M)

算法: 这道题适合用迭代法,层序遍历:按层遍历,每次把每层最左边的值保存、更新到result里面。 看看Java怎么实现层序遍历的(用队列): /*** Definition for a binary tree node.* public clas…

C++——解锁string常用接口

本篇的内容是记录使用string接口的测试与使用,方便后续使用时查阅使用 首先介绍 string::npos; size_t(无符号整型)的最大值。NPOS 是一个静态成员常量值,具有 size_t 类型元素的最大可能值。当此值用作字符串成员函数中 len&am…

Linux多路转接select,poll

文章目录 目录 文章目录 一、五种IO模型 1.阻塞IO: 2.非阻塞IO 3.信号驱动IO 4.IO多路转接 5.异步IO 二、高级IO的一些重要概念 1.同步通信和异步通信 2.阻塞和非阻塞 三、其他高级IO 四、非阻塞IO 1.fctl函数 2.实现setNoBlock函数,将文件描述符设置…

D365 CRM Power Platform 后端开发概览

博主十年前写的后端技术文章大部分都out-of-date啦,有些东西还能在PP系统中继续沿用,大部分东西都变成old fashion了。 博主后续争取多找些时间,将之前的后端开发文档都翻新一遍,争取与时俱进,让它们还能继续使用下个…

C++const指针的两种用法

const int *p &a; 指向const变量的指针 指向const变量的指针const修饰的变量,只能由指向const变量的指针去指向 p &a1;const的位置,必须在*的左边指向const变量的指针,可以被改变,可以指向别的变量可以指向普通变量&am…

好玩的调度技术-生成式三维技术

好玩的调度技术-生成式三维技术 文章目录 好玩的调度技术-生成式三维技术前言一、效果图?二、技术实现系列文章链接其他文章新篇章 前言 目前休息了,预计休息半年,这半年里只会零星更新一些好玩的技术,感觉好玩系列都快成系列文章…

css之fade 动画效果

1.transition-group transition-group官方文档<TransitionGroup> 是一个内置组件&#xff0c;用于对 v-for 列表中的元素或组件的插入、移除和顺序改变添加动画效果。 2.代码 <div class"senior-panel"><transition-group name"fade">&…

九、基础算法精讲:动态规划二

目录 一、状态机DP1.1 买卖股票的最佳时机 II&#xff08;不限制交易次数&#xff09;1.2 买卖股票的最佳时机含冷冻期1.3 买卖股票的最佳时机 IV1.4 买卖股票的最佳时机含手续费 二、区间DP2.1 最长回文子序列2.2 多边形三角剖分的最低得分2.3 由子序列构造的最长回文串的长度…

详解如何使用VSCode搭建TypeScript环境(适合小白)

搭建Javascript环境 因为TypeScript不能直接在浏览器上运行。它需要编译器来编译并生成JavaScript文件。所以需要首先安装好javascript环境&#xff0c;可以参考文章&#xff1a; 详解如何使用VS code搭建JavaScript环境&#xff08;适合小白&#xff09;_vscode配置javascri…

LeetCode Hot100 437.路径总和III

题目&#xff1a; 给定一个二叉树的根节点 root &#xff0c;和一个整数 targetSum &#xff0c;求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始&#xff0c;也不需要在叶子节点结束&#xff0c;但是路径方向必须是向下的&#xff08;只能从…

不可错过的设计工具!7款亲测好用的网页设计工具推荐!

网页设计并不容易&#xff0c;易于使用的网页设计工具更难找到。随着网络的快速发展&#xff0c;网站迅速崛起&#xff0c;网页设计也很流行。本文收集了 7 种良心和易于使用的网页设计工具&#xff0c;每一种近年来都受到网页设计师的广泛欢迎&#xff0c;以确保实用和易于使用…