案例分享:数据集市搭建方案中集成SQLFlow数据血缘分析工具

本文中描述的数据集市搭建方案是一家跨国公司在AWS平台上的具体实践案例。我公司参与其中的数据血缘部分的建设,SQLFlow数据血缘分析工具在该方案中帮助用户实现了数据血缘分析。

用户使用Redshift 数据库仓库进行数据集市开发。从各种数据源提取数据,并将数据存储到AWS S3中,通过将S3中的数据映射到Redshift Spectrum实现对大规模数据的高效查询,然后根据设计好的数据集市数据模型,将S3中的数据进行各种数据转换和审查,最终将处理结果数据存储到Redshift数据集市库中,经过测试后数据集市上线运维。从数据准备到数据集市上线的整个开发流程如下图所示:
在这里插入图片描述
数据集市开发过程中涉及到多个环节,其中一些环节会产生数据血缘关系。数据血缘关系是指数据从源头到目的地的整个流转过程,包括数据的来源、经过的转换、以及最终存储的位置。在 AWS 平台上,特别是使用 Redshift 数据库进行数据集市开发时,理解和管理数据血缘关系对于确保数据质量、进行数据治理以及优化数据处理流程至关重要。

产生数据血缘关系的环节:

1、数据提取:从各种数据源提取数据到 S3 时,会产生数据的初步血缘关系,记录了数据从源系统到 S3 的移动。

2、S3 到 Redshift Spectrum 的映射:将 S3 中的数据映射为 Redshift Spectrum 的外部表时,进一步定义了数据从 S3 到 Redshift 的流转路径。

3、数据转换:在数据转换过程中,原始数据会经过一系列的转换操作,生成新的数据集。这一过程中产生的血缘关系记录了数据如何被转换以及转换的逻辑。

4、数据加载:将转换后的数据加载到 Redshift 的持久化表中,这一步骤也会产生数据血缘关系,记录了数据从临时表到持久化表的移动。

数据血缘分析方案设计:

1、采用SQLFlow的私有化部署版本作为数据血缘分析工具,通过REST API做系统集成。

2、定义血缘关系模型:首先需要定义一个数据血缘关系模型,明确记录数据源、转换步骤、目标表以及每个步骤的依赖关系。 模型定义时可以参考SQLFlow的dataflow对象,该对象定义了元数据和数据血缘关系包含的所有信息。

3、血缘数据的收集:在数据处理的每个环节,通过日志、元数据管理工具或编程方式收集数据血缘信息。由于用户整个数据集市的开发都是围绕Redshift数仓展开的,所以分析Redshift日志中的sql可以覆盖所有数据血缘产生环节。另外为了保证血缘分析的准确性,还需要提取Redshift的metadata辅助分析。

4、血缘关系的存储与管理:设计一个中心化的血缘关系数据库或使用现有的数据目录服务来存储和管理血缘信息。用户将数据血缘存储到了Redshift库中,并上传到数据资产管理系统Alation进行管理。

数据血缘分析实施步骤:

1、集成血缘收集

a) 安装SQLFlow私有化部署regular版本。

b) 使用sqlflow-ingester的submitter工具,每天定时自动执行一次增量的SQLFlow数据血缘分析。submitter会拉取最近30天的Redshift日志,并将日志文件中的sql提取出来存为后缀为sql的文本文件,同时submitter还会连接Redshift数据库将完整的元数据提取出来存为metadata.json, 最后submitter将提取到的sql文件和metadata.json压缩成一个zip包,递交给SQLFlow做数据血缘分析。整个过程由submitter自动完成,无需人工干预。

2、血缘数据存储

编写Python脚本,每天凌晨定时执行,在脚本内调用SQLFlow的REST API查询数据血缘分析结果,并将血缘数据转成用户的数据血缘关系格式,存入Redshift数据库。同时上传到Alation数据资产管理平台。

3、实现血缘查询与分析功能

通过集成SQLFLow的widget前端组件可以实现数据血缘可视化。用户的数据资产管理是通过Alation实现,数据分析是通过商业智能BI软件Qlik Sense实现。在这两个系统中,点击要查询的表、视图或者字段可以链接到一个widget生成页面查看数据血缘。

用户用到的数据血缘分析功能主要有:

a) to left most 当前表/视图/字段的数据最初来自哪些表/视图/字段。

b) up stream 当前表/视图/字段的数据来自哪些表/视图/字段。

c) down stream 当这个表/视图/字段的数据发生变动时,会影响哪些表/视图/字段。

d) outgoing 用户在做报表查询时,会用到一些表或视图。需要通过分析SQL语句,列出这些给报表提供数据的表,并回溯到给这些表提供数据的数据集市表,通过数据集市表,可以继续回溯到更早的源系统。

4.血缘信息的维护与更新

确保数据处理流程中的变更能够及时反映到血缘信息中,定期审核和更新血缘数据库,保持数据血缘信息的准确性和时效性。 编写Python脚本,每日凌晨定时执行,脚本中会对数据的合法性进行校验,校验结果会自动发邮件到用户运维人员电子邮箱。

实施后的系统拓扑图如下所示:
在这里插入图片描述
通过上述设计方案和实施步骤,可以有效地管理和分析数据集市开发过程中产生的数据血缘关系,从而提高数据质量,优化数据处理流程,并支持数据治理和合规性要求。

更多文章请关注微信公众号:凤鸣古都

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

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

相关文章

动态代理(通俗易懂)

程序为什么需要代理?代理长什么样? 例子 梳理 代理对象(接口):要包含被代理的对象的方法 ---Star 被代理对象:要实现代理对象(接口) ---SuperStar 代理工具类:创建一个代理,返回值用代理对象&#xff0c…

初次使用GitHub教程入门

注册一个github账户 访问地址:https://github.com/,点击右上角sign up,录入以下信息,邮箱,密码,账号,会有邮箱验证,跟着步骤来就好了 配置 本机上设置你的github的邮箱和用户名 …

51-5 权限维持2 - 影子账号(隐藏用户)

权限维持技术 权限维持技术(Persistence,也称为权限持久化)是一种能够在系统重启、用户更改密码或其他可能导致访问中断的情况下保持对系统访问的技术。例如,它包括创建系统服务、利用计划任务、修改系统启动项或注册表、以及映像劫持等方法。 创建影子账户 影子账户是指隐…

【管理咨询宝藏139】某大型快消集团公司多渠道销售管理体系方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏139】某大型快消集团公司多渠道销售管理体系方案 【格式】PDF版本 【关键词】罗兰贝格、营销咨询、战略规划 【核心观点】 - 销售体系建设主要需…

谷粒商城学习-06-使用vagrant快速创建linux虚拟机

这一节的内容是在Windows上安装虚拟机。 为什么要按照虚拟机呢? 原因是很多软件只能在Linux下运行,有的虽然也可以在Windows上运行,但从安装到运行会遇到很多问题,为这些解决这些问题花时间对于大多数人特别是初学者是没有什么价…

数字人直播源码开发全攻略揭秘:如何搭建自己的数字人直播平台?

当前,数字人直播逐渐成为众多中小型企业线上带货和品牌宣传的不二之选,而艾媒研究数据也显示,超五成以上的被调查群体的企业使用过虚拟人技术,超三成被调查群体的企业计划使用虚拟人技术。在此背景下,越来越多的创业者…

android应用的持续构建CI(一)-- 总体设计

一、背景 接下里我希望通过一系列的文章,把android应用的构建梳理一遍,从总体设计到逐个环节的实现。 总体设计jenkins集成手动签名依赖环境应用管理 二、构建流程图 三、技术组件 jenkinsjdkgradle360加固 既然是android应用的持续构建&#xff0c…

Web3 开发者入门手册:技能、工具和职业前景

原文:https://remote3.co/blog-post/how-to-become-a-web3-developer 作者:Paul Anderson 编译:TinTinLand Web3 是 2024 年科技领域最受瞩目的话题之一——Web3 令人激动的实用潜力可以跨越多个行业,早期采用者更有机会在未来…

亚马逊云服务器的价格真的那么贵吗?一年要花多少钱?

亚马逊Web服务(AWS)作为全球领先的云计算平台,其定价策略常常引起用户的关注。很多人可能会问:"AWS真的那么贵吗?"实际上,这个问题的答案并不是简单的"是"或"否"&#xff0c…

【大数据综合试验区1008】揭秘企业数字化转型:大数据试验区政策数据集大公开!

今天给大家分享的是国内顶级期刊中国工业经济2023年发布的最新期刊《政策赋能、数字生态与企业数字化转型——基于国家大数据综合试验区的准自然实验》文章中所使用到的数据集——国家大数据综合试验区政策数据集以及工具变量数据,该文章基于2009-2019年中国上市企业…

花键参数确定的流程是怎么样的?

继续花键的话题,今天跟小伙伴们一同学习一下:渐开线花键的参数确定的一般流程及基本方法。 前面有好几篇介绍了花键的基本参数的概念,包括规格、模数、齿数、压力角等等。以及花键的定心方式,内外花键的配合方式。那么这些参数的…

ARM架构 AArch64 基础知识介绍

介绍 aarch64是 ARM 架构的 64 位版本,它是 ARMv8 架构的一部分,被设计用来提供更高的性能和更大的地址空间,同时保持与 32 位 ARM 架构的兼容性。AArch64 是 ARMv8 的 64 位指令集架构(ISA),它提供了丰富的…

2023 最新版IntelliJ IDEA 2023.1创建Java Web前(vue3)后端(spring-boot3)分离 项目详细步骤(图文详解)

文章目录 🚩 接上篇🏳‍🌈 项目构建所需的相关工具JavaIDEAmavenNodeJSVueVisual Studio Code 🌌 后端项目创建详细步骤🛫 1、开始创建新项目🛫 2、输入项目名称、选择项目存储位置、项目管理工具&#xff…

昇思25天学习打卡营第4天|yulang

今天主要了解了数据集 Dataset,主要包含了:数据集加载、数据集迭代、数据集常用操作、 可随机访问数据集、可迭代数据集、生成器。对于生成器很好理解,用代码来造数据,可以动态地生成数据。主要作用数据集通常被用于训练模型

tampermonkey插件下载国家标准文件

#创作灵感# 最近在一个系统招标正文中看到了一些国家标准,想要把文章下载下来,方便查阅,但是“国家标准全文公开系统”网站只提供了在线预览功能,没有提供下载功能,但是公司又需要文件,在网上找了一些办法&…

gin项目部署到服务器并后台启动

文章目录 一、安装go语言环境的方式1.下载go安装包,解压,配置环境变量2.压缩项目上传到服务器并解压3.来到项目的根目录3.开放端口,运行项目 二、打包的方式1.在项目的根目录下输入以下命令2.把打包好的文件上传到服务器3.部署网站4.ssl证书 …

C++字体库开发之字体回退三

代码片段 class FontCoverage { public: using SP std::shared_ptr<FontCoverage>; virtual ~FontCoverage() default; virtual void set(int index, FontTypes::CoverageLevel level) 0; virtual FontTypes::Coverag…

004 线程的状态

文章目录 Java线程可能的状态&#xff1a; 状态名称说明NEW初始状态&#xff0c;线程被构建&#xff0c;但是还没有调用start()方法RUNNABLE运行状态&#xff0c;Java线程将操作系统中的就绪和运行两种状态笼统地称作"运行中"BLOCKED阻塞状态&#xff0c;表示线程阻…

职场办公受欢迎的电脑桌面便签,手机电脑同步的备忘录

在快节奏的职场生活中&#xff0c;有效的时间管理和信息记录变得尤为重要。为了帮助大家更好地应对工作挑战&#xff0c;好用的电脑桌面便签和手机电脑同步的备忘录&#xff0c;好用便签应运而生&#xff0c;成为了当前职场办公中的得力助手。 好用便签是一款备受青睐的电脑桌…

阿里云物联网应用层开发:第三部分,微信小程序和web客户端实现

文章目录 哔哩哔哩视频教程1、阿里云物联网平台对接微信小程序2、阿里云物联网平台对接web客户端2-1MQTT服务器编写2-2 web端Servlet部分编写备注哔哩哔哩视频教程 【阿里云物联网综合开发,STM32+ESP8266+微信小程序+web客户端一篇教程详细讲解】 https://www.bilibili.com/v…