精华内容
下载资源
问答
  • ‍‍正文开始一、介绍数据资产治理(详情见:数据资产,赞之治理)的前提要有数据。它要求数据类型全、量大,并尽可能多地覆盖数据流转的各个环节。元数据采集就变得尤其重要,它是数据资产治理的核心底...


    正文开始

    一、介绍

    数据资产治理(详情见:数据资产,赞之治理)的前提要有数据。它要求数据类型全、量大,并尽可能多地覆盖数据流转的各个环节。元数据采集就变得尤其重要,它是数据资产治理的核心底座。

    在早期的采集系统,我们主要面向数仓,通过“API直连方式”采集Hive/Mysql表的元数据。随着业务的快速发展,数据运营、成本治理的需求越来越强烈。元数据需要覆盖到数据全链路,包括离线计算平台、实时计算平台、内部工具,任务元数据等。采集元数据的过程中,我们遇到以下困难:

    • 数据类别多

      需要采集组件的基础元数据、趋势数据、资源数据、任务数据和血缘数据。

    • 平台组件多

      大数据平台组件:Hive/Hbase/Kafka/Druid/Flume/Flink/Presto,内部工具:BI报表系统/指标库/OneService等。

    • 采集周期长

      接入新的数据类型周期长,需要经过需求评审、开发、测试、联调、数据核对、上线。

    • 接入效率低,采集稳定性

      接入每种数据类型需要和业务方对接,效率不高,采集过程出现异常中断,不能及时感知到。

    本文主要从元数据的含义、提取、采集、监控告警几个方面,介绍我们做的一些事情。

    二、元数据

    2.1 什么是元数据

    什么是元数据?元数据是“用来描述数据的数据”。举个例子:我拿手机拍摄了一张照片,查看照片的详情,如下所示信息:

    照片信息
    文件名:IMG_20201217_114115
    时间:2020年12月17号 11:30:01
    分辨率:4608X2592
    文件大小:2.69MB
    相机制造商:OnePlus
    相机型号:ONEPLUS A5000
    闪光灯:未使用闪光灯
    焦距:4.10mm
    白平衡:自动
    光圈:f/1.7
    曝光时间:1/50
    ISO:1250

    这些就是数码照片的元数据,用来描述一张图片。在资产治理平台中,我们采集Hive组件的元数据包含:表名称、字段列表、责任人、任务调度信息等。

    收集全链路的数据(各类元数据),可以帮助数据平台回答:我们有哪些数据?有多少人在使用?数据存储是多少?如何查找这些数据?数据的流转是怎么样的?结合血缘关系进行问题溯源和影响分析。

    2.2 采集了哪些元数据

    如下图所示,是一张数据的流转图,我们主要采集了各个平台组件的:

    • 基础元数据

      表名称、备注、字段列表、责任人、业务域、表所在集群、项目等信息。

    • 趋势数据

      表的大小、行数、文件数、分区数、任务调度时长、产出时间等信息。

    • 资源数据

      集群的吞吐量、QPS、调度任务消耗Cpu、内存大小等信息。

    • 血缘数据

      表/字段级别的上下游依赖关系、任务的输入输出表依赖关系。

    • 任务数据

      离线/实时计算任务的名称、责任人、deadline告警时间、脚本、任务配置等信息。

    截至目前为止,采集到的平台组件覆盖了整个数据的链路。覆盖数据类型10种+,基础元数据的数量10w+。主要包括:

    • 离线平台组件

      Hive/Mysql。

    • 实时平台

      Flume/Kafka/Hbase/Kylin/Es/Presto/Spark/Flink等。

    • 内部工具

      BI报表系统、指标库系统、OneService、测试QA系统。

    三、元数据提取

    如何从众多平台组件提取元数据呢?大致有这几个方面:

    • 访问Metastore获取基础元数据

      一般的平台组件会把元数据存储在Mysql等关系型数据库中,通过访问Metastore获取基础的元数据。

    • 获取组件集群资源数据

      平台组件本身会提供Metrics和Alarm的监控服务,定期请求服务,把数据流入到Hbase/Opentsdb等存储。通过访问存储并对指标数据进行汇总统计,获取集群或任务的资源数据。

    • 获取平台组件业务指标

      数据中台内部有各种平台,比如KP(Kafka基础平台)、RP(Flink实时计算平台)、RDS(详情见:管理Mysql的工具平台)、DP(详情见:数据研发平台)。通过这些平台自身提供的服务获取基础元数据、业务监控指标、集群QPS、吞吐量等数据。

    • 获取血缘数据

      用户在DP平台、RP平台上开发计算任务,我们可以及时的获取发布的任务列表、任务的配置信息、SQL脚本等信息。

    1. 计算任务

      通过解析任务的输入/输出依赖配置,获取血缘关系。

    2. SQL类型任务

      通过“Sql Parser”(使用ANTLR4系统实现的sql改写工具)工具解析SQL脚本获取表/字段级别的血缘关系。

    3.1 离线平台

    主要是采集Hive/RDS表的元数据。

    Hive组件的元数据存储在Metastore,通过JDBC的方式访问Mysql获取库表的元数据。根据Hive表信息组装成HDFS地址,通过FileSystem API获取文件的状态、文件数、文件大小、数据更新时间等趋势数据。

    RDS平台提供了对Mysql服务的管理,通过平台提供的服务接口获取表的元数据、趋势数据、访问情况等信息。

    3.2 实时平台

    主要是Flume/Hbase/Kafka等组件的元数据。

    举个例子:我们通过访问KP平台落盘的工单数据,获取topic的基础元数据信息,定时消费topic获取抽样数据,解析出字段列表。平台本身提供集群状态和业务监控指标,通过平台服务获取集群资源的使用情况。

    3.3 内部工具

    主要是BI报表系统(一张BI报表查询的Hive表、Mysql表关系)、指标库(指标关联的Hive表和字段关系)、OneService服务(接口访问哪些库表的关系数据)的血缘数据。

    这些内部系统在产品不断迭代中积累了很多元数据。在不考虑元数据时效性的情况下,我们一般同步这些系统的数据到Hive库,经过离线处理得到元数据。

    3.4 任务元数据

    元数据任务主要是DP离线任务、Flink计算服务、Flume任务。

    这些计算任务都有落盘,通过Binlog同步或离线同步的方式获取任务列表,得到任务的元数据。

    四、数据采集

    经过元数据提取,我们可以获取数据全链路中各个平台组件的元数据。数据采集指的是把这些元数据入库到数据资产管理系统的数据库中。

    4.1 采集方式

    采集数据主要有3种方式,下方表格列出了3种方式的优缺点:

    一般情况我们推荐业务方使用采集SDK。主动上报元数据,在接入时只需要关注上报的数据格式、SDK的初始化,就能快速完成上报工作。

    4.2 采集SDK设计

    采集SDK支持上报基础元数据、趋势数据、血缘数据,主要包括客户端SDK和采集服务端两部分。客户端SDK主要实现了通用上报模型的定义和上报功能,采集服务端主要实现了不同的适配器,完成数据的统一入库。

    4.2.1 架构

    采集SDK客户端

    定义了基础元数据(MetaSchema)、趋势数据(TrendSchema)、血缘数据(LineageSchema)的通用模型,支持扩展新的上报模型(XXXSchema)。ReportService实现了数据推送到Kafka的功能。

    采集服务端

    1. 数据鉴权

      服务端消费kafka,获取到数据后,对每条记录的签名进行认证(取到记录中的appId、appName、token信息,重新生成token并比对值的过程)。

    2. 统一入库服务

      定义统一数据入库模型,包括表基础元数据、趋势数据、血缘数据、趋势数据并实现不同数据类型入库的服务。

    3. 数据适配器Bridge

      获取kafka的数据,根据不同的数据类型转换成“统一入库模型”,并触发“统一入库服务”完成数据的写入。

    4.2.2 通用模型

    采集的平台组件多,我们参照Hive“表模型”的定义,抽象出了一套通用的数据上报模型,保障了数据上报和数据存储的扩展性。

    • 通用元数据模型

      主要包括接入方信息、表基础信息、业务域信息、扩展信息。

    • 通用趋势模型

      主要包括表信息定义、趋势指标定义、扩展信息。

    • 通用血缘模型

      一张血缘图主要是由点、线组成的。点指的是表节点,边指的是任务节点;节点信息包括:节点名称、节点类型、节点扩展信息;表节点包括表基础信息,可以唯一确定一张表,任务节点包括任务的基础信息。

    通用血缘模型主要包含表血缘模型定义、表任务血缘模型定义,支持用户单独上报表血缘、任务血缘。模型定义如下:

    /**
     * 表血缘模型定义
     */
    @Data
    public class TableLineageSchema<T extends TableNode> {
        /**
         * 当前节点
         */
        private T current;
        /**
         * 父节点
         */
        private List<T> parents;
        /**
         * 子节点
         */
        private List<T> childs;
        /**
         * 表级别血缘扩展信息,json对象,kv结构
         */
        private String extParam;
    }
    
    
    /**
     * 表任务血缘定义
     *
     */
    @Data
    public class JobLineageSchema<Job extends JobNode, Table extends TableNode> {
        /**
         * 任务节点对象
         */
        private Job task;
        /**
         * 输入对象列表
         */
        private List<Table> inputs;
        /**
         * 输出对象列表
         */
        private List<Table> outputs;
        /**
         * 任务级别血缘扩展信息,json对象,kv结构
         */
        private String extParam;
    }
    
    

    每种模型定义留有扩展字段(约定json格式),不在定义中的指标可以放在扩展字段,上报数据后,也会被存储在元数据表的扩展字段中。接入新的类型,指标定义差异性较大,通过扩展新的数据模型定义,完成元数据的上报。

    4.2.3 接入,校验,限流

    如何保障用户上报的数据是安全的?我们设计了一组签名:接入方Id(appId)、接入名称(appName)、接入标识(token)。管理员填写基础的接入方信息即可生成随机的appId、token信息。业务方在初始化采集SDK时,指定签名信息,上报的每条数据会携带签名。在采集服务端,会对每条数据进行签名认证,这样保障了数据的安全性。

    采集SDK会对上报的每条数据执行通用规则,检查数据的合法性,比如表名称不为空、责任人有效性、表大小、趋势数据不能为负数等。检查出非法数据会过滤掉并触发告警通知。

    在采集SDK服务端,定时(每隔两秒)消费Kafka一批数据,支持设置消费数据的时间间隔和拉取条数,不会因为上报数据的流量波峰导致下游入库压力变大,起到了限流的作用。

    4.3 触发采集

    我们支持了元数据的多种采集方式,如何触发数据的采集呢?整体的思路是:

    • 增量采集变更的数据

    • 定期采集全量的数据

    • 实时采集SDK上报的数据

    基于阿波罗配置系统(详见:Apollo在有赞的实践)和Linux系统的Crontab功能,实现了任务的定时调度。数据采集任务配置在阿波罗上,变更配置后发布阿波罗,实时同步配置信息到线上节点的Crontab文件中。

    4.3.1 增量任务,准实时

    支持获取组件最近变更的元数据,配置增量任务,提升元数据采集的实时性。比如增量采集Hive表元数据,每隔1分钟查询metastore获取最近变更的元数据列表,更新元数据。

    4.3.2 全量任务,兜底

    增量采集可能存在丢数据的场景,每隔1天或多天全量采集一次,作为兜底方案保障元数据的完整性。

    4.3.3 采集SDK,实时上报

    采集SDK支持实时和全量上报模式,一般要求接入方数据变更后实时上报,同时不定期全量上报一次。

    4.4 数据存储,更新

    数据采集后,要考虑如何存储、元数据发生变更如何同步更新。我们对采集过来的元数据进行分类归一,抽象出“表模型”,分类存储。

    4.4.1 数据存储

    我们评估了每种组件的元数据数量(总量10w+)、预估数据可能的使用场景,最终选择Mysql存储。为了满足用户的个性化查询需求,构建Es宽表。以表粒度为主包括:表名称、备注、责任人、字段列表、趋势信息、业务域信息、任务信息等。数据采集过程中同步更新Es表保障了元数据查询的实时性,定期(构建离线模型表,每天同步更新Es表)全量更新一次,保障了元数据的完整性。

    元数据中的表不是孤立存在的,一般有关联的任务(离线任务,实时任务)产出表,数据地图中也会展示表和任务的流转关系。那么在众多的平台组件中,如何唯一的区分出一张表呢?我们是通过表所在的集群名称、项目名称、表类型(来自哪个平台组件)、表名称这几个字段组合来唯一区分。

    数据分类储存,最终形成:基础元数据表、趋势数据表、任务元数据表、血缘数据表。

    4.4.2 数据更新

    元数据表下线了,如何同步更新呢?

    • 全量采集,找差异

      全量采集时,获取平台组件的所有元数据,和资产数据库中的元数据表做全量比对,找出差异的表并设置下线。

    • 增量采集,走约定

      增量采集时,与接入方约定:已下线的表不上报,3天未更新的元数据平台会进行清理。

    五、监控预警

    完成了数据的采集,是不是就大功告成了?答案是否定的。采集过程中数据类型多、删掉方式多样、删掉链路长,任何一个环节出现问题就会导致结果的不准确。我们通过以下方式保障采集服务的稳定性。

    5.1 采集链路监控告警

    5.1.1 接口监控

    我们把系统所有的服务接口划分为三个等级:核心、重要、一般,并支持注解的方式打标接口和责任人,发生异常触发不同程度的告警通知。核心服务异常直接触发电话告警,重要或一般服务异常触发邮件告警。系统会存储接口请求和执行的状态删掉,每天定时向接口服务的责任人发送服务日报。通过将元数据的采集服务标记为核心和重要服务,对“API直连方式”的接口做到了异常感知。

    如下所示,是服务接口的告警通知:

    [Warning][prod][data-dict] - 数据资产平台告警
    你负责的[元信息采集]模块(backup为XXX)出现[重要]等级问题, 方法名:[com.youzan.bigdata.crystal.controller.HiveMetaController.getHiveDb], 异常信息:null
    host:XXXXXX
    处理地址:https://XXXX
    

    如下所示,是服务接口的告警日报:

    [Warning][prod][data-dict] - 数据资产平台告警
    [shunfengche]今日问题汇总
    请及时收敛今日问题,总问题数 1 个,出现 2 次
    【核心】问题 0 个:
    【重要】问题 0 个:
    【一般】问题 1 个:
    [数据采集]com.youzan.bigdata.crystal.controller.HiveMetaController.getHiveDb 今日出现 2 次, 已存在 5 天, 历史出现 8 次
    host:XXXXXX
    处理地址:https://XXXX
    

    5.1.2 采集过程监控

    针对每个元数据采集服务,采集过程发生异常则发送告警通知。

    如下所示,是采集过程发生异常触发的告警:

    [Warning][prod][data-dict] - 数据资产平台告警
    你负责的[元信息采集]模块(backup为XXX)出现[一般]等级问题, 方法名:[com.youzan.bigdata.crystal.asyncworker.work.AsyncAllRdsDDLWorker.run], 异常信息:/n
    ### Error updating database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLQueryInterruptedException: Query execution was interrupted
    

    5.1.3 kafka消息积压告警

    消费kafka数据,通过kp平台配置消息积压告警,针对采集SDK服务做到了异常感知。

    5.2 结果数据比对

    主要是事后监控预警,定时探查采集的元数据数量异常波动。对不同类型的元数据,通过比较当日采集的数量和近7天历史平均的数量,设定异常波动告警阈值,超过阈值触发告警通知。

    针对采集的元数据结果表,配置一些数据质量探查规则,定时执行异常规则发现问题数据触发告警通知。这样保障了对结果数据的异常感知。比如已定义的数据质量规则:

    • 表责任人:离职人员或特殊责任人(表的责任人是app,admin等)数量。

    • 血缘:无关联的任务,无上下游的表数量。

    • 趋势数据:表趋势值非法(默认值-1)的数量。

    • 业务域:表所属的业务域值为-1(非法值)的数量。

    5.3 项目迭代机制,采集问题收敛

    经过事前、事中、事后的监控告警机制,能够及时发现并感知采集异常。对异常问题,我们一般以项目迭代的方式,发起jira,组织关联人复盘。追溯根因,讨论改进方案,产出action,定期关注并持续做到问题的收敛。

    六、总结和展望

    6.1 总结

    我们定义了一套通用的数据采集和存储模型,支持接入不同数据类型的元数据,支持多种接入方式,采集SDK提升了接入效率和数据的时效性。

    如下图所示,目前已接入了各种组件的元数据,并对数据分类统一管理,提供数据字典、数据地图、资产大盘、全域成本账单等元数据的应用。

    如果把数据资产治理比作建设高楼大厦,那么不同组件的元数据就是原材料,数据采集就是地基。只有地基打得牢固,数据治理这座大厦才会越建越稳。

    6.2 展望

    数据采集的过程中我们也遇到很多的问题,在后续的工作中需要不断的优化和功能迭代,包括但不限于:

    • 自动化采集

      目前接入新的数据类型,需要和接入方确认数据上报格式,编写数据适配器。后续考虑自动化采集,减少人工介入。接入工单系统,接入方发起工单申请,填报基础的元数据信息,管理员审批后,能够根据工单信息自动生成数据适配器,完成数据的上报。

    • 采集任务管理

      目前接入了各种组件的元数据,采集任务数25+,新增采集任务或任务下线,需要走阿波罗配置系统。采集任务管理、搜索、任务启停需求越来越强烈。

    • 提升元数据质量

      接入的元数据类型、元数据服务越来越多,对元数据的质量提出了更高的要求。如何保障数据的准确性、可用性,是后续重点要考虑的事情。·

    • 支持业务元数据接入

      目前主要接入了数据平台组件的元数据,业务方元数据占比较小,后续考虑支持快速接入业务数据,支持非结构化数据的采集和存储。 

    到底什么叫作数据架构?   

    有赞数据治理之提质降本

    美团酒旅数据治理实践

    华为数据管理组织是如何发展的?

    读透《华为数据之道》

    数据治理:90%的人搞不清的事情

    点击左下角“阅读原文”查看更多精彩文章,公众号推送规则变了,如果您想及时收到推送,麻烦右下角点个在看或者把本号置顶

      

    ????分享、点赞、在看,给个3连击吧!????

    ‍‍

    展开全文
  • 这里我们要先搞懂什么是元数据元数据和数据的区别是什么?元数据有什么作用 1.什么是元数据 举几个例子: 如果一本书是一个“数据",那么它的书名、封面、出版社、作者、总页码就是它的“元数据”。 如果...

      Apache Doris 代码仓库地址:apache/incubator-doris 欢迎大家关注加星
     


    这里我们要先搞懂什么是元数据?元数据和数据的区别是什么?元数据有什么作用

    1.什么是元数据

    举几个例子:

    • 如果一本书是一个“数据",那么它的书名、封面、出版社、作者、总页码就是它的“元数据”。
    • 如果数据库中某个表是一个”数据”,那么它的列名、列类型、列长度、表注释就是它的"元数据"。

    元数据用来描述数据的数据,通过描述数据的产生、存储、使用情况、业务含义等信息,以及数据管理人员相关信息。让人们能够清楚拥有什么数据、代表什么、源自何处、如何在系统中移动,以及哪些人可以使用源数据,如何使用

    2.元数据分类

    元数据可分为技术元数据和业务元数据

    2.1 技术元数据

    技术元数据是存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库使用的数据,主要包括:

    • 数据字典:例如表名、注释信息、表的产出任务、表字段信息、含义和字段类型等,描述数据的结构信息。
    • 数据血缘关系:描述表的继承关系,由哪些表经过哪些计算任务得到的。
    • 数据特征:数据的属性,比如存储空间大小、访问热度、主题域、分层、表关联指标等。

    2.2 业务元数据

    为管理层和业务分析人员服务,从业务角度描述数据,包括商务术语、数据仓库中有什么数据、数据的位置和数据的可用性等,帮助业务人员更好地理解数据仓库中哪些数据是可用的以及如何使用。

    • 企业概念模型:这是业务元数据所应提供的重要的信息,它表示企业数据模型的高层信息、整个企业的业务概念和相互关系。以这个企业模型为基础,不懂数据库技术和SQL语句的业务人员对数据仓库中的数据也能做到心中有数。
    • 多维数据模型:这是企业概念模型的重要组成部分,它告诉业务分析人员在数据集市当中有哪些维、维的类别、数据立方体以及数据集市中的聚合规则。这里的数据立方体表示某主题领域业务事实表和维表的多维组织形式。
    • 业务概念模型和物理数据之间的依赖:以上提到的业务元数据只是表示出了数据的业务视图,这些业务视图与实际的数据仓库或数据库、多维数据库中的表、字段、维、层次等之间的对应关系也应该在元数据知识库中有所体现

    3.元数据管理功能

    3.1 数据地图

    数据地图展现是以拓扑图的形式对数据系统的各类数据实体、数据处理过程元数据进行分层次的图形化展现,并通过不同层次的图形展现粒度控制,满足开发、运维或者业务上不同应用场景的图形查询和辅助分析需要。

    3.2 元数据分析

    3.2.1 血缘分析

    血缘分析:我们可以大致理解为是一个表的生成过程。它依赖了哪些表,怎么生成的。同时加上它依赖的表又是怎么生成的。

    血缘分析的作用:

    1. 问题定位:假设你用到了别人的数据,数据血缘分析能快速帮你定位到问题。
    2. 理解数据:如果你想用其它的数据源,首先要能理解它,不然数据口径能给你带来很大的麻烦。
    3. 影响评估:修改某份数据的时候能评估影响的范围大小。比如说现在你的小伙伴要调整自己开发的 Table J,这时候如果他不知道有谁在依赖这张表,冒然修改的话会带来毁灭性的伤害,但是有数据血缘分析的时候,至少能知道谁在使用这份数据。

    数据血缘分析是元数据管理的重要应用之一,梳理系统、表、视图、存储过程、ETL、程序代码、字段等之间的关系,并采用图数据库进行可视化展现。总之就是通过可视化展示数据是怎么来的,经过了哪些过程、阶段及计算逻辑。

    3.2.2 影响分析

    基于元数据存储的数据定义、去向、转换关系、依赖关系等,提供影响分析管理(向上分析)功能

    影响图:某实体表向上用于生成哪些实体(直接和间接),影响哪些数据汇总程序(直接和间接)。由当前数据节点向上树形扩散

    3.2.3 表关联分析

    提供表级关联关系分析功能,实现对数据流向分析,通过选定指定表操作对指定表进行数据流向分析,以实现对数据源数据具体流向的分析与统计

    3.2.4 指标一致性分析

    指标一致性分析是指用图形化的方式来分析比较两个指标的数据流图是否一致,从而了解指标计算过程是否一致。该功能是指标血缘分析的一种具体应用。指标一致性分析可以帮助用户清楚地了解到将要比较的两个指标在经营分析数据流图中各阶段所涉及的数据对象和转换关系是否一致,帮助用户更好地了解指标的来龙去脉,清楚理解分布在不同部门且名称相同的指标之间的差异,从而提高用户对指标值的信任。

    3.3 安全管理

    企业数据平台所存储的数据和提供的各类分析应用,涉及到公司经营方面的各类敏感信息。因此在数据系统建设过程中,须采用全面的安全管理机制和措施来保障系统的数据安全。

    数据系统安全管理模块负责数据系统的数据敏感度、客户隐私信息和各环节审计日志记录管理,对数据系统的数据访问和功能使用进行有效监控。为实现数据系统对敏感数据和客户隐私信息的访问控制,进一步实现权限细化,安全管理模块应以元数据为依据,由元数据管理模块提供敏感数据定义和客户隐私信息定义,辅助安全管理模块完成相关安全管控操作。

    可以通过元数据设置表及字段的安全等级,加密,脱敏,授权等,然后结合相应的规则对数据表及字段访问进行控制,确保数据安全

    3.4 元数据服务

    统一元数据服务,主要提供查询表、指标、维度基本信息的基础元数据服务以及查询表级血缘、字段级血缘的血缘服务。

    3.5 数据详情

    找到数据之后,通过数据详情功能可以快速了解数据表的基础信息,字段信息、分区信息、产出信息、数据血缘、数据预览,表关联信息、知识问答等

    4.元数据管理系统架构

    4.1 元数据采集

    元数据采集分为人工录入和自动抽取,通过人工录入的方式实现物理表的准确归属(包括该表属于仓库哪一层、对应的主题、业务过程、星型模型关系等)以及指标的采集,从而完成技术元数据和业务元数据的采集,通过自动抽取的方式完成生产元数据的采集和使用元数据的采集,主要包括:物理模型的依赖关系、存储占用、热度、等信息。

    4.1.1 元数据采集架构

    4.1.2 业务数据元数据同步采集

    实现对业务数据库数据表的元数据自动采集同步,包括建表语句中的中文备注信息,并将中文备注信息填写到对应的中文字段名称中,界面提供元数据修改功能,主要修改是添加业务技术负责人、修改表的中文名称、备注说明等信息,表的字段名称,类型、长度等信息不允许修改

    4.1.3 数据仓表元数据采集

    实现对数仓数据库数据表的元数据自动采集同步,包括建表语句中的中文备注信息,并将中文备注信息填写到对应的中文字段名称中,界面提供元数据修改功能,主要修改是添加数仓表对应技术负责人、修改表的中文名称、备注说明等信息,表的字段名称,类型、长度等信息不允许修改

    4.2 元数据变更预警

    1. 对业务元数据的变更(主要是Mysql数据库),通过flink监控binlog的schema变更时间,一旦发现及时发送消息通知,后端监控变更消息队列,取到变更信息,发出元数据变更预警,并自动修改相应的元数据,生成版本信息。
    2. 其他业务数据库,需要定时的去采集业务系统元数据信息和历史元数据进行比对,发现元数据变更并及时预警

    4.3 元数据版本管理

    元数据要提供版本管理功能,以便进行业务追溯,

    业务系统数据库表会因为业务的变化数据结构也需要变化,需要提供元数据多的历史版本管理,可以查询元数据历史版本信息

    4.4 元模型的构建

    这里的元模型分为以物理表为核心的物理元模型构建,以及以血缘为中心的血缘元模型。

    物理元模型:构建以物理表为中心,打通其与技术元数据(主题、业务过程、Schema)的关系,实现了物理表的清晰归属,打通其与生产元数据的关系,要加上物理表查询热度、资源消耗、查询密级等生产使用信息,打通其与指标、维度和应用的对应关系,为上层的取数应用建立了完备的元数据。

    血缘元模型:以血缘为中心,通过监控Doris审计日志或者,如果是其他数据库可以通过埋点或者拦截的方式获取SQL,通过sql解析完成自动的血缘关系构建,不仅要构建从上游业务表到仓库表的物理血缘,而且要打通仓库表到下游对应报表的血缘,为后续的影响评估构建了完备的元数据基础

    5. 元数据应用

    • ETL自动化管理:使用元数据信息自动生成物理模型,ETL程序脚本,任务依赖关系和调度程序,例如我们通过元数据实现Doris零代码接入,就是使用业务数据库表结构和Doris数仓对应的表结构实现字段自动化映射及检查
    • 数据质量管理:使用数据质量规则元数据进行数据质量测量。数据质量根据设定的规则帮助您过滤出有问题的数据,并智能分析数据质量缺陷,我们通过在接入的业务元数据上加入数据规则(技术规则和业务规则),然后将规则自动下发到ETL任务中,实现对数据的清洗、转换等操作,从源头上保障数据质量 下图是我们基于元数据定义的ETL规则,

    • 数据安全管理:使用元数据信息进行表,字段及报表权限控制。可以方便查看用户和访问权限,并启用对象级和行级安全管理。对象级安全性确保通过身份验证的用户只能访问他们被授权查看的数据、表或列,其它数据则不可见。基于行的安全性会更进一步,可以限制特定的组成员只可以访问表中特定的数据。
    • 数据标准管理:使用元数据信息生成标准的维度模型。
    • 数据接口管理:使用元数据信息进行接口统一管理。多种数据源接入,并提供多种插件对接最流行的源系统。应该可以简单方便获取数据。
    • 项目文档管理:使用元数据可以自动、方便的生成的健壮全面的项目文档,其以帮助您应对各种对于数据合规性要求。读取元数据模型,并生成pdf格式的描述文件。生成文档您查看每个对象的名称、设置、描述和代码
    展开全文
  • 数据采集数据采集技术

    千次阅读 2021-11-26 18:23:56
    数据采集技术 综述 数据采集是大数据产业的基石。 数据采集的重点不在于数据本身,而在于如何才能解决数据运营中的实际商业问题。通过对数据采集技术获取的高质量数据的分析和挖掘,得到的结果对决策行为具有较高的...

    数据采集技术

    综述

    数据采集是大数据产业的基石。

    数据采集的重点不在于数据本身,而在于如何才能解决数据运营中的实际商业问题。通过对数据采集技术获取的高质量数据的分析和挖掘,得到的结果对决策行为具有较高的指导性作用

    数据采集的定义

    数据采集,又称数据获取,是利用一种程序或装置从系统外部采集数据,经过数据清洗,最终输入到存储系统中

    数据采集的特点

    1. 自动化:以高自动化的方式采集并存入
    2. 全面化:涵盖了全量采集和增量采集,不对数据采样
    3. 多样化:采集方式不单一
    4. 丰富化:采集的数据丰富,不只有基本的数据

    数据的类型

    1. 结构化数据:具有固定格式或有限长度的数据,元数据、数据库
    2. 半结构化数据:非关系模型的,且有基本固定结构模式的数据,log、xml、json
    3. 非结构化数据:数据结构不规则或不完整,没有已经确定的数据模型,办公文档、图片、图像、音视频

    数据采集的范围

    1. 数据库数据
    2. 业务系统的日志
    3. 互联网应用数据
    4. 容器的日志
    5. 操作系统的日志
    6. 网络设备的日志

    数据采集的要求

    1. 全面:要求数据量足够且有分析价值,数据面广能够支撑分析需求
    2. 多维:采集的数据能够灵活、快速的自定义数据多种属性和不同类型,从而满足不同的分析需求
    3. 高效:采集数据要有针对性的采集,避免采集无用数据,浪费资源
    4. 及时:对于实时监控性质的系统,要能够实时采集数据并上报

    采集流程

    网页爬取流程

    1. 采集:通过python编写代码,爬取网页
    2. 清洗:通过python编写代码,对原网页数据进行拆分,抽取想要的信息
    3. 存储:通过python编写代码,将数据存入数据库或文件

    log数据采集

    1. 采集:通过采集工具filebeat等配置,完成采集
    2. 清洗:通过logstash等来接收原始的日志数据并拆分验证
    3. 存储:通过logstash将采集结果存入数据库或文件
    展开全文
  • 元数据管理或者叫数据发现服务 开源项目技术选型 目录一、元数据管理简介是什么?为什么?二、开源方案介绍Linkedin DatahubApache AtlasNetflix MetacatLYFT Amundsen三、详细对比四、推荐度 一、元数据管理简介 是...

    元数据管理或者叫数据发现服务 开源项目技术选型

    一、元数据管理简介

    是什么?

    元数据(又称字典)是属于数据库本身的一些数据,包含数据库名、数据库字符集、表名、表的大小、表的记录行数、表的字符集、表的字段、表的索引、表的描述、字段的类型、字段的精度、字段的描述等。

    为什么?

    1. 可以知道有哪些数据(数据资产地图)
    2. 可以知道数据与数据间的关系(数据血缘)
    3. 可以根据元数据判断数据质量(数据质量)

    二、开源方案介绍

    介绍不分先后

    Linkedin Datahub

    Linkedin公司开源,为现代数据栈而生的元数据管理平台

    功能:
    元数据读取,元数据展示,给元数据打标签

    项目地址:
    https://github.com/linkedin/datahub

    详细介绍:
    https://zhuanlan.zhihu.com/p/80459081

    Apache Atlas

    Atlas 是一个可伸缩和可扩展的核心基础治理服务集合 ,使企业能够有效地和高效地满足 Hadoop 中的合规性要求,并允许与整个企业数据生态系统的集成。

    项目地址:
    https://github.com/apache/atlas

    详细介绍:
    https://blog.csdn.net/qq_38247150/article/details/108756790

    Netflix Metacat

    Metacat 是Netflix开源的一种元数据服务,方便我们发现、处理和管理数据。

    项目地址:
    https://github.com/Netflix/metacat

    详细介绍:
    https://blog.csdn.net/fct2001140269/article/details/111034764

    LYFT Amundsen

    Amundsen 是来自Lyft 开源的元数据管理、数据发现平台,功能点很全,有一个比较全的前端、后端以及数据处理框架。

    项目地址:
    https://github.com/amundsen-io/amundsen

    详细介绍:
    https://blog.csdn.net/fct2001140269/article/details/111034764

    三、详细对比

    对比项Linkedin DatahubApache AtlasNetflix MetacatLYFT Amundsen
    第一个稳定版发布时间2020-102015-62017-72021-5
    仓库 watch/star/fork198/3.3k/92162/946/545355/1.1k/193252/2.4k/566
    仓库 issue/pull request124/15756/5231/4105/14
    开发语言Typescript/Java/PythonJavascript/Java/PythonJava/GroovyTypescript/Python
    文档完善度9908
    features数据集、标签、用户、用户、仪表板元数据类型和实例、分类、血统、搜索/发现、安全和数据屏蔽数据抽象和互操作性、业务和用户定义的元数据存储、数据发现、数据变更审计和通知搜索和排名

    四、推荐度

    综合考虑详细对比的各个维度,推荐度如下

    1. Apache Atlas
      理由:文档全面,apache背书,和hadoop生态集成能力好,功能全面
    2. Linkedin Datahub
      理由:文档全面,功能全面
    3. LYFT Amundsen
      理由:文档全面,功能差一些
    4. Netflix Metacat
      理由:没有文档,官方资料少

    PS:有误之处,请不吝赐教!

    展开全文
  • 数据采集器工作原理是什么?发布日期:2016-07-27浏览次数:4715在计算机广泛应用的今天,数据采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。又分为条码数据采集器、无线数据采集器等等,各种类型...
  • Hive元数据的读取的两种方式

    千次阅读 2021-01-17 20:27:57
    使用JDBC的方式直接去mysql中读取元数据,称为直连模式 需要的条件: 连接Mysql的驱动,已经放入到$HIVE_HOME/lib下 创建连接时,需要有url,username,password,driveClassName,在hive-site.xml中配置 <property...
  • 数仓之flink数据采集

    2021-04-13 10:18:00
    概要 由于flink可以接入非常多的数据源,1.11版本后基于catalog也能... 一定要执行这个语句,更新hive元数据 "alter table "+hiveTableName+" set TBLPROPERTIES ('sink.partition-commit.policy.kind'='metastore')";
  • 大数据的来源多种多样,在大数据时代背景下,如何从大数据中采集出有用的信息是大数据发展的最关键因素。大数据采集是大数据产业的基石,大数据采集阶段的工作是大数据的核心技术之一。为了高效采集大数...
  • Flume中传输的内容定义为事件(Event),事件由Headers(包含元数据,即Meta Data)和Payload组成。 Flume提供SDK,可以支持用户定制开发。Flume客户端负责在事件产生的源头把事件发送给Flume的Agent。客户端通常和...
  • * 同步等待拉取元数据。 * maxBlockTimeMs 最多能等待多久。 */ ClusterAndWaitTime clusterAndWaitTime = waitOnMetadata(record.topic(), record.partition(), maxBlockTimeMs); ... /** * 很明显,真正去...
  • PostgreSql常用查询元数据SQL 查询某个schema下所有的主键信息 SELECT result.TABLE_SCHEM, result.TABLE_NAME, result.COLUMN_NAME, result.KEY_SEQ, result.PK_NAME FROM (SELECT n.nspname AS TABLE_SCHEM, ct....
  • 数据采集工具Flume

    2021-06-07 21:24:57
    Flume实时数据采集工具的使用 Flume的开发已经接近极致,可以看到最近两年也没有什么更新,是一款非常实用的实时数据采集工具,可以满足大数据采集的大多数要求(全量采集还是建议用sqoop,别问为什么,问就是你的...
  • 数据采集复习知识点

    2021-01-05 17:45:39
    数据采集复习知识点1.网络爬虫概念2.爬虫爬取数据的用途3.http概念4.常见http请求头5.请求方式6. 响应状态码7.urllib库8.正则表达式9.Xpath和lxml库10.requests库的使用11.理解json以及python的json库的使用12....
  • 送5本大数据采集新书

    2021-10-29 00:36:34
    文末送书大家好,我是峰哥。大数据的来源多种多样,在大数据时代背景下,如何从大数据中采集出有用的信息是大数据发展的最关键因素。大数据采集是大数据产业的基石,大数据采集阶段的工作是大数据的核心...
  • 数据采集分析系统

    2021-01-06 16:33:44
    采集了哪些数据?这些数据我们将如何运用和分析?最终又将如何展示呢? 首先我们看下系统结构。整个系统由以下 4 个部分组成,期望能提供一套完整的用户行为分析的解决方案: 埋点采集 JSSDK:收集用户行为数据,并...
  • 基于Matlab GUI的数据采集与存储实验平台开发作者:张帆来源:《沿海企业与科技》2011年第01期[摘要]文章应用Matlab语言,编程实现了数据采集与存储实验平台,该平台通过PC机串行口,获得下位机的实验数据,并以....
  • 分布式数据采集

    2021-05-15 20:12:47
    分布式数据采集 一.数据采集与分布式数据采集 数据采集 介绍 数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛应用在各个领域。比如摄像头,麦克风,都是...
  • 数据采集 复习题

    千次阅读 2020-12-29 11:41:47
    如何运用传感器节点构造一个数据采集系统?(第二章作业) 6.常用的数据采集命令行:hadoop命令行 ** 第一章作业 ** 1.数据采集系统主要实现哪些基本功能? 1)采集传感器输出的模拟信号,经过调整,采样,量化,编码...
  • title=“Python数据采集与处理之网页爬取” date=2020-12-03 categories=[“educoder”] +++ 第1关:request模块的基本使用 使用get函数获取response,response.text获取内容然后写入文件 import requests # 国防...
  • 最近,由于一些需要,用到了java和正则,做了个的足球网站的数据采集程序,由于是第一次做关于java的html页面数据采集,必然在网上查找了很多资料,但是发现运用如此广泛的java在使用正则做html采集方面的(中文)文章是少...
  • 主要负责接收和返回客户端请求、元数据以及集群管理、查询计划生成等工作。 BE:Backend,即 Doris 的后端节点。主要负责数据存储与管理、查询计划执行等工作。 bdbje:Oracle Berkeley DB Java Edition。...
  • 数据采集与处理期末复习题

    千次阅读 2021-04-25 08:13:41
    大数据的四个特点:数据量大、数据类型繁多、处理速度快和价值密度低。 大数据的四种范式:实验、理论、计算、数据密集型 大数据计算模式:批处理计算、流计算、图计算、查询分析计算 Hadoop的特性:高可靠性、高效...
  • 鉴于被管网的多样性和管理类别的不同,我们在数据采集层上采取了不同的协议采集不同的网管数据,把数据采集分为主动数据采集和被动数据采集。NetFlow、sFlow、SNMP TRAP属于被动采集的范畴,在flowd里面自动实现数据...
  • flume数据采集

    2021-03-07 20:48:02
    在使用时我们可以配置不同的实现类运行机制flume运行机制agent可以组织为拓扑网络:agent拓扑网络部署运行上传解压就o了然后我们就配置采集方案例1:从网络端口接收数据,下沉到logger新建采...
  • 数据采集工具调研

    2021-11-30 17:47:18
    2 用于 关系型数据库和hadoop组件之间进行数据迁移 , 不支持hadoop相关库组件、rdbms之间数据抽取操作 3 对hadoop支持度好 4 sqoop只支持官方提供的指定几种关系型数据库和hadoop组件之间的数据交换 5 数据库...
  • 1 数据仓库概念 warehouse 英[ˈweəhaʊs] 美[ˈwerhaʊs] n. 仓库; 货栈; 货仓; 》1:什么是数据仓库? 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。 》2:数据仓库有什么用? 数据仓库,是为企业所有...
  • 1.2 数据采集&监控的项目架构 1)架构一(我们要使用的) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XrFLwiT5-1615386415987)(%E9%A1%B9%E7%9B%AE%E9%87%87%E9%9B%86%E5%92%8C%E7...
  • 超声传感器:可以为单晶探头,也可以是多晶组成的面探头; 高压驱动:为前端传感器提供高压激励和切换功能; AFE Device:应用场景不一样,可能方案也不一样,常用的有TI、ADI的ADC芯片; TGC:Time-Gain-...
  • 数据中台是传统的数据仓库的一种升级, 是数据采集、建设、管理与使用的一整套体系。Dataphin是一个构建数据中台的强大工具, 数据集成是Dataphin的组成部分,负责数据“采”、“建”、“管”“用”中的采集部分。数据...
  • 在实际生产开发当中,适当的设计agent的数量和模式,并很好的将数据采集过来,是我们分析数据的第一步,即先要有数据业务系统那边进行埋点,记录日志,到服务器本地磁盘当中考虑使用高可用模式,并使用级联模式,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,159
精华内容 20,863
关键字:

元数据采集