[AbutionGraph] 大規模準實時動態時序知識圖譜+AI平臺

作者 | Raini

出品 | 圖特摩斯(北京)科技有限公司 

 

AbutionGraph是什麼?

AbutionGraph是一種能對歷史和實時數據提供亞秒級別查詢的多維數據存儲與分析平臺

AbutionGraph支持低延時的數據攝取,靈活的數據探索分析,高性能的數據聚合,簡便的水平擴展。

高容錯的架構在發生代碼部署、機器故障以及其他產品系統遇到宕機等情況時,仍能夠保持100%正常運行,適用於數據量大,可擴展能力要求高的分析型查詢系統

在通用性方面,AbutionGraph不僅僅是一個圖數據庫,由於其自身的列式存儲設計,它同時可以做到兼容任何Hbase能做到的存儲實現,加上它具有多維屬性聚合的特性,也可以完全充當一個類似於Druid這樣的數據倉庫來使用。

它提供簡易靈活的Java/Python編程查詢語法,也提供功能強大的分佈式restAPI以實現負載均衡的遠程調用語句查詢。

AbutionGraph 具備完善的工具鏈組件和大數據AI生態,打通了時下多種最熱門的AI領域通用技術的對接壁壘,爲使用知識維度才具有的特徵屬性來構建機器學習應用提供了便捷通道,也爲知識存儲賦予了更多的可能性。

AbutionGraph 支持在百億大圖的基礎上,持續實時大吞吐的導入頂點和邊。AbutionGraph 是一個分佈式圖形數據分析平臺,也是一個時序數據庫,提供毫秒級的關聯關係查詢能力(OLTP)與時間序列維度自動聚合能力,同時可與 Hadoop、Spark 等大數據平臺無縫集成以進行離線分析(OLAP)。

 

AbutionGraph應用場景

隨着5G和垂直行業的成熟商用,網絡需要接入更多設備、處理海量數據、滿足低時延業務需求,傳統離線式圖形數據庫已不能很好滿足新業務需求,而AbutionGraph可爲5G下的物聯網應用提供準實時的關聯分析功能。幫助傳統行業向大數據+AI轉型,eg.銀行、電信、保險、證券、法院、物流、財稅、醫療、科技,在這些行業中存在超大量的聯繫型數據,可使用知識圖譜技術來解釋與表達,實現更智能化的業務管理,諸如:

  • 風險預測
  • 欺詐鑑別
  • 運營監控
  • 流失預警
  • 傳感監控
  • 精準營銷
  • 智能推薦
  • 新客挖掘
  • 智慧城市
  • 問答助手
  • 點擊流分析(web和移動分析)
  • 供應鏈分析(製造指標)
  • 數字營銷/廣告分析
  • 商業智能/聯機分析處理

在這些應用場景裏,AbutionGraph與別的圖形技術最大的區別是能提供不一樣的見解,因其多維度實體與關係的設計,我們可以在一個節點上分別存儲具有不同聚合區間的多個維度,每個維度將可以含有任意多的屬性信息。AbutionGraph中的每個點和邊可以同時作爲計算和存儲的並行處理單元,通過這種方式,圖不再是靜態的數據存儲集合,而是一個大規模實時多維度聚合的並行處理引擎。這使得單一的圖形屬性變得易區分和表達更加豐富的內容。

 

AbutionGraph技術優勢

AbutionGraph的核心架構結合了數據倉庫,時間序列數據庫和圖形矩陣存儲的創意,並加入大規模實時處理與計算架構,它的一些主要特點是:

  1. 列式的陣列存儲格式。AbutionGraph底層使用列式數據存儲,這與Apache Druid、Hbase很相似,在此基礎上提供面向列的動態分佈式維度數據存儲模型存儲,意味着它只需要加載特定的查詢即可快速定位到所需的列,這爲僅查看幾列的查詢提供了巨大的速度提升。在數據量不斷龐大時,自動將數據圖打散爲很多的小圖分散在集羣中,以此來滿足超大規模的圖形存儲要求的同時,不會因爲圖形不斷變大而影響查詢速度,此外,每列都針對其特定數據類型進行了優化,支持快速掃描和聚合。
  2. 可擴展的分佈式系統。AbutionGraph通常部署在數十到數百臺服務器的集羣中,可以提供數百萬條記錄/秒的攝取率,保留數萬億條記錄,以及亞秒級到幾秒鐘的查詢延遲。
  3. 大規模並行處理。AbutionGraph可以在整個集羣中並行處理查詢。AbutionGraph進程類型都可以獨立配置和擴展,從而在集羣上提供最大的靈活性。這種設計還提供了增強的容錯性,一個組件的中斷不會立即影響其他組件。
  4. 實時或批量採集。AbutionGraph可以實時流式採集數據(採集的數據可立即用於查詢)或批量採集。
  5. 自愈,自平衡,易於操作。作爲運營商,要將羣集擴展或縮小,只需添加或刪除服務器,羣集將在後臺自動重新平衡,無需任何停機時間。如果任何AbutionGraph服務器發生故障,系統將自動繞過損壞路由,直到可以更換這些服務器。AbutionGraph旨在全天候運行,無需任何原因計劃停機,包括配置更改和軟件更新。
  6. 容錯架構,不會丟失數據。一旦AbutionGraph採集了您的數據,副本就會安全地存儲在HDFS文件系統中。即使所有AbutionGraph服務器都出現故障,您的數據也可以使用Schema來從深層存儲中恢復。
  7. 用於快速過濾的索引。AbutionGraph使用Roaring壓縮的bitmap索引來創建索引,這些索引可以跨多個列進行快速過濾和搜索,特別是對於一些時間聚合的維度,RoaringBitmap可以快速的檢索到這些屬性。
  8. 基於時間的分區。AbutionGraph首先按時間劃分數據,並且可以基於其他字段進行額外劃分。這意味着基於時間的查詢將僅訪問與查詢的時間範圍匹配的分區。這導致基於時間的數據的顯着性能改進。
  9. 元素基數算法。AbutionGraph包括用於在任意的聚合實體與關係維度上運用近似count-distinct的算法,近似排序以及近似直方圖和分位數的計算的算法。這些算法提供有限的內存使用,並且通常比精確計算快得多。對於精度比速度更重要的情況,AbutionGraph還提供精確的時間集合count-distinct以及精確的時間集合排序。
  10.  跨圖-多圖融合查詢。AbutionGraph允許您對多個圖同時查詢,並執行圖操作。
  11.  用戶隔離。 AbutionGraph允許創建多個用戶,每個用戶只具有管理和查看自己創建的圖的權限。
  12.  在採集時自動彙總。AbutionGraph可選擇在採集時支持數據彙總。提前預聚合數據,可以節省大量存儲成本並提高性能。
  13.  分佈式集羣緩存管理系統。在集羣模式下,AbutionGraph可以對分佈式Web圖實例進行實時的資源使用率即負載率查看,以更清晰的可視化方式瞭解集羣健康狀況。
  14.  13大類60種圖挖掘算法在OLAP的場景中,AbutionGraph深度整合了Spark的圖計算框架GraphX和GraphFrame,並基於此實現了一個包含50+前沿通用的圖算法,涵蓋13個技術領域(實體分類、實體聚類、圖形粗化、社區劃分、網絡分層、最小生成樹、重疊社區檢測、最短路徑計算、節點屬性計算、關係屬性計算、網絡屬性計算)的圖算法庫AbutionGCS,足以滿足常規性分析需求。通常情況下,執行圖形算法比較耗時和耗資源,智能的任務機制可以方便的查看圖計算任務進度並進行任務管控。靈活的自定義算法使用多少集羣資源,將有效的避免計算任務過重而搶佔其它服務的資源。待圖形算法運行完成後,AbutionGraph會自動將結果生成新圖形保存回AbutionGraph中,也即可查詢。
  15.  全AI生態框架集成在已使用Spark作爲大規模機器學習框架的前提下,您可以直接將AbutionGraph中的圖形數據抽取到Spark DataFrame中,且不用關心元素維度屬性是否已經聚合,AbutionGraph支持將已聚合的和未聚合的維度數據混合抽取到一個DataFrame中,您可以使用這些維度的屬性作爲機器學習特徵進行模型訓練。您也可以將圖形數據送到BigDL、SparkML、Deeplearning4j中訓練一些神經網絡模型。而對於使用Python系的AI用戶,我們可以使用AbutionGraph的PythonAPI將圖形數據對接到TensorFlow、PyTorch等深度學習框架中。

 

AbutionGraph適合的技術需求

AbutionGraph適合於以下場景:

  • 插入頻繁,但很少更新。
  • 大多數查詢都是聚合和報告性質的查詢(“group by”查詢)以及搜索和掃描查詢。
  • 查詢延遲要求爲100毫秒到幾秒。
  • 數據中有一個時間屬性(AbutionGraph包括具體與時間相關的優化和設計選擇),期望做時間序列分析。
  • 有多個業務圖,希望做合併查詢但不影響各自存儲。
  • 有高基數數據列(例如URL,用戶ID),需要對它們進行快速計數和排名。
  • 您希望從Flink(Kafka、MQ),HDFS,文件或對象存儲中加載數據。
  • 您希望使用圖關係屬性作爲機器學習特徵
  • 您希望構建一個在線分析系統
  • 您希望構建一個平臺可能是:知識圖譜+數據倉庫、知識圖譜+實時數據流、知識圖譜+Spark、知識圖譜+AI、知識圖譜+實體與關係多維存儲..

AbutionGraph不適用於以下場景:

  • 需要使用主鍵對現有記錄進行大規模低延遲更新。AbutionGraph支持流式插入,但不支持流式更新(支持少量更新),因爲AbutionGraph是一個實時聚合圖數據庫,更新可能會比較難以控制屬性的聚合方式,但是非聚合的實體或關係維度是可以批量更新的。
  • 需要構建一個離線報告系統,其中查詢延遲不是很重要。
  • 你想做big joins(將一個超大事實表連接到另一個超大事實表),多圖合併後運行幾度鄰居查詢等,大規模跨圖查詢可能需要花費較長的時間。

 

AbutionGraph認知圖譜分析平臺架構

知識圖譜(Knowledge Graph)的概念由谷歌2012 年正式提出,旨在實現更智能的搜索引擎,並且於2013 年以後開始在學術界和業界普及,作爲人工智能技術的重要組成部分,並在智能問答、情報分析、反欺詐、個性化推薦等智能信息服務應用中發揮重要作用。知識圖譜提技術提供了一種更好的組織、管理和理解互聯網海量信息的能力,將互聯網的信息表達成更接近於人類認知世界的形式,其本質上是一種叫做語義網絡(Semantic Network)的知識庫,即具有有向圖結構的一個知識庫,其中圖的結點(Vertex)代表實體(Entity),而圖的邊代表實體之間的各種語義關係,比如說兩個實體之間的相似關係。

現在大部分知識圖譜平臺還停留在數據圖譜(將數據抽象成實體關係圖)上,它僅僅是將每一條數據變換爲一個不同的表現形式,歷史數據依然是“無生命力”的存儲在那。知識圖譜不僅要有知識支撐,還應該基於知識生成知識,要了解我是誰,我維繫着多少的人際關係,我的人脈階層分佈是怎樣,每天/每週通話了多少人、時長統計各爲多少等,這些知識是從數據圖譜推理而來多維認知,從而把單一的數據維擴展爲信息豐富的多維知識圖譜,它是實時動態變化的圖譜。AbutionGraph中的每個點和邊可以同時作爲計算和存儲的並行處理單元。通過這種方式,圖不再是靜態的數據存儲集合,而是一個大規模並行處理引擎。AbutionGraph通過充分利用多核CPU和內存計算,在每個點和邊上執行並行計算,實時更新各個維度上的統計屬性,真正做到從數據中推理認知

目前知識圖譜行業其實還處於一個高速發展的初期,但行業趨勢是隨着5G和垂直行業的成熟商用,網絡需要接入更多設備、處理海量數據、滿足低時延業務需求,傳統離線式圖形數據庫已不能滿足新業務需求。與其他一些新的圖形數據庫不同,AbutionGraph的側重點旨在儘可能靈活且快速有效的構建分析平臺上,提供通用的Paas服務能力,建設端到端的實時圖形分析平臺,而不是簡單地將其作爲應用程序生成數據的可伸縮持久層。

AbutionGraph具有多進程、分佈式體系結構,從而與時下流行的衆多大數據框架天然結合,被設計成知識圖譜生態友好且易於操作的平臺。

圖特摩斯科技基於知識圖譜的智能認知中臺生態概覽

AbutionGraph知識圖譜的總體架構如圖所示。整個架構圖主要分爲四個部分:

第一個部分是知識獲取(獲取層),主要闡述如何從非結構化、半結構化、以及結構化數據中獲取知識。

第二部是數據融合(數據層),主要闡述如何將不同數據源獲取的知識進行融合構建數據之間的關聯。

第三部分是知識計算層(計算層),這一部分關注的是基於知識圖譜的計算功能以及基於知識圖譜的應用。

第四部分是知識應用層(能力層),這一部分講述知識圖譜的AI生態系統基於AbutionGraph提供的基礎知識充分運用其能力而產生若干的行業領域應用。

 

AbutionGraph可以幫我解決哪些問題?

 

 

文章來源:北京圖特摩斯科技有限公司 (轉載請註明)

官方網站:www.thutmose.cn

知識圖譜與圖挖掘技術QQ交流羣2:529757057

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章