atlas api介绍
atlas api 文档
http://atlas.apache.org/api/v2/ui/index.html
主要包含有 DiscoveryREST EntityREST GlossaryREST LineageREST RelationshipREST TypesREST 这6个模块
DiscoveryREST 模块
这个模块主要是包含了基本的搜索,可以通过属性搜索如GET /v2/search/attribute, 可以基于类型全文搜索如GET /v2/search/basic
eg: 搜索hive 库下一个叫default库名的元数据信息:curl -i -u user:password -X GET --header 'Content-Type: application/json;charset=UTF-8' http://ip:port/api/atlas/v2/search/basic? typeName=hive_db&query=default
这些可以灵活运用不带query时就是获取所有的db,query是包含的含义,只要包含default都会返回
EntityREST
主要包含Entity的增删改查接口 前缀就不写了和上面一样
eg:
1. 通过guid查一个Entity http://ip:21000/api/atlas/v2/entity/guid/37d7a640-cff6-4529-aa72-4a7eda5a1253
2.通过type 和 属性查一个entity: http://ip:21000/api/atlas/v2/entity/uniqueAttribute/type/hive_db?attr:qualifiedName=你的库名@你配置的namespace hive_db都是可以替换自己的类型的 属性必须具有unique属性
3.最难的一个就是怎么更新entity了
我以更新表的自定义属性为列 如下
通过api添加属性
curl -i -X POST -u name:password -H 'Accept: application/json' -H 'Content-Type: application/json' http://ip:port/api/atlas/v2/entity -d @updateEntity.json
updateEntity.json为一个文件 文件内容为你更新的json串 我测试了json串可以精简到如下格式,如果你要更新其他值加上自己的更新的json就行,如果你只想增加自定义属性这个就用下面的:
{
"entity": {
"typeName": "hive_table",
"attributes": {
"qualifiedName": "default.test1@cm",
"name": "test1",
"db": {
"guid": "37d7a640-cff6-4529-aa72-4a7eda5a1253",
"typeName": "hive_db"
}
},
"customAttributes": {
"test": "test" //给自定义属性加上test:test
}
}
}
其他值必须要有 用来定位是那个库的那个表
LineageREST 模块
主要用来获得关系
eg: 查询关系 如查找test1表的关系 表的guid为3fb23200-0302-4001-8a5d-8012896b1498 深度为3 direction 为输入输出BOTH为所有的含义
http://ip:port/api/atlas/v2/lineage/3fb23200-0302-4001-8a5d-8012896b1498?depth=3&direction=BOTH
其他模块
其他都是大同小异都可以根据上面的用法推出来,给大家自己思考使用