文章目录

  • Hive 元数据初次导入
  • Hive 元数据增量同步
  • 生成血缘依赖
  • 查看血缘依赖


Atlas 学习利器

Atlas 的使用相对简单,其主要工作是同步各服务(主要是 Hive)的元数据,并构建元数据实体之间的关联关系,然后对所存储的元数据建立索引,最终未用户提供数据血缘查看及元数据检索等功能。

Atlas 在安装之初,需手动执行一次元数据的全量导入,后续 Atlas 便会利用 Hive Hook增量同步 Hive 的元数据。

Hive 元数据初次导入

Atlas 提供了一个 Hive 元数据导入的脚本,直接执行该脚本,即可完成 Hive 元数据的初次全量导入。

1,导入 Hive 元数据
执行以下命令

[root@hadoop102	~]$	/opt/module/atlas/hook-bin/import- hive.sh

按提示输入用户名:admin;输入密码:admin

Enter username for atlas :- admin
Enter password for atlas :-

等待片刻,出现以下日志,即表明导入成功

Hive Meta Data import was successful!!!

2,查看 Hive 元数据

1)搜索 hive_table 类型的元数据,可已看到 Atlas 已经拿到了 Hive 元数据

atlas配置 mysql atlas代码怎么用_atlas配置 mysql


2)任选一张表查看血缘依赖关系

发现此时并未出现期望的血缘依赖,原因是 Atlas 是根据 Hive 所执行的 SQL 语句获取表与表之间以及字段与字段之间的依赖关系的,例如执行 insert into table_a select * from table_b 语句,Atlas 就能获取 table_a 与 table_b 之间的依赖关系。此时并未执行任何 SQL语句,故还不能出现血缘依赖关系。

Hive 元数据增量同步

Hive 元数据的增量同步,无需人为干预,只要 Hive 中的元数据发生变化(执行 DDL 语句),Hive Hook 就会将元数据的变动通知 Atlas。除此之外,Atlas 还会根据 DML 语句获取数据之间的血缘关系

生成血缘依赖

为查看血缘关系效果,在 hive 里面创建两张数据表。

创建数据库 atlas

hive (default)> create database atlas;
OK
Time taken: 7.311 seconds
hive (default)> use atlas;
OK
Time taken: 0.125 seconds
hive (atlas)>

1,建表语句,将两个表创建到hive中的 atlas 数据库下

1) 订单事实表

订单事实表

2) 地区维度表

地区维度表

2,数据装载
将资料里面提前准备好的数据 order_info.txt 和 base_province.txt 上传到两张 hive 表的hdfs 路径下。

order_info.txtbase_province.txt

atlas配置 mysql atlas代码怎么用_atlas配置 mysql_02

上传base_province 数据

atlas配置 mysql atlas代码怎么用_hadoop_03


上传order_info数据

atlas配置 mysql atlas代码怎么用_hive_04

3,需求指标
1)根据订单事实表和地区维度表,求出每个省份的订单次数和订单金额
2)建表语句

每个省份的订单次数和订单金额表

3)数据装载

insert into table ads_order_by_province 
select 
  '2021-08-30' dt, 
  bp.id, 
  bp.name, 
  bp.area_code, 
  bp.iso_code, 
  bp.iso_3166_2, 
  count(*) order_count, 
  sum(oi.final_amount) order_amount 
from 
  dwd_order_info oi 
  left join dim_base_province bp on oi.province_id = bp.id 
group by 
  bp.id, 
  bp.name, 
  bp.area_code, 
  bp.iso_code, 
  bp.iso_3166_2;

查看血缘依赖

此时再通过 Atlas 查看 Hive 元数据,即可发现血缘依赖图

atlas配置 mysql atlas代码怎么用_hadoop_05

此时我们能看到 ads_order_by_province 表 依赖于 dwd_order_info 表 和 dim_bash_province 表。

atlas配置 mysql atlas代码怎么用_hadoop_06


查看字段的血缘依赖

atlas配置 mysql atlas代码怎么用_hadoop_07

这时发现order_amount 的 数据 来源于 final_amount的数据

atlas配置 mysql atlas代码怎么用_元数据_08

而final_amount的数据来源于 dwd_order_info 表中的数据。。

atlas配置 mysql atlas代码怎么用_元数据_09