文章目录
- 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 元数据
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
上传base_province 数据
上传order_info数据
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 元数据,即可发现血缘依赖图
此时我们能看到 ads_order_by_province 表 依赖于 dwd_order_info 表 和 dim_bash_province 表。
查看字段的血缘依赖
这时发现order_amount 的 数据 来源于 final_amount的数据
而final_amount的数据来源于 dwd_order_info 表中的数据。。