首页 » 通讯 » 元数据治理利器 - Apache Atlas_订单_数据

元数据治理利器 - Apache Atlas_订单_数据

落叶飘零 2025-01-04 20:12:38 0

扫一扫用手机浏览

文章目录 [+]

二、架构设计

Atlas 中紧张有以下核心组件

元数据治理利器 - Apache Atlas_订单_数据 元数据治理利器 - Apache Atlas_订单_数据 通讯

1. Type元数据类型定义,这里可以是数据库,表,列等,还可以细分 mysql 表( mysql_table ),oracle 表( oracle_table )等,atlas自带了很多类型,如 DataSet,Process 等,一样平常情形下,数据干系的类型在定义类型的时候都会继续 DataSet,而流程干系的类型则会继续 Process,便于天生血缘关系。
我们也可以通过调用 api 自定义类型。
这是统统的出发点,定义完类型之后,才能天生不同类型的元数据实体,天生血缘关系。

元数据治理利器 - Apache Atlas_订单_数据 元数据治理利器 - Apache Atlas_订单_数据 通讯
(图片来自网络侵删)

2. Classification分类,普通点便是给元数据打标签,分类是可以通报的,比如 A 视图是基于 A 表天生的,那么如果 A 表打上了 a 这个标签,A 视图也会自动打上 a 标签,这样的好处便是便于数据的追踪。

3. Entity实体,表示详细的元数据,Atlas 管理的工具便是各种 Type 的 Entity。

4. Lineage数据血缘,表示数据之间的通报关系,通过 Lineage 我们可以清晰的知道数据的从何而来又流向何处,中间经历了哪些操作,这样一旦数据涌现问题,可以迅速追溯,定位是哪个环节涌现缺点。

三、做事依赖

在安装Atlas前须要把一下软件都安装好,把稳Kafka、Hadoop、Hive、Hbase、Solr都须要注册到同一个ZK下,不可利用自带的ZK。

做事

子做事

Zookeeper

QuorumPeerMain

Kafka

Kafka

MySQL

MySQL

Hadoop

HDFS:NameNode、SecondaryNameNode、DataNode

Yarn:NodeManager、ResourceManager

Hive

Hive

Hbase

HMaster、HRegionServer

Solr

Solr

Atlas

Atlas

四、Atlas安装与集成4.1 解压缩

tar -zxvf apache-atlas-2.1.0-server.tar.gz4.2 集成hbase

vim conf/atlas-application.properties atlas.graph.storage.hostname=host:2181

vim conf/atlas-env.sh export HBASE_CONF_DIR=/home/root/apache/hbase-2.0.5/conf4.3 集成Solr

vim conf/atlas-application.properties atlas.graph.index.search.solr.zookeeper-url=host:2181

创建 solr collection

sudo -i -u root /home/root/apache/solr-7.7.3/bin/solr create -c vertex_index -d /home/root/apache/atlas/apache-atlas-2.1.0/conf/solr -shards 3 -replicationFactor 2 -force sudo -i -u root /home/root/apache/solr-7.7.3/bin/solr create -c edge_index -d /home/root/apache/atlas/apache-atlas-2.1.0/conf/solr -shards 3 -replicationFactor 2 -force sudo -i -u root /home/root/apache/solr-7.7.3/bin/solr create -c fulltext_index -d /home/root/apache/atlas/apache-atlas-2.1.0/conf/solr -shards 3 -replicationFactor 2 -force

创建好后可以在页面上看到

4.4 集成kafka

vim conf/atlas-application.properties atlas.notification.embedded=falseatlas.kafka.data=/home/root/data/kafkaatlas.kafka.zookeeper.connect=host:2181atlas.kafka.bootstrap.servers=host:90924.5 Atlas做事配置

vim conf/atlas-application.properties atlas.rest.address=host:21000atlas.server.run.setup.on.start=falsetlas.audit.hbase.zookeeper.quorum=host:21814.6 集成hive

修正atlas-application.properties

vim conf/atlas-application.properties atlas.hook.hive.synchronous=falseatlas.hook.hive.numRetries=3atlas.hook.hive.queueSize=10000atlas.cluster.name=primary

修正hive-site.xml

vim hive-3.1.2/conf/hive-site.xml <property><name>hive.exec.post.hooks</name><value>org.apache.atlas.hive.hook.HiveHook</value></property>

安装hive-hook

tar -zxvf apache-atlas-2.1.0-hive-hook.tar.gz cp -r apache-atlas-hive-hook-2.1.0/ apache-atlas-2.1.0/

修正hive-env.sh

vim hive-3.1.2/conf/hive-env.sh export HIVE_AUX_JARS_PATH=/home/root/apache/atlas/apache-atlas-2.1.0/hook/hive

拷贝atlas-application.properties到hive conf目录

cp atlas-application.properties ../../../hive-3.1.2/conf/五、Atlas利用5.1 Atlas启动

bin/atlas_start.py

访问host:21000,账号和密码都是admin

5.2 初始化元数据

cd hook-binsh import-hive.sh

5.3 增量同步

输入hive命令进入掌握台,创建订单事实表

CREATE TABLE dwd_order_info (`id` STRING COMMENT '订单号',`final_amount` DECIMAL(16,2) COMMENT '订单终极金额',`order_status` STRING COMMENT '订单状态',`user_id` STRING COMMENT '用户 id',`payment_way` STRING COMMENT '支付办法',`delivery_address` STRING COMMENT '送货地址',`out_trade_no` STRING COMMENT '支付流水号',`create_time` STRING COMMENT '创建韶光',`operate_time` STRING COMMENT '操作韶光',`expire_time` STRING COMMENT '过期韶光',`tracking_no` STRING COMMENT '物流单编号',`province_id` STRING COMMENT '省份 ID',`activity_reduce_amount` DECIMAL(16,2) COMMENT '活动减免金额',`coupon_reduce_amount` DECIMAL(16,2) COMMENT '优惠券减免金额',`original_amount` DECIMAL(16,2) COMMENT '订单原价金额',`feight_fee` DECIMAL(16,2) COMMENT '运费',`feight_fee_reduce` DECIMAL(16,2) COMMENT '运费减免') COMMENT '订单表'ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

创建地域维表

CREATE TABLE dim_base_province (`id` STRING COMMENT '编号',`name` STRING COMMENT '省份名称',`region_id` STRING COMMENT '地区 ID',`area_code` STRING COMMENT '地区编码',`iso_code` STRING COMMENT 'ISO-3166 编码,供可视化利用',`iso_3166_2` STRING COMMENT 'IOS-3166-2 编码,供可视化利用') COMMENT '省份表'ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

上传测试数据

cd /home/root/apache/hive-3.1.2/test-data hdfs dfs -put base_province.txt /home/root/data/hive/warehouse/my_db.db/dim_base_province hdfs dfs -put order_info.txt /home/root/data/hive/warehouse/my_db.db/dwd_order_info

创建需求表,根据订单事实表和地区维度表,求出每个省份的订单次数和订单金额

CREATE TABLE `ads_order_by_province` (`dt` STRING COMMENT '统计日期',`province_id` STRING COMMENT '省份 id',`province_name` STRING COMMENT '省份名称',`area_code` STRING COMMENT '地区编码',`iso_code` STRING COMMENT '国际标准地区编码',`iso_code_3166_2` STRING COMMENT '国际标准地区编码',`order_count` BIGINT COMMENT '订单数',`order_amount` DECIMAL(16,2) COMMENT '订单金额') COMMENT '各省份订单统计'ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

实行sql导入

set hive.execution.engine=spark; insert into table ads_order_by_provinceselect'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_amountfrom dwd_order_info oileft join dim_base_province bpon oi.province_id=bp.idgroup by bp.id,bp.name,bp.area_code,bp.iso_code,bp.iso_3166_2;

再导入到拷贝表一份

CREATE TABLE `ads_order_by_province_copy` (`dt` STRING COMMENT '统计日期',`province_id` STRING COMMENT '省份 id',`province_name` STRING COMMENT '省份名称',`area_code` STRING COMMENT '地区编码',`iso_code` STRING COMMENT '国际标准地区编码',`iso_code_3166_2` STRING COMMENT '国际标准地区编码',`order_count` BIGINT COMMENT '订单数',`order_amount` DECIMAL(16,2) COMMENT '订单金额') COMMENT '各省份订单统计'ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'; set hive.execution.engine=spark; insert into table ads_order_by_province_copyselect from ads_order_by_province;5.4 血缘查询结果

我们可以看到,经由上面的sql操作,Atlas已经记录好了血缘关系

六、事情事理

实在便是通过hive-hook监听数仓数据变革,把监听信息发Kafka : ATLAS_HOOK,体便是对Atlas数据模型的定义

Atlas读取到后会天生数据模型,存储到 Hbase 中,天生表与表,列与列的血缘关系依赖,在前台展示给用户查看。

文章来自https://www.cnblogs.com/wwzyy/p/16591908.html

标签:

相关文章

C语言中的set,数据结构之美

在计算机科学中,数据结构是构建高效程序的基础。C语言作为一种广泛使用的编程语言,提供了丰富的数据结构来满足不同的编程需求。其中,s...

通讯 2025-01-06 阅读0 评论0

C语言中的n功能,介绍其独特魅力与应用

C语言作为一门历史悠久、功能强大的编程语言,深受广大开发者的喜爱。在C语言中,n功能作为一种重要的编程技巧,具有极高的实用价值。本...

通讯 2025-01-06 阅读0 评论0

C语言中的三维世界,探索3D编程的奥秘

随着计算机技术的发展,三维(3D)技术在各个领域得到了广泛应用。在C语言编程中,3D编程成为了一个热门话题。本文将从3D编程的基本...

通讯 2025-01-06 阅读0 评论0