数据平台代表了一个第三方系统,DataHub从数据平台获取元数据实体。
每个被摄取的数据集都与一个平台相关联,例如MySQL、OpenGauss、Hive或HDFS。
在某些情况下,数据集添加自定义数据平台标识符。例如内部数据系统不是DataHub支持的数据平台。
DataHub提供了三种添加数据平台的方式,可以根据需要选择适合自己的方式
OpenGauss是国产开源数据库,目前被很多企业使用。本示例以添加OpenGauss数据平台为例,讲解如何添加
注意:其它数据平台的图标裂开了,是因为图标的地址在raw.githubusercontent.com/linkedin
上面,在国内访问不到。如hive的图标地址是:https://raw.githubusercontent.com/linkedin/datahub/master/datahub-web-react/src/images/hivelogo.png
。
把图标地址修改为可访问的地址即可,如https://hive.apache.org/images/hive_favicon.ico
或内部系统地址。
# 添加 OpenGauss 数据平台
curl 'http://localhost:8080/entities?action=ingest' -X POST --data '{
"entity":{
"value":{
"com.linkedin.metadata.snapshot.DataPlatformSnapshot":{
"aspects":[
{
"com.linkedin.dataplatform.DataPlatformInfo":{
"datasetNameDelimiter": "/",
"name": "OpenGauss",
"type": "OTHERS",
"logoUrl": "https://opengauss.org/img/opengauss.svg"
}
}
],
"urn":"urn:li:dataPlatform:OpenGauss"
}
}
}
}'
# 在新添加的数据平台上添加一个数据集
curl 'http://localhost:8080/entities?action=ingest' -X POST --data '{
"entity":{
"value":{
"com.linkedin.metadata.snapshot.DatasetSnapshot":{
"urn":"urn:li:dataset:(urn:li:dataPlatform:OpenGauss,tblA,PROD)",
"aspects":[
{
"com.linkedin.schema.SchemaMetadata":{
"schemaName":"FooEvent",
"platform":"urn:li:dataPlatform:foo",
"version":0,
"hash":"",
"platformSchema":{
"com.linkedin.schema.KafkaSchema":{
"documentSchema":"{\"type\":\"record\",\"name\":\"MetadataChangeEvent\",\"namespace\":\"com.linkedin.mxe\",\"doc\":\"Kafka event for proposing a metadata change for an entity.\",\"fields\":[{\"name\":\"auditHeader\",\"type\":{\"type\":\"record\",\"name\":\"KafkaAuditHeader\",\"namespace\":\"com.linkedin.avro2pegasus.events\",\"doc\":\"Header\"}}]}"
}
},
"fields":[
{
"fieldPath":"id",
"description":"记录标识",
"nativeDataType":"long",
"type":{
"type":{
"com.linkedin.schema.NumberType":{
}
}
}
},{
"fieldPath":"name",
"description":"名称",
"nativeDataType":"varchar(20)",
"type":{
"type":{
"com.linkedin.schema.StringType":{
}
}
}
}
]
}
}
]
}
}
}
}'
opengauss-data-platform.json,一次可以添加多个数据平台
[
{
"auditHeader": null,
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DataPlatformSnapshot": {
"urn": "urn:li:dataPlatform:OpenGauss10",
"aspects": [
{
"com.linkedin.pegasus2avro.dataplatform.DataPlatformInfo": {
"datasetNameDelimiter": "/",
"name": "OpenGauss",
"displayName": "国产数据库OpenGauss",
"type": "OTHERS",
"logoUrl": "https://opengauss.org/img/opengauss.svg"
}
}
]
}
},
"proposedDelta": null
}
]
source:
type: file
config:
filename: /data1/datahub/opengauss-data-platform.json
sink:
type: datahub-rest
config:
server: 'http://172.25.21.22:8080'
datahub ingest -c data-platform_to_datahub_rest.yml
只需对data_platform.json文件进行修改,添加自定义数据平台即可。
data_platform.json
的内容如下,可以根据需要修改默认的数据平台或添加自定义数据平台。
注意:如果采用这种方式,则需要重新build docker images, 具体操作可以参见:metadata-service
how to add-custom-data-platform
metadata-service