當Atlas遇見Flink——Apache Atlas 2.2.0釋出!

獨孤風發表於2021-08-24

距離上次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的一些計劃


相關文章