張國威 于申 徐冰清





摘? 要:針對現有系統無法滿足對超大規模、高并發數據進行有效搜索的問題,以及為提升國元證券公司客戶數據系統中海量客戶委托、交易及資金流水數據的檢索性能,提出運用Elasticsearch大數據分布式搜索引擎技術來構建國元證券Elasticsearch數據集群,基于此架構對全量全周期的客戶歷史數據搜索進行實際測試。實驗結果表明,使用Elasticsearch技術能夠有效解決當前客戶大數據檢索的核心問題,各項指標均滿足用戶需求。
關鍵詞:國元證券;Elasticsearch技術;信息檢索
中圖分類號:TP39? 文獻標識碼:A? ? 文章編號:2096-4706(2023)08-0160-05
Abstract: In view of the problem that the existing system can not meet the requirements of effective search for super-scale and high-concurrency data, and in order to improve the retrieval performance of massive customer entrustment, transaction and capital flow data in the customer data system of Guoyuan Securities, it is proposed to use the Elasticsearch big data distributed search engine technology to build the Elasticsearch data cluster of Guoyuan Securities, the full and full cycle customer history data search is actually tested based on this architecture. The experimental results show that using Elasticsearch technology can effectively solve the core problem in current customer big data retrieval, and all indicators meet user needs.
Keywords: Guoyuan securities; Elasticsearch technology; information retrieval
0? 引? 言
隨著移動互聯和智能設備的發展,金融行業的業務場景和服務進一步多樣化,客戶規模及數據資產呈指數級增長。客戶不再滿足于過去的基本功能使用,而是需要享受更全面的金融服務和極致的用戶體驗,對自身歷史投資記錄的及時全面回顧需求就是其中重要一項。
《證券期貨業科技發展“十四五”規劃》的發布,要求證券期貨行業持續打造一體化行業科技基礎設施,積極推動金融科技創新賦能業務發展,完善優化行業金融科技治理體制,構建科學的數據治理體系,打造先進的安全可控體系,提升證券期貨行業科技標準化程度,強化金融科技科研能力,是證券期貨行業視數字化轉型發展的重要里程碑,對行業數字金融高質量發展具有重要意義。國元證券股份有限公司(以下簡稱“國元證券”)基于國元點金APP長期積累的技術經驗,結合Elasticsearch分布式搜索引擎為客戶提供全量全周期歷史數據搜索服務,作為提升服務能力與優化客戶體驗的一項重要課題。本文應用Elasticsearch探索在海量的復雜大數據環境中,在高吞吐量及高并發量條件下,性能持續可靠穩定,支持數據高速檢索的能力。
1? Elasticsearch系統介紹
Elasticsearch是用Java編寫的基于Apache Lucene的分布式搜索和的全文搜索引擎,可以擴展至上百臺物理服務器,處理PB級別的結構化或非結構化數據。具備實時搜索、可靠、穩定、極速的應用效果。這些特點與大數據企業對系統的靈活性和易于擴展需求相吻合,在其執行聚合、搜索和處理數據索引的能力支撐下,能夠支持實時大數據轉換、搜索查詢、文檔流程處理和相對高速的索引,能夠索引數字、地理坐標、日期和幾乎任何數據類型。
在數字化浪潮蓬勃發展的過程中,Elasticsearch已經被廣泛應用于不同行業的各類大數據搜索場景。宋斌偉(2022)等人將Elasticsearch系統應用在NginX日志分析中,管理網站運行實況,監控網站用戶訪問行為,建立了有效的智能監控系統[1]。Voit(2017)等人為解決匿名用戶登錄系統的驗證問題,利用Elasticsearch技術建立了一個全文搜索和可視化管理系統[2]。王強(2019)利用Elasticsearch優化完善證券交易系統日志數據采集平臺,解決了傳統數據庫無法管理系統日志的難題,通過ELK日志解決方案有效而快速地完成證券交易系統日志的采集、清洗和統一存儲,并實現了日志檢索告警和分析等功能[3]。劉宏宏(2019)以商業銀行服務器中產生的海量日志數據為基礎,結合銀行系統的特點和提升運維能力的需求,設計并實現了基于Elasticsearch系統的銀行系統智能運維平臺[4]。陶林(2020)利用Elasticsearch系統結合聚合支付方式,設計研發分布式電商平臺,提升了電商垂直搜索引擎精確性,增強聚合支付系統安全性,豐富了支付業務的可擴展性,提高了開發運維效率,保障了系統良好的高并發性能。系統運行穩定流暢,為用戶提供了良好的購物體驗[5]。王博(2019)研發企業數據篩選和分析管理系統,應用Elasticsearch實現對數據的動態篩選管理、關鍵詞查詢、用戶動態管理等功能[6]。
通過對已有文獻的研究綜述,相較于傳統關系型數據庫,Elasticsearch具有如下四項優勢[7-10]:
1)對海量數據執行近實時的處理能力,包括全文檢索、結構化檢索、數據分析。
2)對數據備份、數據遷移、故障恢復有高效的支持能力,性能穩定,安全可靠。
3)對自身性能監控、可視化管理及用戶安全校驗能力,管理平臺具備大量的性能監控指標以及權限驗證機制。
4)對API和擴展工具的支持能力,支持ELK(包括Elasticsearch、logstash、kibana)、filebeat等組件的聯合應用和開源工具的擴展使用。
1.1? Elasticsearch架構設計
國元證券Elasticsearch系統架構設計如圖1所示,面向未來可擴展的多種業務場景,支持數據源滿足多種數據源的接入需求,將開源大數據系統kafka“削峰填谷”的技術能力與ELK架構相結合,確保數據采集、清洗、傳輸、存儲的穩定性和一致性,由自研限流模塊實現對訪問用戶的權限管理和搜索業務的標準化管理。
1.2? Elasticsearch集群及索引評估
國元證券結合Elastic官方最佳實踐經驗,憑借自身對大數據技術的專業能力,配置試驗資源,實施集群規劃工作。在大數據應用領域,科學合理的Elasitcsearch集群評估規劃,是集群持續穩定運行的根本保障,也是大數據搜索的堅實地基,能夠長期保證集群的高可用和高穩定性。首先,根據客戶歷史數據搜索場景進行集群規模評估,搭建實驗環境,包括計算資源、存儲資源和節點數量等。存儲容量公式為:
存儲容量=源數據容量×(1+副本數量)×2.2
其次,依據現有數據量、單日增長率以及索引配置評估實踐準則,完成集群的索引配置評估,特別是定期滾動索引的計劃,保證控制單個索引的大小,提升讀寫性能。避免單個索引過大,影響故障恢復的時間和快照備份恢復的時間。
1.3? Elasticsearch容量規劃及索引建模
1.3.1? 容量規劃
課題研究環境Elasticsearch集群采用相對簡單的水平擴展模式,未采用讀寫分離、冷熱分離架構,在相對低配環境下獲得試驗結果。為實際生產環境中,采用更高配的分離架構模式,提供有效的性能參考。
容量規劃與集群調優方面,以研究環境數據量模擬長周期的搜索場景為基礎,結合Elastic官方推薦的內存磁盤比為規劃標準,即搜索類比例為1/16,日志類為1/48,實驗環境為數據搜索環境內存磁盤比取1/16。在數據寫入Elasticsearch的過程中會在原有數據的基礎上產生變化,該項為凈膨脹系數,取決于數據類型,實驗環境采用官方建議系數1.3。容量規劃公式為:
總數據量=每日原始數據量×保留天數×凈膨脹系數×(副本數+1)
磁盤存儲規模=總數據量×1.2
數據節點數量=磁盤存儲規模÷單節點的數據量+1
數據節點數量=(磁盤存儲規模÷每個數據節點的內存量÷內存磁盤比)+1
1.3.2? 索引建模
索引設計是本研究的關鍵核心工作之一,索引設計的能力關系到集群的穩定性、資源的最大利用率及搜索支持能力。Elasticsearch是面向文檔的技術體系,文檔是索引和搜索的基本單位。文檔以類型來分組,類型包含若干文檔。一個或多個類型存在于同一索引中,索引是更大的容器。索引設計包括索引的存儲量規劃、分片數、讀寫情況、副本數、字段類型、可擴展參數、索引生命周期管理等多方面。由于系統每日產生客戶委托、交易及流水數據,需配合索引生命周期管理,保證索引處于活動狀態,能夠更新和查詢。包括warm階段,該階段的索引不支持更新操作,但允許被查詢檢索。cold階段,該階段的索引不支持更新操作,允許少量的查詢,查詢速度較warm階段緩慢。frozen階段,該階段的索引不允許更新操作,查詢量較少。為便于索引管理,索引建模充分設計索引生命周期管理。索引分盤是Elasticsearch搜索引擎數據分布式存儲的基本單元,索引設置多個分片后,可以將數據存儲在不同的物理設備上。分片的劃分結果對索引及搜索會有至關重要的影響。在分布式系統中,分片都能夠處理數據的寫入和查詢請求。實驗環境在設置索引分片數,主要因素是包括,控制分片包含的客戶歷史數據條數,設置不超過4億條,避免搜索性能下降。單個分片存儲數據量在最大不超過30 GB。索引建模過程中,依據索引預計承載的最大數據規模及單個分片容量確定主分片個數,保證分布式搜索的優勢。因實驗環境存儲空間限制,為提升數據可靠性,設置副本分片為1。實驗環境模仿真實生成環境采用索引模板設計方式,用索引模板管理索引的參數設置(settings)和索引映射(mapping),在創建新索引時,指定對應的模板名,直接調用已經定義好的模板中的設置和映射。根據研究需要,在實驗環境創建歷史委托索引、歷史成交索引、歷史資金流水索引,其中歷史委托索引字段如表1所示、歷史成交索引字段如表2所示、歷史資金流水索引字段如表3所示。
1.4? 檢索實現
傳統數據庫執行全文檢索通過like模糊匹配,存在以下三項問題,一是無法使用數據庫索引,需要進行全表掃描,搜索性能差,以試驗環境5年歷史數據為例,數據條目數億規模,如在當前生產環境中搜索,會產生較大的搜索延時。二是搜索匹配度不精準,只能實現模糊匹配,不能完全滿足復雜搜索需求,模糊匹配無法滿足客戶代碼、證券代碼、價格等的精度搜索。三是無法實現文檔與搜索條件的匹配相關性。將原數據由關系型數據庫采集存儲至Elasticsearch中,采用倒排索引技術將被用來存儲在全文搜索下某個單詞,在一個文檔或者一組文檔中的存儲位置的映射。通過倒排索引,可以根據單詞快速獲取包含這個單詞的文檔列表,滿足指數級規模的數據搜索需求,解決、精準匹配、搜索時效性的核心需求。通過postman工具執行對研究標的歷史委托、歷史成交及歷史資金流水的搜索測試用例,得到研究結果。
2? 系統實現
基于Elasticsearch系統實現的實驗服務器硬件配置如表4所示。
其中Elasticsearch部署版本為8.2.0,Elasticsearch分片副本數為1個,Elasticsearch分片數為76個。
作者采用模擬2017年7月至2022年7月近五年周期歷史委托、歷史成交、歷史資金流水數據,考慮一定的業務增長量,確定測試數據量為歷史委托數據1.50億條、歷史成交數據8.25億條、歷史資金流水數據11.15億條,測試結果如表5所示。
采用AB(apache bench)測試工具做壓力測試,測試過程中CPU使用率平均1%~9%、內存占用率最高在65%,I/O等待時間2~3秒。以雙節點,各40 000最大并發數,執行并發測試,測試過程中的系統和JVM資源消耗情況如圖2至圖6所示。
測試結果表明,索引和搜索速度均超過試驗設定的最大值,能夠滿足在合理容量規劃下的持續使用性能需要,為實際生產部署提供了有效的數據參考。
3? 結? 論
本文應用了Elasticsearch大數據技術,實現了對國元證券客戶海量數據的極速檢索應用能力的研究,解決了國元證券對全量全周期客戶大數據極速搜索的技術需求,大幅度提高了信息檢索效率,獲得了兩方面的實證效果:
1)服務標準化:對采集的源數據信息進行合理的清洗轉換,嚴格設計客戶歷史信息有關索引,實現數據的規范存儲,以標準接口對外提供信息檢索服務。
2)搜索極速化:與傳統關系型數據庫相比,在Elasticsearch分布式搜索引擎技術的支持下,對客戶長周期規模數億級別數據的檢索用時顯著減省。由于實驗環境資源配置有限,仍需在生產系統中進行跟蹤驗證。隨著各類數據的不斷更新,國元證券將基于Elasticsearch建設集中式搜索平臺,對業務管理、終端客戶提供通用、高效、快捷的檢索服務,下一步將在包括日志分析、指標監控、信息安全、機器學習等領域展開廣泛的研究。
參考文獻:
[1] 宋斌偉,鄧汪濤,馬聘犇,等.基于Elasticsearch的Nginx日志分析平臺的研究與實現 [J].現代信息科技,2022,6(6):1-7+14.
[2] VOIT A,STANKUS A,MAGOMEDOV S,et al. Big Data Processing for Full-Text Search and Visualization with Elasticsearch [J].International Journal of Advanced Computer Science and Applications,2017,8(12):76-83.
[3] 王強.證券交易系統日志采集分析平臺的設計與實現 [D].南京:東南大學,2019.
[4] 劉宏宏.基于ES的銀行系統智能運維平臺的設計與研究 [D].蘭州:蘭州大學,2019.
[5] 陶林.基于ElasticSearch與聚合支付的分布式電商平臺的設計與實現 [D].武漢:華中師范大學,2020.
[6] 王博.基于ElasticSearch的科技型企業數據篩選與分析管理系統 [D].濟南:山東大學,2019.
[7] KUC R,ROGOZIN'SKI M. Elasticsearch Server [M]. [s.n.]:Packt Publishing,2013.
[8] DIVYA M S,GOYAL S K. ElasticSearch:An Advanced and Quick Search Technique to Handle Voluminous Data [J].Compusoft,2013,2(6):171-175.
[9] Paro A. Elasticsearch Cookbook [M]. [s.n.]:Packt Publishing,2021.
[10] Kuc R,Rogoziński M. Mastering ElasticSearch [M]. [s.n.]:Packt Publishing,2013.
作者簡介:張國威(1971—),男,漢族,安徽合肥人,國元證券金融科技部總經理、金融科技創新實驗室主任、網絡金融部總經理,本科,研究方向:數字化轉型、財富管理;于申(1986—),男,漢族,安徽宿州人,國元證券金融科技部經理助理,金融科技創新實驗室成員,系統規劃與管理師、中級經濟師,碩士研究生,研究方向:數字化轉型、人工智能;徐冰清(1991—),女,漢族,安徽宿州人,國元證券金融科技創新實驗室成員,碩士研究生,研究方向:數字化轉型、人工智能。