首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏大数据开发-王金绍

    跨脚本步骤 复杂 SQL血缘识别

    血缘抽取目标强依赖关系:识别sql执行结果保存[hive,mysql,hdfs]物理库表字段依赖链路,入库字段由哪些物理库表字段产生[select]。 血缘抽取对象公司内部POC脚本, 层级结构 { sciptMeta: 脚本基础信息 jobs: {//任务列表 jobid: [ //领域任务集合 E:{ stepMeta: //基础数据抽取步骤信息 sql: //执行sql }, 血缘抽取技术方法Antlr4: 抽取SQL语法结构,通过visitor 遍历出SQL树递归收敛:抽取模型通过递归最后收敛到 QueryDefault(sql依赖关系主体)与 TableName (表与字段信息主体 对象模型SQL树对象模型图片血缘实体模型图片六. 抽取效果效果HDFS.parquet.

    44160编辑于 2022-12-16
  • 来自专栏MySQL技术

    马哈鱼带你发现SQL中的数据血缘

    那么到底什么是数据的血缘关系 (data lineage) 呢? 维基百科上的定义是:数据从哪里来,往哪里去,中间发生了哪些变化。 马哈鱼数据血缘分析器通过分析 SQL 脚本,给出完整的数据血缘关系。 拥有自主研发的通用 SQL 解析器的强大 SQL 处理能力,马哈鱼是你分析 SQL 数据血缘的首选。 二、马哈鱼数据血缘分析器是怎样工作的 本视频介绍如何利用马哈鱼数据血缘分析器来快速发现 create view SQL 语句中各个表和字段的血缘关系,并用可视化的方式展现出来。 五、马哈鱼数据血缘分析器的组成 Backend, 后台由一系列 Java 程序组成。负责 SQL 的解析、数据血缘分析、可视化元素的布局、身份认证等。 负责 SQL 的递交、数据血缘关系的可视化展示。 Grabit 工具, 一个 Java 程序。负责从数据库、版本控制系统、文件系统中收集 SQL 脚本,递交给后台进行数据血缘分析。

    3.2K20发布于 2021-09-17
  • 来自专栏实时流式计算

    数据血缘系列(10)—— 数据血缘3种实体之数据库血缘、数据表血缘和数据字段血缘

    它主要涉及数据库血缘、数据表血缘和数据字段血缘三种实体。本文将深入探讨这三种实体的定义及其在数据治理中的作用,并结合具体实践原则进行阐述。 将数据血缘分为数据库血缘、数据表血缘和数据字段血缘三类,可以提供不同层次的精细化管理:数据库血缘帮助理解数据在全局系统间的流动路径,确保数据传输的透明性;数据表血缘关注数据在表级别的传输过程,确保表与表之间的数据准确性和一致性 数据库血缘、数据表血缘和数据字段血缘三者在数据流动和管理中紧密联系,但各有侧重。 数据库血缘、数据表血缘和数据字段血缘三者在数据血缘分析中各司其职,共同保障了数据的透明性、准确性和合规性。 这样,数据血缘三个实体,数据库血缘、数据表血缘、字段血缘已经了解了,下一章我们继续了解数据血缘的几种类型:逻辑血缘、物理血缘、时间血缘、操作血缘、业务血缘。 我们下一章再见!

    1.2K10编辑于 2024-07-31
  • 来自专栏实时计算

    【开源项目推荐】通用SQL数据血缘分析工具——Sqllineage

    SQLLineage 是一个使用 Python 开发的 SQL 血缘分析工具。它专注于提供 SQL 查询的血缘关系和依赖关系的深入分析。 一、概述 简单来说SQLLineage 是一SQL血缘分析工具,而由于SQL在数据分析中的通用性,SQLLineage 是一数据血缘分析工具。 而SQLLineage可以通过多SQL的分析来快速的了解血缘的来龙去脉,所以说是一个数据血缘的分析神器。 我们假设有这样的一个SQL。 通过SQLLineage可以快速的分析出表级别的血缘。 详细血缘结果: 提供详细的血缘分析结果,每个 SQL 语句的血缘信息都可以显示出来。 方言意识: 支持不同的 SQL 方言,以适应不同的关键词和语法。 列级血缘 可以分析列级血缘,比如下面的sql

    6.3K21编辑于 2023-12-06
  • 来自专栏实时计算

    【开源项目推荐】通用SQL数据血缘分析工具——Sqllineage

    SQLLineage 是一个使用 Python 开发的 SQL 血缘分析工具。它专注于提供 SQL 查询的血缘关系和依赖关系的深入分析。 一、概述 简单来说SQLLineage 是一SQL血缘分析工具,而由于SQL在数据分析中的通用性,SQLLineage 是一数据血缘分析工具。 而SQLLineage可以通过多SQL的分析来快速的了解血缘的来龙去脉,所以说是一个数据血缘的分析神器。 我们假设有这样的一个SQL。 通过SQLLineage可以快速的分析出表级别的血缘。 详细血缘结果: 提供详细的血缘分析结果,每个 SQL 语句的血缘信息都可以显示出来。 方言意识: 支持不同的 SQL 方言,以适应不同的关键词和语法。 列级血缘 可以分析列级血缘,比如下面的sql

    1.9K20编辑于 2023-12-06
  • 来自专栏实时计算

    【开源项目推荐】通用SQL数据血缘分析工具——Sqllineage

    SQLLineage 是一个使用 Python 开发的 SQL 血缘分析工具。它专注于提供 SQL 查询的血缘关系和依赖关系的深入分析。 一、概述 简单来说SQLLineage 是一SQL血缘分析工具,而由于SQL在数据分析中的通用性,SQLLineage 是一数据血缘分析工具。 而SQLLineage可以通过多SQL的分析来快速的了解血缘的来龙去脉,所以说是一个数据血缘的分析神器。 我们假设有这样的一个SQL。 通过SQLLineage可以快速的分析出表级别的血缘。 详细血缘结果: 提供详细的血缘分析结果,每个 SQL 语句的血缘信息都可以显示出来。 方言意识: 支持不同的 SQL 方言,以适应不同的关键词和语法。 列级血缘 可以分析列级血缘,比如下面的sql

    1.1K10编辑于 2023-12-06
  • 来自专栏vivo互联网技术

    Spark SQL 字段血缘在 vivo 互联网的实践

    作者:vivo互联网服务器团队-Hao Guangshi 一、背景 字段血缘是在表处理的过程中将字段的处理过程保留下来。为什么会需要字段血缘呢? 有了字段间的血缘关系,便可以知道数据的来源去处,以及字段之间的转换关系,这样对数据的质量,治理有很大的帮助。 平台计划将 Hive 任务迁移到 Spark SQL 上,同时也需要实现字段血缘的功能。 我们将字段血缘分为两种类型:projection(select查询字段)、predication(wehre查询条件)。 这两种是一种点对点的关系,即从原始表的字段生成目标表的字段的对应关系。 的字段血缘实现中,我们通过其自扩展,首先拿到了 insert 语句,在我们自己的检查规则中拿到 SQL 语句,通过SparkSqlParser、Analyzer、Optimizer、SparkPlanner

    1.7K20编辑于 2022-04-25
  • 来自专栏实时流式计算

    数据血缘系列(6)—— 数据血缘与主数据

    在当今数据驱动的商业环境中,数据治理成为企业成功的关键因素之一,而数据血缘正是数据治理成功的一个关键。 本文我们详细探讨下数据血缘与主数据有什么关系?他们之间又是如何配合实现数据治理的。 主数据与数据血缘 数据血缘是指数据在不同系统和过程中的流转和变更历史。了解主数据的数据血缘对于确保数据的质量和一致性具有重要意义。数据血缘的特征包括来源追溯、变更历史、影响分析和透明性与可追溯性。 数据血缘在主数据管理中的应用主要体现在数据质量管理、数据治理、合规性和审计以及业务决策支持等方面。通过数据血缘,可以识别和修正主数据中的错误和不一致,提高数据质量。 数据血缘为主数据的治理提供了基础,帮助制定和执行数据治理政策。合规性和审计方面,数据血缘记录了主数据的变更历史,有助于合规审计,确保数据管理符合相关法规和标准。 下一章我们继续来了解数据血缘与业务数据之间的联系。 我们下一章再见!

    74510编辑于 2024-07-18
  • 来自专栏韩锋频道

    ”数据血缘“入门

    什么是数据血缘? 数据的产生、加工融合、流转流通,到最终消亡,数据之间自然会形成一种关系。借鉴人类社会中类似的一种关系来表达数据之间的这种关系,称之为数据的血缘关系。数据血缘是元数据的组成部分之一。 它分析表和字段从数据源到当前表的血缘路径,以及血缘字段之间存在的关系是否满足,关注的数据一致性以及表设计的合理性。 可追溯性 数据的血缘关系,体现了数据的生命周期,体现了数据从产生到消亡的整个过程,具备可追溯性。 层次性 数据的血缘关系是有层次的。 其具体做法就是解析SQL语句、存储过程、ETL过程等文件。因为复杂代码和应用环境等原因,根据国际厂商的经验,自动解析可以覆盖到企业数据的70-95%,目前无法做到100%。 数据血缘分析 即数据“前向”血缘。通过指定表/字段,来追溯其前向多级对象。 数据影响分析 即数据“后向”血缘。通过指定表/字段,来关联其后向多级对象。

    11.6K51发布于 2019-06-06
  • 来自专栏捞月亮的小北

    9. 动态SQL

    Mybaits 框架的动态 SQL 技术是一种根据特定条件动态拼接 SQL 语句的功能 , 它存在的意义是为了解决拼接 SQL 语句字符串时的痛点问题 ‍ Mybatis 中动态 SQL 怎么理解? 同时,也需要注意 SQL 注入和动态 SQL 的维护难度问题。 SQL 片段的作用是将常用的 SQL 语句封装成一个可重用的组件,方便在多个地方使用。 Mybatis 中的 SQL 片段有两种类型: 动态 SQL 片段:根据不同的条件生成不同的 SQL 语句。 6.2 SQL 片段的作用 ‍ SQL 片段(SQL Fragments)是 Mybatis 中一个重要的功能,它的作用是将一段 SQL 片段用 <sql>​ 元素封装,并在需要的地方通过 <include 减小 SQL 的维护难度:将一段 SQL 代码封装成 SQL 片段,可以方便维护和修改,避免了对 SQL 语句的重复修改和维护。

    49210编辑于 2023-12-01
  • 来自专栏实时流式计算

    数据血缘系列(5)—— 数据血缘与元数据

    在当今数据驱动的商业环境中,数据治理成为企业成功的关键因素之一,而数据血缘正是数据治理成功的一个关键。 本文我们详细探讨下数据血缘与元数据有什么关系?他们之间又是如何配合实现数据治理的。 本文为《数据血缘分析原理与实践 》一书读书笔记,部分观点参考自书中原文,如需更详细的了解学习,请大家支持原作者的辛苦付出。 元数据和数据血缘的联系 数据血缘(Data Lineage)是指数据从其来源到最终目的地的生命周期中所有变更的跟踪和记录。数据血缘包括数据的来源、流向、变换规则和依赖关系等。 在数据治理中,元数据和数据血缘紧密相关。元数据记录了数据的来源和目标,使数据血缘分析能够准确地追踪数据的流动路径。 通过元数据和数据血缘的结合,企业可以更好地理解和管理其数据资产,提升数据的价值和利用水平。元数据和数据血缘在数据治理中具有不可替代的重要作用。

    1K10编辑于 2024-07-16
  • 来自专栏生信修炼手册

    IBD血缘同源简介

    IBD全称Identity By Descent, 又叫做血缘同源,指的是两个个体中共有的等位基因来源于共同祖先;IBS全称Identity By State, 又叫做状态同源,指的是两个个体中共有的等位基因序列相同

    5.7K20发布于 2019-12-19
  • 9SQL优化技巧

    大多数的接口性能问题,很多情况下都是SQL问题,在工作中,我们也会定期对慢SQL进行优化,以提高接口性能。这里总结一下常见的优化方向和策略。 避免使用select *,减少查询字段不要为了图省事,直接查询全部的字段,尽量查需要的字段,特别是复杂的SQL,能够避免很多不走索引的情况。这也是最基本的方法。 避免使用左模糊查询在工作中,对于姓名、手机号、名称等内容,经常会遇到模糊查询的场景,但是要尽量避免左模糊,这种SQL无法使用索引。 join的优化JOIN 是 SQL 查询中的一个操作,用于将两个或多个表连接在一起。JOIN 操作有几种类型,包括 LEFT JOIN、RIGHT JOIN 和 INNER JOIN。 我们日常使用较多的分页一般是用的PageHelper插件,SQL如下:sql复制代码select id,name from table_name where N个条件 limit 100000,10;它的执行流程

    1.2K10编辑于 2024-05-21
  • 来自专栏HUMAN3.0

    特征血缘不是数据血缘:厘清两个容易混淆的概念

    不是没投入,数据血缘平台花了大半年建起来,ETL 任务的上下游关系梳理得很清楚。问题出在哪?血缘的类型没分清。 先把"血缘"这件事说清楚 血缘本质是什么? 关键在于,不同的对象需要不同的血缘体系。就像家族血缘追人与人,股权血缘追公司与股东,虽然都叫"血缘",但节点和边完全不同。 数据领域也一样。当你说"血缘"时,得先问清:在追溯什么对象? 三种血缘,各管各的事 数据血缘:表到表、字段到字段 关注对象:表(分区、文件)、字段、作业(SQL、Spark、Flink 任务)。 回答的问题: user_profile_daily 的上游是谁? **第三,**特征逻辑常在代码里,不是纯 SQL。 很多特征是 Python、Scala 写的 UDF 或 DataFrame 操作,数据血缘工具解析 SQL 的能力再强,也抓不到这些黑盒逻辑的关键语义。

    11810编辑于 2026-02-27
  • 来自专栏实时计算

    聊聊Hive数据血缘——从Atlas没有列级血缘的Bug讲起

    前几天,Datahub提供了最新的字段级别数据血缘功能,很多朋友迫不及待想对比一下Datahub的字段级血缘与Atlas的区别。 这个时候问题来了,在Atlas收集Hive血缘的时候,由于部分版本问题,没有显示出字段级的数据血缘。这是为什么呢?其实只要做一个简单的修复就可以了,但是知其然也要知其所以然。 正文开始: 通过本文档,可以快速的解决Hive在Altas字段级血缘没有生成的问题,并了解Hive数据血缘实现原理。更多元数据管理,数据血缘相关文章,可以关注后续的文章更新。 如果Hive通过MapReduce作为计算引擎为例,具体处理流程如下: HQL解析生成AST语法树 Antlr定义SQL的语法规则,完成SQL词法和语法解析,将SQL转化为抽象语法树AST Tree 语法分析得到 四、Hive表数据血缘实现 表的实现就比较简单了。

    2.4K10编辑于 2022-11-23
  • 来自专栏一个爱吃西瓜的程序员

    学习SQL9】-集合与联结

    现在我们开始学习使用2张以上的表的SQL语句。通过以行方向为单位的集合运算符和以列方向为单位的联结,就可以将分散在多张表中的数据组合成期望的结果。 SQL中的联结有很多种,我们主要学习内联结和外联结两种。 内联结—INNER JOIN 内联结(INNER JOIN)是运用最广泛的联结运算。 SP.shop_name, SP.product_id, P.product_name FROM ShopProduct AS SP CROSS JOIN Product AS P; 上述的SQL

    1.5K120发布于 2018-04-04
  • 来自专栏用户6296428的专栏

    Spark App 血缘解析方案

    目前已经基于ANTLR 语法解析支持了 SQL 任务的血缘解析,而 Spark App 任务的血缘仍然是通过人工配置方式进行。我们希望能够将 Spark App 任务的解析做个补充,完善血缘逻辑。 通过--conf "spark.sql.queryExecutionListeners=za.co.absa.spline.harvester.listener.SplineQueryExecutionListener SparkLineageInitializer.enableLineageTracking(session); python demo from pyspark.sql import SparkSession from pyspark.sql import functions as F spark = SparkSession.builder \ .appName("spline_app" { "id": "attr-13", "dataType": "75fe27b9-9a00-5c7d-966f-33ba32333133",

    3K30编辑于 2022-12-12
  • 来自专栏机器学习/数据可视化

    SQL进阶-9-谓词exists使用

    SQL进阶-9-EXISTS谓词的使用 支撑SQL和关系数据库的两个重要理论基础: 数学领域的集合论 现代逻辑学标准体系的谓词逻辑(predicate logic) 本文中重点介绍的是谓词exists的用法 SQL实现 假设所有人都参加了全部的会议,生成了一个集合,再用该集合减去现有的数据即可。 ,col10); -- 查询至少存在一个9的行记录:any select * from Tablename where 9 = any (col1, col2, col3,... ,col10); -- where 9 in (col1, col2, col3,... ,col10) is null; 小结 SQL谓词指的是返回值为真值的函数 EXISTS与其他谓词不同,接受的参数是集合;可以看做是一种高阶函数 SQL中没有实现全称量词相当的谓词,但是可以通过not

    1.4K20发布于 2021-03-01
  • 来自专栏实时计算

    前瞻|Amundsen的数据血缘功能

    目前,Amundsen并不支持表级别和列级别的数据血缘功能,也没有办法展示数据的来龙去脉。 作为Amundsen一项非常核心的功能,Lineage功能早已经提上日程,并进入设计与研发阶段。

    1.8K20发布于 2021-03-29
  • 来自专栏数据STUDIO

    要避免的 9SQL 错误

    下面对不该做的事进行逆向分析,指导你写出清晰、优化、强大的 SQL 语句: 1、避免不明确的列命名: Don’t CREATE TABLE table1 (id int , name varchar(50 7.不要忽视错误处理: Don’t (No error handling) Do BEGIN TRY -- Your SQL statement here -- END TRY BEGIN CATCH 9.不要忽略评论和文档: Don’t (No comments or documentation) Do -- This query retrieves all active customers with

    63010编辑于 2024-06-04
领券