【DataHub】 现代数据栈的元数据平台--如何添加自定义数据平台

1.什么是Data Platform?

数据平台代表了一个第三方系统,DataHub从数据平台获取元数据实体。
每个被摄取的数据集都与一个平台相关联,例如MySQL、OpenGauss、Hive或HDFS。

在某些情况下,数据集添加自定义数据平台标识符。例如内部数据系统不是DataHub支持的数据平台。

DataHub提供了三种添加数据平台的方式,可以根据需要选择适合自己的方式

2.添加数据平台的方式

OpenGauss是国产开源数据库,目前被很多企业使用。本示例以添加OpenGauss数据平台为例,讲解如何添加

2.1.使用Rest.li API添加

添加后效果

注意:其它数据平台的图标裂开了,是因为图标的地址在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或内部系统地址。
【DataHub】 现代数据栈的元数据平台--如何添加自定义数据平台_第1张图片

【DataHub】 现代数据栈的元数据平台--如何添加自定义数据平台_第2张图片

REST API调用代码示例

# 添加 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":{       
                                 }
                              }
                           }
                        }
                     ]
                  }
               }
            ]
         }
      }
   }
}'

2.2.使用datahub ingest工具添加

创建数据平台描述文件

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
  }
]

创建datahub摄取文件

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

2.3.更改datahub-gms的默认数据平台

只需对data_platform.json文件进行修改,添加自定义数据平台即可。
data_platform.json的内容如下,可以根据需要修改默认的数据平台或添加自定义数据平台。

注意:如果采用这种方式,则需要重新build docker images, 具体操作可以参见:metadata-service
【DataHub】 现代数据栈的元数据平台--如何添加自定义数据平台_第3张图片

参考

how to add-custom-data-platform
metadata-service

你可能感兴趣的:(【BigData】,【数据治理】,hive,hadoop,大数据,数据库,数据仓库)