当Atlas遇见Flink——Apache Atlas 2.2.0发布!

2021-08-31 17:28:59 浏览数 (1)

距离上次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实体:

代码语言:javascript复制
{
  "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的一些计划

0 人点赞