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

auto.js梦幻西游游戏脚本,梦幻西游脚本开发思路

本篇文章给大家谈谈梦幻西游脚本用什么语言写,以及auto.js梦幻西游游戏脚本,希望对各位有所帮助,不要忘了收藏本站喔。

npy199331的博客 1939

PHP实战:5分钟搞定SM4国密加密算法集成(附完整代码)

本文提供了一份可直接用于生产环境的PHP SM4国密加密算法集成实战指南。文章详细解析了SM4算法核心,对比了ECB与CBC工作模式,并给出了包含完整代码、密钥管理、数据填充及性能优化的解决方案,帮助开发者快速、安全地在PHP项目中集成国密加密算法。

2a4s6d8f0g的博客 342

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

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

王义凯 的博客 5551

ArcGIS中地理坐标系与投影坐标系以及投影转换

简单介绍arcgis软件中坐标系定义、设置和常见问题。

weixin_41399650的博客 8万+

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

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

weixin_44445168的博客 5971

COCO数据集缺失文件补全方法

本文代码是以目标检测(object detection)和实例分割(instance segmentation)任务的标签文件为例,即文件。其他任务的标签文件内容略有不同,但是图片来源表示字段完全相同,因此代码可通用。另外如果是非2017版本COCO应该也通用。msgspec是一个高性能的序列化和验证库,支持 JSON、MessagePack、YAML 和 TOML 等多种格式。高性能:在常见协议的编码/解码中表现出色,通常比其他库快10-80倍。零成本的模式验证。

qq_46396470的博客 1995

编译CycloneDDS和CycloneDDS-CXX踩过的坑——CMake Error at CMakeLists.txt:227 (find_package):

最近编译CycloneDDS和CycloneDDS-CXX踩了两个坑,花了不少时间。做个简单的记录,免得以后又踩到。注意:CycloneDDS-CXX编译依赖CycloneDDS,因此必须先编译CycloneDDS需要严格按照步骤进行,否则要入坑步骤如下,1先编译CycloneDDS以上步骤完成CycloneDDS的编译和安装,生成的bin include lib等位于install目录下面。

usstmiracle的博客 1900

Gremlin+neo4j(完整实例)

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

Timmer的博客 2728

iPhone用户必看:TrollStore巨魔商店在线安装保姆级教程(iOS 14-16.6.1适用)

本文为iOS 14至16.6.1系统的iPhone用户提供了一份详细的TrollStore(巨魔商店)在线安装教程。文章从核心原理、安装前准备讲起,逐步详解了通过Safari浏览器获取安装器、信任企业证书、部署TrollStore及关键后置配置的全过程,并附带了常见问题排错指南,帮助用户安全、高效地实现无需越狱安装第三方应用。

h0i1j2k3l的博客 1998

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

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

大数据星球-浪尖 2148

第1课:开篇扫盲——OpenClaw是什么?能帮你解决什么问题?(入门必看)

核心目标:学会安装、卸载、管理OpenClaw技能,自定义AI代理的性格与权限,让AI贴合自己的使用习惯。核心内容技能市场详解:ClawHub市场核心技能分类(办公、学习、开发、生活),热门技能推荐(web-search、文件处理、邮件管理)[superscript:3][superscript:4]。技能安装与卸载:终端命令实操(openclaw skill install/uninstall),技能更新与版本管理[superscript:3]。

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 1758

AgentScope 实战训练营-构建元规划智能体(Meta Planner Agent)—— 从 0 到 1 完整实现

本文介绍了基于AgentScope框架开发的元规划智能体(Meta Planner Agent)系统。该系统通过任务拆解和子代理编排机制,实现复杂任务的自动化处理。核心架构分为用户层、规划器层和子代理层,其中规划器作为"项目经理"负责任务分解、创建子代理并协调执行流程。关键技术包括AgentScope多智能体框架、DashScope大语言模型、PlanNotebook计划管理工具等。

program哲学 359

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

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

u011250186的博客 1436

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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

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

JavaEdge全是干货的技术号 1508

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Neo4j实现表字段级血缘关系

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

PANDA博客 2303

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

利用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、付费专栏及课程。

余额充值