[设计] Doris血缘解析流程

这篇具有很好参考价值的文章主要介绍了[设计] Doris血缘解析流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

1.1 元数据概述

元数据是凌久中台重要功能模块,是数据治理的重要一环,元数据治理是一切数据治理的基础,主要分为元数据管理和表血缘管理;

       元数据管理主要用来做数据地图、数据资产等;

       血缘治理主要用来追查问题数据上游表来源,以及分析当前表的对下游标影响扩散分析;

1.2 血缘构建方案调研

当前,数据血缘大多是对SQL语句进行解析,以发现上下游调用栈等信息。主流方案可分为两种:

  • 运行时解析,即在任务运行时通过hook接口或者listener接口对SQL生成的逻辑技术树(AST)进行解析。

  • 先采集后解析,即通过采集程序把各个计算引擎的SQL统一采集到mq进行血缘解析。

上述两类方案各有优劣,其对比如表1所示。

表1 数据血缘解析方案

[设计] Doris血缘解析流程

关于doris的血缘方案的调研

  • Apache Doris 在橙联的应用实践:数仓架构全面革新,千万数据计算时间从 2 小时变成 3 分钟

  • 基于Apache doris的元数据管理系统

  • 基于Apache doris怎么构建数据中台(二)-数据中台建设内容

  • 小米数据管理与应用实践

  • github上关于doris的血缘采集方案:https://github.com/DLuPan/DorisParser  该方案的功能代码很不完整,无法使用;

鉴于时间成本投入、市场主流方案两个方面考虑,选择使用“先采集后解析”的技术方案。具体来说就是使用自定义程序,解析doris输出的sql审计日志,并输出存储formTable和toTable类似的血缘关系结果,最后交给apache atlas构建血缘关系图并展示;

1.3 凌久中台元数据现状

参考资源:

  • 元数据模块源码所在:http://gitlab.software.dc/mp-data/metadata

  • 中台元数据操作:http://172.18.8.203:21101/app-metadata/metadataManagement/lists

  • doris血缘调研 by 范俊甫 :doris血缘预研 · 语雀

  • doris官网审计日志:审计日志插件 - Apache Doris

1.3.1 凌久中台元数据整体架构图

[设计] Doris血缘解析流程

二、Doris血缘解析

2.1 Doris元数据管理流程图

[设计] Doris血缘解析流程

2.2 设计步骤

第一步:开启doris的审计日志

开启doris审计日志功能开关之后,doris会会将所有的doris的sql语句全部实时输出到对应的一个审计日志文件中;

第二部:AnalyseLineageApp自定义应用采集doris审计日志,并按按照特定格式输出到sql_log表

AnalyseLineageApp为自定义doris审计日志实时采集,然后程序对sql进行血缘解析,形成来源formTable、目的toTable形成的sql_log表中;例如如下

[设计] Doris血缘解析流程

第三步:powerjob-metadata-node读取doris元数据写入atlas服务

powerjob-metadata-node程序,定时批量读取第三步中的读取技术元数据和血缘数据,然后经过自身处理调用atlas的客户端之后写入atlas自身的存储系统中(此处为hbase、solr中)

第四步:metadata_manager启动atlas server服务

第四步的atlas server服务要先于第三步启动,这样才能保证第三步顺利写入atlas服务;

第五步:数据中台前端添加支持doris采集器

修改metadata_manager(本质是atlas server服务),

2.3 中台落地过程

如何在凌久数据中台中执行doris的元数据和血缘的采集管理?

第一步:元数据的采集准备

      在"凌久数字中台" -> "元数据"-> "数据源管理",添加需要采的数据源集的元数据链接配置信息,需要特别注意:如果添加的是新的rodis集群地址(例如jdbc:mysql://127.0.0.1:9030/my_database地址中,其中,127.0.0.1:9030是新的doris集群地址),则需要首先在新的doris集群中开启审计日志,并配置filebeat应用采集doris集群的审计日志;其次是需要在新doris集群中,创建doris的sql_log表,用来存储doris的血缘原始数据;

其中2.2中第二步的sql_log血缘数据表,表结构如下,需要事先创建对应的表


CREATE TABLE `sql_log` (
  `create_time` datetime NULL COMMENT "创建时间",
  `db_name` varchar(255) NULL COMMENT "数据库名称",
  `table_name` varchar(255) NULL COMMENT "表名",
  `sql_info` varchar(8000) NULL COMMENT "SQL语句",
  `from_table` varchar(255) NULL COMMENT "来源表"
) ENGINE=OLAP
DUPLICATE KEY(`create_time`, `db_name`, `table_name`)
COMMENT "doris血缘数据表"
PARTITION BY RANGE(`create_time`)
(
PARTITION p20221122 VALUES [('2022-11-22 00:00:00'), ('2022-11-23 00:00:00')),
PARTITION p20221123 VALUES [('2022-11-23 00:00:00'), ('2022-11-24 00:00:00')),
PARTITION p20221124 VALUES [('2022-11-24 00:00:00'), ('2022-11-25 00:00:00')),
PARTITION p20221125 VALUES [('2022-11-25 00:00:00'), ('2022-11-26 00:00:00')))
DISTRIBUTED BY HASH(`db_name`, `table_name`) BUCKETS 5
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"dynamic_partition.enable" = "true",
"dynamic_partition.time_unit" = "DAY",
"dynamic_partition.time_zone" = "Asia/Shanghai",
"dynamic_partition.start" = "-30",
"dynamic_partition.end" = "3",
"dynamic_partition.prefix" = "p",
"dynamic_partition.replication_allocation" = "tag.location.default: 1",
"dynamic_partition.buckets" = "1",
"dynamic_partition.create_history_partition" = "false",
"dynamic_partition.history_partition_num" = "-1",
"dynamic_partition.hot_partition_num" = "0",
"dynamic_partition.reserved_history_periods" = "NULL",
"in_memory" = "false",
"storage_format" = "V2"
);

第二步:启动元数据采集任务

在"凌久数字中台" -> "元数据"-> "采集任务"中,启动采集任务,此时凌久中台开始了采集doris血缘的任务

第三步:  查看采集效果

在"凌久数字中台" -> "元数据"-> "元数据管理"中,查看采集的元数据效果

三、总结

工业能管中的doris血缘效果图

举例中的某一个张表

[设计] Doris血缘解析流程

Doirs血缘地址:

http://172.18.8.203:21000文章来源地址https://www.toymoban.com/news/detail-405565.html

到了这里,关于[设计] Doris血缘解析流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【手写数据库toadb】数据库planner的整体架构,以及逻辑查询树的设计与实现流程

    ​ 专栏内容 : 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段学

    2024年02月05日
    浏览(46)
  • 架构篇13:架构设计流程-详细方案设计

    完成备选方案的设计和选择后,我们终于可以长出一口气,因为整个架构设计最难的一步已经完成了,但整体方案尚未完成,架构师还需继续努力。接下来我们需要再接再励,将最终确定的备选方案进行细化,使得备选方案变成一个可以落地的设计方案。所以今天我来讲讲架

    2024年01月23日
    浏览(55)
  • FreeSWITCH 智能呼叫流程设计

    用户与机器人对话通常都是以文本的形式进行,但是借助 ASR 和 TTS 技术,以语音电话为载体的智能呼叫系统成为可能。智能呼叫系统涉及到多种不同类型的应用,以 FreeSWITCH 为交互核心的一种简要实现如下图所示,关键点为以下几个步骤: esl 客户端通过内连向 FreeSWITCH 实例

    2024年02月11日
    浏览(42)
  • 交互设计师必须知道的五大交互设计流程

    交互设计师必须知道的五大交互设计流程 交互设计 又称互动设计,从用户角度来说, 交互设计 是一种如何让产品易用,有效而让人愉悦的技术,它致力于了解目标用户和他们的期望,了解用户在同产品交互时彼此的行为,了解“人”本身的心和行为特点。同时,还包括了解

    2024年02月03日
    浏览(41)
  • 【数据库课设】图书馆资源管理系统 源码+流程图+结构设计(借还图书 逾期罚款 图书管理 读者管理 信息查询)python实现

    一个管理员编号对应一个密码,且需要有管理员注册密匙。 可以在图书信息表中录入、修改、删除图书。 可以在图书信息表中查询书籍。 可以编辑图书借阅、归还信息。 可以编辑欠款信息。 可以编辑读者信息表。 图书馆注册,获得读者编号。 可以在图书信息表中查阅书籍

    2024年02月10日
    浏览(50)
  • 数字芯片设计流程

    首先介绍下模拟信号与数字信号的区别:模拟信号在时间和数值上是连续的,例如我们要录制一段声音,模拟信号是用一段连续变化的电磁波或电压信号来表示,自然界中的信号以模拟信号呈现。而数字信号在时间和数值上是离散的、间断的。模拟信号通过采样、量化、编码

    2024年02月07日
    浏览(39)
  • 【软件架构】03-架构设计流程

    确定了系统面临的主要复杂度问题,进而明确了设计方案的目标, 一般三到五个,防止思维狭隘 从需求、团队、技术、资源等综合情况出发,对主流、成熟的架构模式进行选择。 以常见的质量属性作为评估标准:性能、可用性、硬件成本、项目投入、复杂度、安全性、可扩

    2024年02月22日
    浏览(41)
  • 流程控制翻转教学设计

    任务描述 本关任务:编写一个能在同一行输出小于n的非负整数的小程序。 相关知识 为了完成本关任务,你需要掌握: 1.range 2.遍历输出range产生的整数 range range 类型表示不可变的数字序列,通常用于在 for 循环中循环指定的次数。 range 参数必须为整数,如果省略 step 参数,

    2024年02月16日
    浏览(40)
  • AD20 原理图设计流程

    Altium Designer 20  的原理图设计大致可以分为 9 个步骤 : (1) 新建原理图 。这是原理图设计的第一步。 (2) 图纸设置 。图纸设置就是要设置图纸的大小,方向等信息。图纸设置要根据电路图的内容和标准化来进行。 (3) 加载元件库 。加载元件库就是添加原理图绘制所需

    2024年02月05日
    浏览(36)
  • MYSQL+SSM基于区块链的物联网数据交易-46193,免费领源码,【计算机毕业设计开题选题+程序定制+论文书写+答辩ppt书写 全流程 】

    SSM基于区块链的物联网数据交易 系    院 XXXX 学科门类 XXX 专    业  XXX 班级 XXX 学    号 XXX 姓    名 XXX 指导教师 XXX 教师职称 XXX 2022 年 12 月 4 日 摘  要 物联网技术作为继互联网技术后新一代的通信信息集成应用的典范,其巨大的应用前景受到了学术界和政商界的广

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包