什么是TuGraph
TuGraph圖數據庫由螞蟻集團與清華大學聯合研發,構建了一套包含圖存儲、圖計算、圖學習、圖研發平臺的完善的圖技術體系,擁有業界領先規模的圖集群,解決了圖數據分析面臨的大數據量、高吞吐率和低延遲等重大挑戰,是螞蟻集團金融風控能力的重要基礎設施,顯著提升了欺詐洗錢等金融風險的實時識別能力和審理分析效率,并面向金融、工業、政務服務等行業客戶。
TuGraph特性
TuGraph是支持大數據量、低延遲查找和快速圖分析功能的高效圖數據庫。TuGraph也是基于磁盤的數據庫,支持存儲多達數十TB的數據。TuGraph提供多種API,使用戶能夠輕松構建應用程序,并使其易于擴展和優化。
它具有如下功能特征:
屬性圖模型
實時增刪查改
多重圖(點間允許多重邊)
多圖(大圖與多個子圖)
完善的ACID事務處理,隔離級別為可串行化(serializable)
點邊索引
混合事務和分析處理(HTAP),支持圖查詢、圖分析、圖學習
主流圖查詢語言(OpenCypher、ISO GQL等)
支持OLAP API,內置30多種圖分析算法
基于C++/Python的存儲過程,含事務內并行Traversal API
提供圖可視化工具
在性能和可擴展性方面的支持:
千萬點/秒的高吞吐率
TB級大容量
高可用性支持
高性能批量導入
在線/離線的備份恢復
TuGraph社區版
2022年9月,TuGraph單機版開源,提供了完備的圖數據庫基礎功能和成熟的產品設計,支持TB級別的數據規模,為用戶管理和分析復雜關聯數據提供了高效、易用、可靠的平臺。
TuGraph社區版于2022年9月開源,提供了完整的圖數據庫基礎功能和成熟的產品設計(如ACID兼容的事務、編程API和配套工具等),適用于單實例部署。社區版支持TB級別的數據規模,為用戶管理和分析復雜關聯數據提供了高效、易用、可靠的平臺,是學習TuGraph和實現小型項目的理想選擇。
TuGraph企業版
企業版對商業化功能支持更加完善,包括分布式集群架構,覆蓋探索、研發、服務、運維管理全生命周期的一站式圖平臺,在線、近線、離線的圖計算引擎,支持流式、大數據類數據源,多地多中心的部署形態,以及專家支持服務等。企業版是商業化解決方案的理想選擇。
核心功能
查詢語言
TuGraph 提供 Cypher 圖查詢語言,遵循OpenCypher標準。
支持Procedure嵌入
可插拔優化框架 各類優化功能
可擴展安全性檢查框架 對于cypher進行
存儲過程
當用戶需要表達的查詢/更新邏輯較為復雜(例如 Cypher 無法描述,或是對性能要求較高)時,相比調用多個 REST 請求并在客戶端完成整個 處理流程的方式,TuGraph 提供的存儲過程(Procedure)是更簡潔和高效的選擇。
從 3.5 版本開始,TuGraph 重新設計了新的存儲過程編程范式,支持定義標準的簽名和結果,支持POG編程。
TuGraph 支持 POG (Procedres on Graph Query Languages) 編程和 POG 庫,其中“Graph Query Languages”包含 Cypher 以及 制定中的 ISO GQL 等圖查詢語言。POG 庫提供在查詢語言中對用戶定義的存儲過程的訪問,打破了查詢語言和存儲過程之間的界限,擴展了查詢 語言的使用范圍。
這個文檔描述了 新的 Procedure 編程范式以及 POG。
數據導入導出
盡管TuGraph本身支持數據的插入,但批量導入能夠大幅提升的效率。導入的功能可以分為空庫導入(離線導入)和增量導入,前者指子圖是空的時候進行導入,額外的假設能夠大幅提升導入的性能,在 TuGraph 中,空庫導入和增量導入的吞吐率差了10 倍。在數據導出中,需要考慮導出數據的一致性,即是基于一個快照數據導出的。
TuGraph 可以通過 命令行工具lgraph_export 來對已經存放在TuGraph的圖數據進行數據導出,導出格式支持CSV和JSON。
備份恢復
TUGraph的備份在功能上可分為主動/定時、離線/在線、全量/增量備份,用盡量小的存儲和計算代價來完成備份。恢復功能可以恢復到最新的狀態,或者歷史標注的時間點,需要保證數據庫是一致的狀態。
數據預熱
TuGraph 是基于磁盤的圖數據庫,僅當訪問數據時,數據才會加載到內存中。因此在服務器剛開啟后的一段時間內,系統性能可能會由于頻繁的 IO 操作而變差。此時我們可以通過事先進行數據預熱來改善這一問題。
高可用
高可用是指通過通過集群配置,做到實時多副本數據熱備,在部分副本不用時,集群仍然能正常提供服務,TuGraph采用 RAFT 協議的多機熱備機制,能夠將 RPO 降低到接近 0 的程度。TuGraph 選擇在計算層進行數據同步,同步的對象是寫操作,通過 RPC 接口快速同步。TuGraph 的高可用集群采用主從模式,只有主節點處理寫請求,主從節點均能處理讀請求。主節點的寫請求處理需要同步到多于二分之一的總節點上,多數節點寫成功,該寫請求才算完成。
應用場景
金融領域
金融領域的實體主要涉及人、公司、賬戶、產品等,它們之間的關系包括交易關系、登錄關系、股權關系、雇傭關系等。這些實體構成了一張金融圖數據網絡。應用圖數據庫,我們可以從金融圖數據網絡里發掘出大量有用信息,幫助我們做出更準確的金融決策。
工業領域
在生產和制造過程中會產生大量異構數據,如何有效的組織和管理這些數據是工業大數據中最重要的問題之一。這些數據包括設計文檔、設備數據、仿真方案和結果、實驗結果、經驗文檔等,關系錯綜復雜。傳統的數據管理系統只能累積數據,而查找相關材料則往往力不從心。使用圖模型,將這些不同類型的數據組織成一張網絡,就可以方便地瀏覽和查找數據。
智慧城市
隨著科技的發展,城市的智能化管理已成為一個大趨勢。智能化管理需要建立在良好的信息管理平臺之上,因此需要強大的系統軟件做支撐。在智能化城市管理系統中,智能化決策系統需要基于大量不同信息做出決策,這些信息包括各種拓撲信息(道路、管線),供求信息(電力輸送、飲用水供應、污水排放),環境信息(溫度、濕度、雨量)等。要將這些復雜的異構數據有機管理起來,并基于它們做出決策,就需要一個成熟的系統。傳統的數據管理系統基于關系數據模型,并不適合管理這種復雜異構數據。而使用圖模型就可以很好的解決這一問題。如果我們將這些不同的數據利用圖數據庫進行管理,就可以實現很多復雜的智能管理場景。
社會治理
社會治理包括公共安全、法律事務、輿論、網絡安全等多方面。社會治理是一個綜合性的、多系統聯動問題。它需要綜合大量數據、全局考量才能做出更好的決策。在這種多維度復雜數據問題上,圖數據模型可以提供更好的適應性,從而為智能化的社會治理決策平臺提供堅實的基礎。
互聯網
人—人關系的社交網絡、人—商品的購買關系都能構成圖。通過分析這些網絡數據,我們可以為用戶提供更優質的服務,包括相關推薦、用戶信息歸集、重要用戶識別、垃圾用戶識別等。