与V2 API阿帕奇地图集更新类型

问题描述 投票:0回答:1

有没有人成功更新使用curl和V2 REST API中的Apache阿特拉斯一个类型?

例如:我会尝试添加字段到rdbms_table类型,如:

    {
        "name": "business_contact_info",
        "typeName": "string",
        "isOptional": true,
        "cardinality": "SINGLE",
        "valuesMinCount": 0,
        "valuesMaxCount": 1,
        "isUnique": false,
        "isIndexable": false,
        "includeInNotification": false
    }

我试图解决这个命令几种解决方案:

curl -u username:password -d @./typedef-rdbms_table.json -X PUT http://c7402.ambari.apache.org:21000/api/atlas/v2/types/typedefs -H ‘Content-Type:application/json; charset=UTF-8’

用JSON文件看起来像:

{
  "classificationDefs" : [],
  "entityDefs": [
   {
    "category": "ENTITY",
    "guid": "ef3d3dd6-c2ac-4f0b-a566-9b8036c3b03b",
    "createdBy": "atlas",
    "updatedBy": "atlas",
    "createTime": 1541616267291,
    "updateTime": 1541616267291,
    "version": 1,
    "name": "rdbms_table",
    "description": "a table in an rdbms database (schema)",
    "typeVersion": "1.0",
    "attributeDefs": [
        {
            "name": "db",
            "typeName": "rdbms_db",
            "isOptional": true,
            "cardinality": "SINGLE",
            "valuesMinCount": 0,
            "valuesMaxCount": 1,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false,
            "constraints": [
                {
                    "type": "inverseRef",
                    "params": {
                        "attribute": "tables"
                    }
                }
            ]
        },
        {
            "name": "name_path",
            "typeName": "string",
            "isOptional": true,
            "cardinality": "SINGLE",
            "valuesMinCount": 0,
            "valuesMaxCount": 1,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false
        },
        {
            "name": "createTime",
            "typeName": "date",
            "isOptional": true,
            "cardinality": "SINGLE",
            "valuesMinCount": 0,
            "valuesMaxCount": 1,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false
        },
        {
            "name": "comment",
            "typeName": "string",
            "isOptional": true,
            "cardinality": "SINGLE",
            "valuesMinCount": 0,
            "valuesMaxCount": 1,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false
        },
        {
            "name": "type",
            "typeName": "string",
            "isOptional": true,
            "cardinality": "SINGLE",
            "valuesMinCount": 0,
            "valuesMaxCount": 1,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false
        },
        {
            "name": "contact_info",
            "typeName": "string",
            "isOptional": true,
            "cardinality": "SINGLE",
            "valuesMinCount": 0,
            "valuesMaxCount": 1,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false
        },
        {
            "name": "business_contact_info",
            "typeName": "string",
            "isOptional": true,
            "cardinality": "SINGLE",
            "valuesMinCount": 0,
            "valuesMaxCount": 1,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false
        },
        {
            "name": "quality_kpi",
            "typeName": "int",
            "isOptional": true,
            "cardinality": "SINGLE",
            "valuesMinCount": 0,
            "valuesMaxCount": 1,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false
        },
        {
            "name": "business_name",
            "typeName": "string",
            "isOptional": true,
            "cardinality": "SINGLE",
            "valuesMinCount": 0,
            "valuesMaxCount": 1,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false
        },
        {
            "name": "columns",
            "typeName": "array<rdbms_column>",
            "isOptional": true,
            "cardinality": "SET",
            "valuesMinCount": 0,
            "valuesMaxCount": 2147483647,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false,
            "constraints": [
                {
                    "type": "ownedRef"
                }
            ]
        },
        {
            "name": "indexes",
            "typeName": "array<rdbms_index>",
            "isOptional": true,
            "cardinality": "SET",
            "valuesMinCount": 0,
            "valuesMaxCount": 2147483647,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false,
            "constraints": [
                {
                    "type": "ownedRef"
                }
            ]
        },
        {
            "name": "foreign_keys",
            "typeName": "array<rdbms_foreign_key>",
            "isOptional": true,
            "cardinality": "SET",
            "valuesMinCount": 0,
            "valuesMaxCount": 2147483647,
            "isUnique": false,
            "isIndexable": false,
            "includeInNotification": false,
            "constraints": [
                {
                    "type": "ownedRef"
                }
            ]
        }
    ],
    "superTypes": [
        "DataSet",
        "Asset"
    ],
    "subTypes": []
   }
 ],
  "enumDefs" : [],
  "relationshipDefs" : [],
  "structDefs" : []
}

谢谢!

rest apache-atlas
1个回答
0
投票

Apache的阿特拉斯允许更新的typedef与可选属性。创建和更新类型定义可通过以下方式进行:

初始的typedef:POST:/ API /地图集/ V2 /类型/类型定义

{
    "entityDefs": [
        {
            "name": "test",
            "description": "test type",
            "superTypes": [
                "DataSet"
            ],
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "subject_area_name",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": true
                }
            ]
        }
    ]
}

添加可选属性:

{
    "name": "subject_area_id",
    "typeName": "string",
    "isOptional": true,
    "cardinality": "SINGLE",
    "isUnique": false,
    "isIndexable": true
}

PUT:/ API /地图集/ V2 /类型/类型定义

{
    "enumDefs": [],
    "structDefs": [],
    "classificationDefs": [],
    "entityDefs": [
        {
            "category": "ENTITY",
            "guid": "d711c846-06a4-4965-b490-f603e16ca29e",
            "createdBy": "admin",
            "updatedBy": "admin",
            "createTime": 1549344291502,
            "updateTime": 1549344291502,
            "version": 1,
            "name": "test",
            "description": "test type",
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "subject_area_id",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": true
                },
                {
                    "name": "subject_area_name",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "valuesMinCount": 0,
                    "valuesMaxCount": 1,
                    "isUnique": false,
                    "isIndexable": true,
                    "includeInNotification": false
                }
            ],
            "superTypes": [
                "DataSet"
            ],
            "subTypes": []
        }
    ],
    "relationshipDefs": []
}

这将更新与附加属性的类型。 qazxsw POI

© www.soinside.com 2019 - 2024. All rights reserved.