zoukankan      html  css  js  c++  java
  • 当Atlas遇见Flink——Apache Atlas 2.2.0发布!

    距离上次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 的支持

    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的一些计划


    大数据流动 专注于大数据实时计算,数据治理,数据可视化等技术分享与实践。 请在后台回复关键字下载相关资料。相关学习交流群已经成立,欢迎加入~
  • 相关阅读:
    03-JS事件循环-宏任务与微任务
    10-Promise.all和Promise.race
    nodeJS-04
    nodeJS-03
    01-npm / npm install的过程 -nodemon 自动重启
    nodeJS-02
    nodeJS-01
    01-git
    比较运算符,in,instanceof——第十二级
    TCP(Transmission Control Protocol 传输控制协议)
  • 原文地址:https://www.cnblogs.com/tree1123/p/15178770.html
Copyright © 2011-2022 走看看