[设计] Doris血缘解析流程

2023-05-16

一、背景

1.1 元数据概述

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

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

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

1.2 血缘构建方案调研

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

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

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

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

表1 数据血缘解析方案

关于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血缘解析

2.1 Doris元数据管理流程图

2.2 设计步骤

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

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

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

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

第三步: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血缘效果图

举例中的某一个张表

Doirs血缘地址:

http://172.18.8.203:21000

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[设计] Doris血缘解析流程 的相关文章

  • doris stream load

    package uhp import java io IOException import java nio charset StandardCharsets import org apache commons codec binary B
  • [设计] Doris血缘解析流程

    一 背景 1 1 元数据概述 元数据是凌久中台重要功能模块 xff0c 是数据治理的重要一环 xff0c 元数据治理是一切数据治理的基础 xff0c 主要分为元数据管理和表血缘管理 xff1b 元数据管理主要用来做数据地图 数据资产等 xf
  • presto和doris查询对比

    本文对比了presto和doris在即席查询场景下的性能对比 1 count 查询数据总条数 例子 xff1a select count from ods tb device point data presto查询结果 presto vas
  • doris和hive的区别

    Doris和Hive是两种开源的数据仓库工具 xff0c 都可以用来分析大型数据集 Doris是由阿里巴巴开发的一款大数据分析工具 xff0c 具有低延迟 高吞吐 高可扩展性等优点 它采用PAL Parallel amp Analytic
  • Doris窗口函数经典案例:遇到标志划分组

    需求 将上面的表转化成下面的形式 首先按照用户进行分组 在用户分组的基础上 name字段每遇到一个e 就分一组 user id name u1 e1 u1 e1 u1 e u1 e2 u1 e3 u1 e u2 e1 u2 e2 u2 e
  • doris 常用操作收集

    1 bit map索引 原理 用户可以在建表时指定在某些列上创建Bitmap索引 也可以在运行时通过 ALTER TABLE TODO 命令新增Bitmap索引 Bitmap索引是一中特殊的数据库索引技术 其索引使用bit数组 或称bitm
  • Doris学习笔记之查询

    文章目录 查询设置 增大内存 修改超时时间 查询重试和高可用 代码方式 JDBC连接器 ProxySQL方式 简单查询 基本查询 联合 join 查询 子查询 Join查询 广播Join 默认使用 Broadcast Join 显式使用 B
  • Doris--基础--06--设置内存

    Doris 基础 06 设置内存 1 问题 内存不够时 查询可能会出现 Memory limit exceeded 这是因为doris对每个用户默认设置内存限制为 4g 2 设置内存 2 1 查看当前内存 SHOW VARIABLES LI
  • Doris--基础--4.2--数据导入--Insert Into

    Doris 基础 4 2 数据导入 Insert Into 1 介绍 类似Mysql中的insert语句 方式 通过 insert into table select 的方式从Doris的表中读取数据并导入到另一张表中 通过 insert
  • doris前缀索引、doris bloom filter索引、doris bitmap索引原理及适应场景

    索引用于帮助快速过滤或查找数据 目前 Doris 主要支持两类索引 内建的智能索引 包括前缀索引和ZoneMap索引 用户创建的二级索引 包括Bloom Filter索引和Bitmap倒排索引 其中ZoneMap索引是在列存格式上 对每一列
  • Doris--基础--11--动态分区

    Doris 基础 11 动态分区 1 介绍 对表级别的分区实现生命周期管理 TTL 减少用户的使用负担 1 1 功能 动态添加分区 动态删除分区 1 2 原理 在某些使用场景下 用户会将表按照天进行分区划分数据 在没有动态分区功能的时候 用
  • Doris系列15- 索引

    文章目录 一 索引概述 二 案例 参考 一 索引概述 目前Doris只支持bitmap 索引 BITMAP 索引仅在单列上创建 bitmap index 位图索引 是一种快速数据结构 能够加快查询速度 语法 index 创建和修改相关语法有
  • Doris---索引

    前缀索引 doris中 对于前缀索引有如下约束 他的索引键最大长度是36个字节 当他遇到了varchar数据类型的时候 即使没有超过36个字节 也会自动截断 示例1 以下表中我们定义了 user id age message作为表的key
  • Doris 扩缩容和副本均衡

    扩缩容和副本均衡 对于集群节点发生变化 扩缩容 时 集群内部的tablet是如何以一定的策略完成数据的重分布 从而达到每个be能够分布尽可能数量相同的tablet 同时 集群内部某些tablet由于某些原因发生损坏时 这些tablet的自动
  • 自建minio实现doris的快速备份与恢复

    一 概述 doris支持通过腾讯云bos 阿里云oss hdfs实现备份与恢复 但是我们公司doris部署在线下机房 如采用oss bos 大数据备份与恢复比较慢 会占用一定的带宽 如采用hdfs 担心小文件太多影响现有的hadoop集群
  • doris错误信息Invalid range value format

    错误信息 ERROR 1105 HY000 errCode 2 detailMessage Invalid range value format errCode 2 detailMessage date literal 2017 03 01
  • mysql到doris踩坑记录(如果有问题希望大家帮忙指出问题)

    1安装mysql 该步骤晚上很多 不做记录 2安装docker 同上 3安装并部署doris 下载镜像步骤省略 sudo docker run p 9030 9030 p 8030 8030 p 8040 8040 itd starrock
  • Doris-07-索引的详细介绍(前缀索引、Ordinal索引、Zone Map索引、Bitmap索引、Bloom Filter索引、NGram BloomFilter索引、倒排索引)

    文章目录 索引 介绍 前缀索引 索引生成 查询过滤 Ordinal 索引 索引生成 查询过滤 Zone Map 索引 索引生成 查询过滤 Bitmap 索引 索引生成 查询过滤 适用场景 Bloom Filter 索引 索引生成 查询过滤
  • Doris--基础--10--数据模型

    Doris 基础 10 数据模型 1 基本概念 在 Doris 中 数据以表 Table 的形式进行逻辑上的描述 一张表包括行 Row 和列 Column Row 用户的一行数据 Column 用于描述一行数据中不同的字段 1 1 Colu
  • Doris节点扩容及数据表

    扩容和缩容 上篇文章简单讲了doris的安装 本章分享的是doris中fe和be节点的扩容缩容以及doris的数据表 1 FE 扩容和缩容 使用 MySQL 登录客户端后 可以使用 sql 命令查看 FE 状态 目前就一台 FE mysql

随机推荐

  • 【视频】零基础学Android开发:蓝牙聊天室APP(一)

    零基础学Android开发 xff1a 蓝牙聊天室APP第一讲 1 Android介绍与环境搭建 xff1a 史上最高效Android入门学习 1 1 Google的大小战略 1 2 物联网与云计算 1 3 智能XX设备 1 4 Andro
  • 飞行控制器Pixhawk简介

    作者 xff1a 华清远见讲师 Pixhawk是一款由PX4开源项目设计并由3DR公司制造生产的高级自动驾驶仪系统 其前身是APM xff0c 由于APM的处理器已经接近满负荷 xff0c 没有办法满足更复杂的运算处理 xff0c 所以硬件
  • Altium Designer 10 介绍、原理图及其模板常规设计

    作者 xff1a 卢老师 华清远见嵌入式学院讲师 1 Altium Designer 10 入门知识 1 1 1 什么是 Altium Designer Altium Designer 提供了统一的应用方案 xff0c 是 Protel x
  • ubuntu18配置PX4编译环境

    Ubuntu 18 04系统下搭建PX4 Pixhawk原生固件编译环境 经参考总结CSDN上多位开发者的文章 xff0c 经调整亲测可行 xff01 参考文章 xff1a 7条消息 搭建无人机仿真环境之PX4安装中出现的一些问题的解决 T
  • F450机架 Pixhawk飞控实现自动避障(2019.11.29)

    之前进行无人机项目 xff0c 实现避障 巡航 定点 航拍等功能 xff0c 项目结束 xff0c 在这里进行分享经验 xff0c 项目所用器件为自己使用的 xff0c 仅供参考 xff0c 实际实现须结合自己实际情况 1 传感器选择 权盛
  • Java类中final/static修饰的成员变量初始化问题

    文章目录 问题1 final修饰基本数据类型 xff08 final修饰成员变量的初始化方法 xff09 1 代码2 分析 问题2 final修饰静态成员变量的初始化方法1 代码2分析3 问题2 1 问题3 final修饰引用类型的初始化以
  • c++基础知识,有现成的函数不用,非的自己设计算法,这不是坑爹吗?

    那天天气不错 xff0c 小白 xff08 纯属虚构 xff0c 也许是我 xff0c 你猜 xff0c 呵呵 xff09 兴高采烈地去xx手机游戏公司面试 xff0c 带上自己的学历 xff0c 简历 xff0c 还有android 手机
  • 树莓派没有屏幕如何连接WiFi

    Wi Fi 或以太网 如果您想使用本地 lan 的 DHCP 服务器为您的 pi 获取 IP 地址 xff0c 则有两种方法可以将 Pi 连接到互联网 xff1a 首先是使用以太网电缆将 Pi 连接到路由器 在这种情况下 xff0c 您可以
  • 福禄克FLUKE 435-2电能质量分析仪测试瞬态与电压不平衡

    最常影响工业工厂的电功率问题包括电压暂降和暂升 谐波 瞬态 xff0c 以及电压和电流不平衡 在平衡的三相系统中 xff0c 各个相电压应相同或非常接近于相同 不平衡是相电压不相等程度一个度量 电压不平衡是三相系统中各相之间的电压差异指标
  • 在线摄像头

    在线摄像头 2009 07 22 09 49 10人阅读 评论 0 收藏 举报 在Google中输入 inurl 34 ViewerFrame Mode 61 34 或者 inurl 34 MultiCameraFrame Mode 61
  • Docker Desktop的安装

    如果安装了 Docker Desktop xff0c 则已经安装了完整的 Docker xff0c 包括 Compose 一 在 Ubuntu 上安装 Docker Desktop DEB 包 先决条件 要成功安装 Docker Deskt
  • Intel Realsense D435i Firmware Update

    Intel Realsense D435i Firmware Update 0 引言1 更新2 显示设备信息 0 引言 固件下载更新教程 1 更新 固件名称 xff1a Signed Image UVC lt firmware versio
  • Intel RealSense D435i Calibration

    Intel RealSense D435i Calibration 0 引言1 标定工具安装1 1 imu utils Install1 2 kalibr Install 2 IMU标定3 相机标定4 IMU 43 相机联合标定5 VINS
  • G2O优化

    G2O优化 0 引言0 1 参考0 1 G2O的解决问题0 2 G2O整体框架 1 基本使用1 1 构造 g2o 模型1 2 g2o 类图 2 g2o 的顶点 xff08 Vertex xff09 2 1 顶点的格式2 2 自定义顶点2 3
  • Kalman Filter

    Kalman Filter 0 引言1 Kalman Filter1 1 建模1 2 五个重要公式 2 推导3 MatlabDemo 0 引言 卡尔曼滤波 xff08 Kalman filtering xff09 一种利用线性系统状态方程
  • 发一套最完整的直升机原理(绝对完整,绝对精华)

    发一套最完整的直升机原理 xff08 绝对完整 xff0c 绝对精华 xff09 这是找到的最完整 xff0c 最系统介绍直升机的原理及发展史的文章 转到这里 xff0c 送给论坛里喜欢飞行 xff0c 向往蓝天的朋友 xff01 xff0
  • 模拟串口UART的实现

    我所祷告的 xff0c 就是要你们的爱心 xff0c 在知识和见识上 xff0c 多而又多 xff0c 使你们能分辨是非 xff0c 做诚实无过的人 xff0c 直到基督的日子 腓立比书 1 9 10 最近在调的MCU的型号为STM32F0
  • VScode安装git插件使用说明

    VScode创建代码功能目录后 xff0c 可以安装git相关插件查看代码合入历史记录 代码提供 更新 合入等操作 xff0c 使用起来比较方便 1 安装试用Git History 离线安装包 xff1a donjayamanne gith
  • 使用java代码连接RedisCluster集群实现

    Redis5 x集群学习须知 学前须知 xff1a 当前redis的最新版本是5 0以上 xff0c 其搭建cluster的方法与早期的redis4 0以前的不太一样 xff0c 不再使用ruby相关的组件 1 redis集群的常见搭建方式
  • [设计] Doris血缘解析流程

    一 背景 1 1 元数据概述 元数据是凌久中台重要功能模块 xff0c 是数据治理的重要一环 xff0c 元数据治理是一切数据治理的基础 xff0c 主要分为元数据管理和表血缘管理 xff1b 元数据管理主要用来做数据地图 数据资产等 xf