知方号

知方号

是新手or老司机?怎么在一天内快速理清大数据资产?你能回答出来吗?

是新手or老司机?怎么在一天内快速理清大数据资产?你能回答出来吗?

1.问题引言—资产盘点

  问题场景1:假设A同学刚入职,这个时候领导给安排了N个取数任务,要取某某数据、某某指标。但是A同学不知道公司或者团队有哪些表、表里面有哪些字段,这个时候该怎么办?当前有人可能会说,我问问老员工、找找之前的开发文档,如果是少量的表和字段,那兴许能够问出来,但是如果涉及到的表很多,也没有文档,也没有老员工答疑,那怎么办?

  问题场景2:假设公司或者团队的计算和存储资源比较紧张,而当前的业务数据又在不断地增长,存储资源很明显不够用了,需要删除一些没有用的表或者分区,那B同学来做这部分数据治理,怎么去识别哪些表占用的存储比较大,哪些分区访问热度比较低呢?

  其实这两个问题都是企业里面实际会遇到的问题,也是考察开发经验的问题,两部分都与数据仓库的元数据有关,场景1涉及到的元数据包括表清单、字段清单,场景2涉及到的元数据包括存储大小、访问热度。

二、解决思路—元数据

  要解决上面两个问题,其实就是要查询我们的元数据。那么我们先来看看元数据的定义:元数据(Meta Data)通常被定义为:关于数据的数据(Meta data),或者描述数据的数据(data about data),对数据及信息资源的描述性信息。目前业界通常将其分为以下三类:

1.技术元数据:

  物理数据库表名称、列名称、字段长度、字段类型、约束信息、数据依赖关系等;

  数据存储类型、位置、数据存储文件格式或数据压缩类型等;字段级血缘关系、SQL脚本信息、ETL抽取加载转换信息、接口程序等;调度依赖关系、进度和数据更新频率等。

2.业务员数据

  业务元数据主要是对数据实体和数据处理的业务化描述,包括业务规则、业务术语、统计口径、信息分类等。大家经常提及的KPI定义和报表统计规则等就属于此类元数据。业务元数据主要的使用者是业务人员和公司决策人员。

3.管理元数据

  管理元数据是描述数据系统中管理领域相关概念、关系和规则的数据,主要包括人员角色、岗位职责和管理流程等信息。

我们上面的问题主要是通过查询和统计技术元数据来解决。

三、数据仓库元数据—Hive里的元数据

  我们hive中的元数据都存储在我们之前新建的mysql database=hive中,这个数据库我们称之为“元数据库”。(当然每个公司在安装hive的时候取的数据库名称不一定是一样的,企业很多生产用的是PG库)。我这边是自己安装的环境,通过登录mysql客户端即可看到:

通过show tables命令其实可以看到元数据库里面存在57个表,大家可以自己实操一下。这里我挑出来4个表来重点看看,主要包括:

TBLS、TABLE_PARAMS、TBL_PRIVS,这三张表通过TBL_ID关联,这里与表清单、表属性、表权限相关;

COLUMNS_V2:该表存储表对应的字段信息,这里与表的字段信息相关。

我们来实际看看这些表的内容:

(1)TBLS:该表中存储Hive表、视图、索引表的基本信息。

(2)TABLE_PARAMS:该表存储表/视图的属性信息。这里主要是可以查看表的存储大小、表的行数等信息。

特别注意:内部表、外部表的属性EXTERNAL也是存储在这里。通过这个表可以批量统计表的大小,或者说可以查看当前数据库占用的存储资源。

(3)TBL_PRIVS:该表存储表/视图的授权信息。这个表里面存储的是数仓表里面的权限分配记录。

(4)COLUMNS_V2:该表存储表对应的字段信息。这个表里面存储的是数仓里面所有的字段清单。

 那大家看到这里,是不是大概知道我们需要的数据来自于哪里了呢?没错儿,就是元数据库,数据就存在MySQL里面。

  但是新的问题来了,我怎么可以取到这个数据库里面的数据呢?这个时候元数据数据仓库应运而生了。

四、终极方案—元数据数据仓库

(1)构建的思路:元数据数据仓库的构建与普通的数据仓库构建思路差别不大,两者之前的区别在于内容的不同、数据获取方式的不同。要获取到数仓仓库的元数据,首先要有足够的权限(通常是平台级别的)能从MySQL元数据库里面得到上述基础数据。然后将这些基础数据按照数据仓库建模里面去一步步构建,包括贴源层、明细层、汇总层、应用层。

(2)使用的思路:其实在头部大厂里面,都会构建元数据数据仓库,这个库里面用得最多的就是涉及到表清单、表-字段清单、表存储相关的三个表。前面两个表可以帮助我们直接拖出全量的表和字段,那我们看到这些表的表名和字段名后,就可以很快地查找出来我们需要的表和字段了,这个可比问人的效率高多了;第三个表是可以帮助我们查出表的存储大小的,拖出清单后,我们可以根据表的存储大小进行排序,重点关注那些大表并对他们进行存储优化。

尖叫总结:当然企业关于元数据的使用有很种应用场景,公司规模越大,对元数据的使用玩的越开。企业日常元数据的采集都是任务化,包含多种元数据的采集,hdfs,hive,presto,spark,flink等。同样包含多种元数据的分析场景与应用场景,基本中小公司对元数据的使用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。