版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
26 篇文章 84 订阅 ¥29.90 ¥99.00
产生问题的原因?
在DataHub v0.8.24 之前,元数据模型不支持同一平台类型的多个实例,原因详见下面的描述。
DataHub的元数据模型针对数据集【Dataset】的唯一标识URN由如下三个部分级成:
- Data Platform 数据平台:如 urn:li:dataPlatform:mysql
- Name 数据集名称,常用的格式是:db.schema.name
- Env 环境:如DEV、PROD等
如果在同一环境下,某一系统使用了同一平台类型的多个实例,如针对不同的业务,使用了多个MySQL实例,如果要查看所有实例的数据集资产,则这些数据集的唯一标识URN可能存在冲突。
如何支持同一平台类型的多个实例?
DataHub v0.8.24+的版本,从如下2个方面,在元数据模型中支持平台实例:
- 在数据集添加dataPlatformInstance Aspect,允许数据集与平台的实例相关联
- 对所有摄取源进行增强
- 在配置中通过增加platform_instance配置项 指定关联的平台实例,数据集的URN 命名模式从
urn:li:dataset:(urn:li:dataPlatform:<platform>,<name>,ENV)
转变为urn:li:dataset:(urn:li:dataPlatform:<platform>,<instance.name>,ENV)
,即增加了一层 - 在其他平台(例如Looker, Superset等)中产生数据集数据血缘的数据源也添加了特定的配置项,允许指定平台和它应该映射的实例名之间的映射。
- 在配置中通过增加platform_instance配置项 指定关联的平台实例,数据集的URN 命名模式从
参见下图:
注意: 在配置平台实例时,平台实例名称请使用方便理解,且稳定的名称
支持多实例的配置示例
最简单的做法是在配置中增加platform_instance的配置项,指定关联的平台实例名称,详见参见各个摄取源的配置。
source:
type: mysql
config:
host_port: '172.25.21.166:3306'
username: root
password: 123456
database: user_center
platform_instance: wechat
schema_pattern:
ignoreCase: true
allow:
- user_center_*
include_views: false
profiling:
enabled: false
transformers:
-
type: simple_add_dataset_tags
config:
tag_urns:
- 'urn:li:tag:wechat'
sink:
type: datahub-rest
config:
server: 'http://172.25.21.188:8080'