Elasticsearch企业级搜索在国元证券的应用研究

2023-06-25 21:00张国威于申徐冰清
现代信息科技 2023年8期
关键词:分片

张国威 于申 徐冰清

摘  要:针对现有系统无法满足对超大规模、高并发数据进行有效搜索的问题,以及为提升国元证券公司客户数据系统中海量客户委托、交易及资金流水数据的检索性能,提出运用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—),女,汉族,安徽宿州人,国元证券金融科技创新实验室成员,硕士研究生,研究方向:数字化转型、人工智能。

猜你喜欢
分片
上下分片與詞的時空佈局
利用状态归约处理跨分片交易的多轮验证方案①
物联网区块链中基于演化博弈的分片算法
降低跨分片交易回滚概率的多轮验证方案
提升分片规模和有效性的多轮PBFT验证方案
分片光滑边值问题的再生核方法
CDN存量MP4视频播放优化方法
基于SDN的分片网络资源编排系统设计
基于模糊二分查找的帧分片算法设计与实现
大尺寸钢衬分片制安工艺研究