impala&hive大数据平台数据血缘与数据地图(三)-实时消费血缘记录写入neo4j并验证

基于Calcite解析Flink SQL列级数据血缘 数据血缘 数据血缘(data lineage)是数据治理(data governance)的重要组成部分,也是元数据管理、数据质量管理的有力工具。通俗地讲,数据血缘就是数据在产生、加工、流转到最终消费过程中形成的有层次的、可溯源的联系。成熟的数据血缘系统可以帮助开发者快速定位问题,以及追踪数据的更改,确定上下游的影响等等。 在数据仓库的场景下,数据的载体是数据库中的表和列(字段),相应地,数据血缘... 阅读详情

impala数据血缘与数据地图系列:

1. 解析impala与hive的血缘日志

2. 实时采集impala血缘日志推送到kafka

3. 实时消费血缘记录写入neo4j并验证

-----------------------------------------实时消费impala血缘数据写入neo4j-----------------------------------------------------

前两篇介绍了如何采集impala和hive的血缘日志以及如何实时将该日志采集到kafka消息队列中,今天来介绍如何实时消费血缘日志并写入neo4j图数据库进行血缘的展现。

血缘记录Exactly Once

首先要保证filebeat采集的日志记录不会丢数据,因此需要在filebeat监控impala日志的yml配置文件中指定acks=-1,该参数保证kafka的Leader 在返回确认或错误响应之前,会等待所有同步副本都收到消息,因此吞吐量会降低,但血缘监控impala里的执行日志,一般来说我们在impala或hive中的脚本执行也不会有那么高频的查询提交。

filebeat.yml  [kafka参数部分]

#===========kafka output===============
output.kafka:

  hosts: ["uatka01:9092","uatka02:9092","uatka03:9092"]

  topic: wyk_filebeat_impala_lineage_new_demo

  required_acks: -1

消费的时候也要保证每条数据都准确的被消费到而不是在某一条失败后仍提交offset。因此我们需要在消费kafka的时候配置参数:

enable_auto_commit=false

以及消费每条记录成功之后执行

consumer.commit() 

在neo4j中创建唯一约束

这里我使用"库名.表名"作为表的节点唯一标识,"库名.表名.列名"作为列的节点唯一标识。

使用如下命令创建neo4j唯一约束:

CREATE CONSTRAINT ON (n:IMPALA_TABLE) ASSERT n.name IS UNIQUE;
CREATE CONSTRAINT ON (n:IMPALA_TABLE_COLUMN) ASSERT n.name IS UNIQUE;

效果验证

开启kafka server -->开启filebeat--> 运行消费者程序 -->开启impala命令行 -->执行DML -->验证效果 -->执行DML -->验证效果

1. 开启kafka sever:

(在kafka篇章里有具体介绍)

$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties

2. 启动filebeat

(参数请参考前面两篇文章):

nohup $FILEBEAT_HOME/filebeat --c $FILEBEAT_HOME/conf/filebeat_impala_lineage_prod.yml -e > $FILEBEAT_HOME/nohup_out.file 2>&1 &

3. 运行消费者程序

执行消费程序.实时解析kafka的数据并写入neo4j.

4. 进入impala命令行

这里是演示,所以我指定其中一台impala节点,同样在第二步里的filebeat也是在该impala daemon节点执行的

impala-shell -i uathd03
impala-shell -i 指定filebeat监控的impala节点

5.执行DML 创建视图

vw_lineage_test,逻辑来源于表dl_nccp.account以及dl_nccp.individual表,字段有account表的gid和decrypt_name,branch_name以及individual表的company_name。

create view vw_lineage_test as
select acc.gid,acc.decrypt_name,ind.company_name ,acc.branch_name
from dl_nccp.account acc 
inner join dl_nccp.individual ind on acc.gid=ind.gid and acc.is_deleted='0' and acc.is_valid='0';

6. 验证效果

使用match命令查看所有到节点'vw_lineage_test'的关系。

MATCH p=()-[r]->(d:IMPALA_TABLE) where d.name='default.vw_lineage_test' RETURN p

7.执行DML 修改视图逻辑

新增一个来源表dl_nccp.contact以及该表的字段telephone。

alter view vw_lineage_test2 as
select acc.gid,acc.decrypt_name,ind.company_name,acc.branch_name,c.telephone 
from dl_nccp.account acc 
inner join dl_nccp.individual ind on acc.gid=ind.gid and acc.is_deleted='0' and acc.is_valid='0'
inner join dl_nccp.contact c on acc.gid = c.gid

7. 验证效果

可以看到新增的contact表以及telephone字段的关系已经实时更新到neo4j内

MATCH p=()-[r]->(d:IMPALA_TABLE) where d.name='default.vw_lineage_test' RETURN p

8. 最终效果

实现字段粒度的血缘分析以及表粒度血缘和业务来源库表的血缘 以及元数据的实时采集。

数据地图:

 元数据管理:

 

spark-sql字段级血缘关系实现 spark-sql 表字段血缘关系可视化案例 阅读详情

相关推荐

数据中台之血缘管理:Neo4J详解

一. 简介 二. 核心 1.概念 database: node: label: property: relationship: 2.语法 create: match: delete: create index: call: drop index: return: where: remove: set: union: ?? merge: upper lower substring replac 聚合函数: count,max

GIS摆渡人 2708

使用Neo4j做技术血缘管理

本文基于Neo4j数据库做了应用介绍、安装、基础操作和技术血缘demo项目的实现。

weixin_42049123的博客 3802

KafkaNeo4JConnector:通过Kafka-Topic执行用Cypher或JCypher编写的Neo4J命令的连接器

KafkaNeo4JConnector 通过Kafka-Topic执行用Cypher或JCypher编写的Neo4J命令的连接器 与其他Neo4J连接器的差异 该连接器支持JCypher,并使用Apache-Kafka-Streams模型。 其他连接器仅支持简单的Cypher-Command,并使用使用Apache Kafka生产者和使用者来收听和打印主题的体系结构。 手动的 开始 Java –jar KafkaNeo4JConnector.jar [Settingsfile.config | Neo4JServerUrl Neo4JUsername Neo4JPassword kafkaServers kafkaInputTopic kafkaOutputTopic kafkaGroupid] 您可以通过Settingsfile.config输入以下格式的选项: Kafka.Boo

数据血缘——基于单机版Neo4j实现数据血缘的管理

本文章仅仅提供了Neo4j做数据血缘的设计,提供Restful-Api 对数据血缘的增删查改,至于数据血缘的解析,需要先在另外的模块进行处理。

Carson073的博客 4357

Flowable第一篇、快速上手(Flowable安装、配置、集成)

Flowable是一个轻量级、高效可扩展的工作流和业务流程管理(BPM)引擎,支持在Java应用程序中实现复杂的工作流自动化。Flowable最初是作为Activiti项目的一个分支发展而来的,但它现在已经成为一个独立的开源项目,并在企业级应用中得到了广泛使用

Du_XiaoNan的博客 1万+

【成功安装】Ubuntu22.04极简方式安装Nvidia驱动

今天下午安装了实机的Ubuntu,面临在Linux上安装Nvidia的问题,被这个问题困扰了一整个下午,各种报错整的我头大。后来发现了不需要按照传统的方式去Nvidia官网下载,再命令行安装,直接在线安装即可。

清筱明的博客 5346

impala&hive大数据平台数据血缘与数据地图(四)-impala血缘架构图及功能介绍

最近在内部做了个分享,顺便画了一下这次impala数据血缘的架构图: 架构图: 如果想了解如何实现请参照前面几篇文章: impala数据血缘与数据地图系列: 1. 解析impala与hive的血缘日志 2. 实时采集impala血缘日志推送到kafka 3. 实时消费血缘记录写入neo4j并验证 ---------------------------------Impala血缘 架构图-----------------------------------------------------

王义凯 的博客 5551

AR1020触摸控制器驱动开发:嵌入式I²C/SPI底层集成指南

电容式触摸控制器是现代嵌入式人机交互(HMI)系统的核心感知单元,其工作原理基于寄生电容变化检测与数字信号处理。Microchip AR1020 作为典型单芯片方案,内置硬件滤波、多点跟踪与手势识别引擎,通过I²C或SPI接口输出结构化事件数据,显著降低主控MCU负载。该类器件的技术价值在于平衡精度、功耗与实时性,广泛应用于工业HMI、医疗设备及车载终端等对可靠性要求严苛的场景。本文聚焦AR1020的寄存器映射、中断驱动模型、坐标解析机制及在STM32平台的HAL/LL级工程实现,涵盖硬件时序约束、固件配置

weixin_29323977的博客 600

使用Antlr4和neo4j解析sql生成数据地图

使用Antlr4和neo4j解析sql生成数据地图 杂谈1: 之前学习搭建atlas平台的时候就很好奇他是如何解析sql,然后根据sql生成对应的血缘图的,在学习spark源码的过程中认识了antlr4 这样一个可以根据自定义语法规则来解析成语法树的工具 于是我就希望可以参考atlas的解析功能,将复杂的长sql解析出它的数据地图出来. 杂谈2: 那么有人会问了,这样做的意义在哪里. 如果做过数据开发之类的工作的话,应该会遇到那种情况, 维护了大量的表,但是不知道这些表究竟被谁用了, 因为迭代更新,可能需要

weixin_44445168的博客 5971

数据中心机房建设标准及依据

深刻理解、尊重并恪守这些依据,是我们以科学、经济、可靠的方式,为蓬勃发展的数字经济筑牢基石的唯一路径。让我们共同努力,以标准为依据,以匠心为精神,建造更多世界一流的高效能、高可用、高智能的绿色数据中心,共同赋能数字中国的宏伟事业,支撑中华民族在数字时代的伟大复兴征程中稳步前行!今天我将力图以宏大的视角和深入的剖析,系统性地阐述数据中心机房建设所应遵循的多层次、多维度的标准依据,揭示这些依据背后的深层逻辑与时代使命,并探讨其如何共同作用于一座世界级数据中心的诞生。,以支持万兆乃至更高速率的传输。

qq_39980997的博客 1139

ERROR conda.core.link:_execute(502): error occurred while installing conda-forge::setuptools 解决方案

本文主要介绍了ERROR conda.core.link:_execute(502): An error occurred while installing package mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::setuptools-65.5.1-pyhd8ed1ab_0.FileNotFoundError(2, 系统找不到指定的文件。, None, 2) 解决方案,希望能对新手有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

Gremlin+neo4j(完整实例)

一. 简介 关于Gremlin和neo4j的简介这里不做过多的介绍,目前两者主要是解决数据血缘的问题,本文主要讲解内嵌型Gremlin和neo4j的使用方式以及完整的实例。

Timmer的博客 2728

第一章 电力电子仿真软件 PLECS简介

PLECS是瑞士Plexim公司开发的电力电子仿真软件,具有快速仿真、丰富元件库和热分析功能。软件提供单机版和嵌入MATLAB的版本,支持多平台安装且流程简单。首次运行需获取授权文件,提供60分钟演示模式。界面包含模型创建、帮助文档和元件库浏览器等功能区域,操作便捷。该软件是专业高效的电力电子系统仿真工具。

501

干货 | 携程数据血缘构建及应用

一、前言Data lineage includes the data origin, what happens to it and where it moves over time. Da...

大数据星球-浪尖 2148

YOLOv11-Pose部署RK3588实战:人体姿态识别精度翻倍,边缘推理速度突破瓶颈

本教程从YOLOv11-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实时性+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随时交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

m0_64661770的博客 138

Android平台实现Airplay的方法及源代码

Airplay是由苹果公司推出的一项无线音视频传输技术,它允许用户将音频、视频和照片从iOS设备(如iPhone、iPad)或Mac电脑无线传输到支持Airplay的设备(如Apple TV、智能音箱等)。具体的解码和播放方式取决于你选择的库和技术。当Android设备启动AirplayService服务后,它将监听来自iOS设备的连接请求,并在建立连接后接收、解码和播放音视频数据。在AirplayService类的onStartCommand()方法中,我们需要处理Airplay的请求。

CyberLynxX的博客 1600

基于spark logicplan的表血缘关系解析实现

随着公司平台用户数量与表数量的不断增多,各种表之间的数据流向也变得更加复杂,特别是某个任务中会对源表读取并进行一系列复杂的变换后又生成新的数据表,因此需要一套表血缘关系解析机制能清晰地解析出每个任务所形成的表血缘关系链。 实现思路: spark对sql的操作会形成一个dataframe,dataframe中的logicplan包含了sql的语法树,通过对logicplan的语法树解析可以获取当前stage所操作的输入表和输出表,将整套表关系链连接起来,再去除中间表即可获...

u011250186的博客 1436

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

数据中台实战(04)-打造高效数据中台,元数据中心是关键!

元数据包括数据字典、数据血缘和数据特征然后通过分析两个业界比较有影响力的元数据中心产品结合国内的数据中台实践,给出元数据中心设计的关键特性和技术实现架构最后介绍基于元数据中心之上的数据地图产品元数据中心设计须注意扩展性,能支持多数据源,宜采用集成型设计数据血缘需支持字段级血缘,否则影响溯源范围和准确性数据地图提供一站式数据发现服务,解决检索数据,理解数据的“找数据的需求”

JavaEdge全是干货的技术号 1508

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Neo4j实现表字段级血缘关系

/ 唯一键// 添加图节点以及与上游节点之间的关系// 寻找上游节点// 寻找下游节点。

PANDA博客 2303

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

利用neo4j做数据图谱管理数据库表(一)

@TOC 背景 近几年,随着数据中台的概念迅速红火,越来越多的企业正在或者正在准备打造自己的数据中台,数据中台需要汇集公司全业务流,全生产环节产生的数据,庞大的数据资源进来出去势必对数据的管理提出新的挑战,如何高效便捷的管理好这些数据流也是数据中台建设环节中一项重要且很有意义的基础工作,目前有行业里常用的数据库文档的管理方式有 使用excel(word)文档管理; 使用powerdesigner管理; 在代码中维护或使用sql审核工具如archerry,并且使用pd做反向工程; 上面三种管理

帅帅de三叔 2481

sqllineage解析sql列级血缘并提交到datahub

通过sqllineage获取指定sql文件中HiveSQL的字段级血缘关系,并将结果提交到datahub

LCriska的博客 8983

大数据库 Neo4j简介

前言 随着大数据时代的发展,诞生了一大批大数据时代下的新数据库产品,如今MongoDB、Redis、HBase这些NoSQL数据库已经成为了互联网开发的新标配,SQL一统江湖的时代不复存在了。 然而,如果你觉得只要学习了上边这几种NoSQL你就抓住了大数据时代的话,你可就大错特错了!大数据时代发展速度之快超乎你的想象,新的数据库产品仍然在不断诞生,一些快速兴起的小众数据库很有可能成为下一个Mong...

托塔天王的博客 3338

全链路数据血缘在满帮的实践

摘要:全链路数据血缘,指在数据的全生命周期内,数据与数据之间会形成各式各样的关系,贯穿整个数据链路中。

华为云官方博客 2444

超级好文:元数据管理、指标管理、数据模型评价

上一篇文章主要介绍了数据中台的原理知识,现在开始介绍数据中台的实现篇章,主要从3个方面来说明,第一个是元数据的管理,第二个是指标的规范的管理,第三个是数据模型的建立。那么如果你面临这些问题,该如何规范化定义指标呢?我提供给你一些经验,希望你能从中学习到如何高效、规范化的管理指标。为了提高指标管理的效率,你需要按照业务线、主题域和业务过程三级目录方式管理指标(业务线是顶级目录)。电商、游戏、音乐、传媒、教育都是不同的业务线。

yuan_53yuan的博客 1789
上一篇: CDH6.2中使用parcel离线安装Phoenix5.0.0
下一篇: 使用Phoenix映射hbase表创建表和视图
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值