概要描述
本文主要描述如何在 TDS 4.x 中启用 Quark Gateway 或多个 Quark 实例共享元数据场景的血缘。本文中 Quark1 、Quark2、Quark3 共享元数据,且 Quark1 、 Quark2 通过 Quark Gateway 做了负载均衡,Quark3 是一个 local 模式的独立 Quark 。关于单实例 Quark 开启血缘请参考这篇文档。
详细说明
页面开启 Quark 血缘插件

在 Manager 页面上,进入需要开启血缘的所有 Quark 服务(本例子中,Quark1、Quark2、Quark3都要操作),点击插件按钮,可以看到catalog1插件,确认其插件状态是否已开启,如未开启需要手动点击操作中的开启按钮。
注意,开启插件过程中涉及重启Quark,请务必在允许重启的时间段操作。
确认每个 Quark 的 Server 节点
在 Manager 页面上,进入刚才开启血缘插件的所有 Quark 服务的角色页面,确认每个 Quark 的 Quark Server 所在节点。

确认并修改每个 Quark Server 节点的配置文件
在刚才找到的每个 Quark Server 节点中,进入 /etc/quarkX/conf (X为该节点上存在 Quark Server 的 Quark 服务编号,例如quark1)目录下,编辑catalog.properties配置文件。
找到catalog.agent.service.id和catalog.agent.cluster.id配置项,例如:
catalog.agent.service.id=quark1
catalog.agent.cluster.id=1
未配置的情况下,quark1、quark2、quark3的这两项配置应该都不一样,但在本案例场景中,需要手动把它们改成相同的值,例如都改为:
catalog.agent.service.id=inceptor1-3
catalog.agent.cluster.id=100
注意一定要确保这几个 Quark Server 的这两项配置完全相同,否则无法将这几个 Quark 的血缘信息合并采集!

确认修改完成后,需要重启这几个 Quark 使配置生效,可以等允许重启时再操作。
注意,如果未来在 Quark 的插件页面手动刷新了 catalog1 插件,需要重新确认此步骤中的两个配置值。
确认 TDS 血缘插件的连接映射

在TDS的治理场景->血缘->血缘插件这边看到这个 Quark 的血缘插件了,默认插件名即为刚才配置的catalog.agent.service.id配置项的值,例如inceptor1-3。然后点击右侧的插件配置按钮。

在此页面中,把这几个Quark涉及的TDS连接都配置上,在本案例中,TDS里面配置了 Quark Gateway (后端对应Quark1、Quark2)和 Quark3 的连接,所以添加这两个连接。

同时也在此页面中删除所有不需要的映射。注意如果发现需要的映射无法添加,请检查是否有其他血缘插件配置了该映射,如有请先删除。
确认 TDS 血缘插件状态

在TDS的治理场景->血缘->血缘插件这边看到插件状态为健康时可以正常采集到血缘。
点击查看详情按钮,可以看到该血缘插件的更多信息。

Hook插件和Kafka状态也可在此处确认,如果插件异常可以针对性排查。
测试血缘是否配置成功
关于TDS中的数据血缘原理可以参考这篇文档。可以通过在 Quark 中简单执行以下这段SQL测试血缘功能。
drop table IF EXISTS default.blood1;
drop table IF EXISTS default.blood2;
drop table IF EXISTS default.blood3;
drop table IF EXISTS default.blood4;
drop table IF EXISTS default.blood5;
create table default.blood1(id int, name string, age int, address string) CLUSTERED BY (age) INTO 2 BUCKETS STORED AS ORC TBLPROPERTIES ("transactional"="true");
insert into table default.blood1 values(1, "jack", 18, "shanghai");
create table default.blood2 as select id,name,age,address from default.blood1;
create table default.blood3 as select id,name,age,address from default.blood2;
create table default.blood4 as select id,name,age,address from default.blood3;
create table default.blood5 as select id,name,age,address from default.blood4;
注意,需要等TDS的库表信息中包含这些表才可查看血缘关系。如果之前库中没有这几张表,还需要手动采集一下该数据源对应连接的元数据,或等元数据自动采集。

此时在血缘-血缘分析页面已经可以看到这几张测试表的血缘关系了。
