距离上次atlas发布新版本已经有一年的时间了,但是这一年元数据管理平台的发展一直没有停止。Datahub,Amundsen等等,都在不断的更新着自己的版本。但是似乎Atlas在元数据管理,数据血缘领域的地位一直没有动摇。
最近Atlas终于迎来又一次大的更新,发布了全新的2.2.0版本。
首先来了解一下这个版本。
Apache Atlas 2.2 有哪些新功能?
- 分类传播任务 : 分类传播将作为后台任务处理 (AtlasTask)
- 重新索引:添加重新索引作为 JAVA_PATCH 的一部分
- 模型更改:创建 JAVA_PATCH 以向现有实体添加新的父类型
- 导出服务:在 Atlas 导出 API 中添加了对业务元数据的支持
- Admin/AtlasTask API : 添加了对 admin/task API 的 HA 支持
- 实体定义:提供了向已存在实体定义添加强制性属性
增强功能
- DSL 搜索:添加了对词汇表术语和关系的支持,添加了对空属性值的支持,现在使用 Tinkerpop GraphTraversal 而不是 GremlinScriptEngine 来提高性能,添加了缓存机制来支持 DSL
- Atlas Python 客户端:重构和增强的 Atlas Python 客户端,支持 Python 2.7
- 搜索:更新了*文本搜索处理器以支持 Elasticsearch,支持带有特殊字符的搜索文本,优化分页
- 批量词汇表导入:改进和增强的批量词汇表导入支持使用关系导入
- 性能:提高了 GraphHelper 的 guid 和 status getter 方法的性能
- 授权:增强 Atlas 授权,用于添加/更新/删除实体分类,“admin-audits”用于 Atlas Admin Audits 授权
- 通知:改进了 NotificationHookConsumer, 用于大消息的处理
- 导出/导入服务:增强的导出/导入服务以有条件地支持同步操作和导出条款
- Hive Hook:添加了对 HiveServer2 Hook 的支持
- Apache Flink:引入模型来捕获 Apache Flink 实体和关系
- GCP:引入模型来捕获 GCP 实体和关系
- 依赖升级:JanusGraph、elasticsearch、JQuery、Http core、Http Client、slf4j、log4j、ant、gremlin、Solr、groovy、netty、Kafka
- UI:修复了 Atlas Web UI 的一些问题,提高了大量分类和实体的情况下的加载速度
- Docker 镜像:增强了对 Docker 的支持
遇见Flink
Apache Flink:引入模型来捕获 Apache Flink 实体和关系
也就是说目前Atlas已经默认增加Flink可以接受Flink的元数据了,但是Flink并没有公布对atlas的支持,捕获并发送元数据这部分还是需要做一些的工作。
Atlas定义的Flink实体:
{
"entityDefs": [
{
"name": "flink_application",
"superTypes": [
"Process"
],
"serviceType": "flink",
"typeVersion": "1.0",
"attributeDefs": [
{
"name": "id",
"typeName": "string",
"cardinality": "SINGLE",
"isIndexable": true,
"isOptional": false,
"isUnique": true
},
{
"name": "startTime",
"typeName": "date",
"cardinality": "SINGLE",
"isIndexable": false,
"isOptional": true,
"isUnique": false
},
{
"name": "endTime",
"typeName": "date",
"cardinality": "SINGLE",
"isIndexable": false,
"isOptional": true,
"isUnique": false
},
{
"name": "conf",
"typeName": "map<string,string>",
"cardinality": "SINGLE",
"isIndexable": false,
"isOptional": true,
"isUnique": false
}
]
},
{
"name": "flink_process",
"superTypes": [
"Process"
],
"serviceType": "flink",
"typeVersion": "1.0",
"attributeDefs": [
{
"name": "id",
"typeName": "string",
"cardinality": "SINGLE",
"isIndexable": true,
"isOptional": false,
"isUnique": true
},
{
"name": "startTime",
"typeName": "date",
"cardinality": "SINGLE",
"isIndexable": false,
"isOptional": true,
"isUnique": false
},
{
"name": "endTime",
"typeName": "date",
"cardinality": "SINGLE",
"isIndexable": false,
"isOptional": true,
"isUnique": false
},
{
"name": "conf",
"typeName": "map<string,string>",
"cardinality": "SINGLE",
"isIndexable": false,
"isOptional": true,
"isUnique": false
}
]
},
{
"name": "flink_application_processes",
"serviceType": "flink",
"typeVersion": "1.0",
"relationshipCategory": "AGGREGATION",
"endDef1": {
"type": "flink_application",
"name": "processes",
"cardinality": "SET",
"isContainer": true
},
"endDef2": {
"type": "flink_process",
"name": "application",
"cardinality": "SINGLE"
},
"propagateTags": "NONE"
}
]
}'
当然Apache也在持续的推进:
感兴趣的同学可以关注 Flink-6757 关注最新的进展,相信很快就会有新的消息了。
Apache的一些计划