CN113535673A - 生成配置文件及数据处理的方法和装置 - Google Patents

生成配置文件及数据处理的方法和装置 Download PDF

Info

Publication number
CN113535673A
CN113535673A CN202010306470.6A CN202010306470A CN113535673A CN 113535673 A CN113535673 A CN 113535673A CN 202010306470 A CN202010306470 A CN 202010306470A CN 113535673 A CN113535673 A CN 113535673A
Authority
CN
China
Prior art keywords
field
database cluster
data
storage
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010306470.6A
Other languages
English (en)
Other versions
CN113535673B (zh
Inventor
何悦扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Zhenshi Information Technology Co Ltd
Original Assignee
Beijing Jingdong Zhenshi Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Zhenshi Information Technology Co Ltd filed Critical Beijing Jingdong Zhenshi Information Technology Co Ltd
Priority to CN202010306470.6A priority Critical patent/CN113535673B/zh
Publication of CN113535673A publication Critical patent/CN113535673A/zh
Application granted granted Critical
Publication of CN113535673B publication Critical patent/CN113535673B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了生成配置文件及数据处理的方法和装置,涉及计算机技术领域。该生成配置文件方法的一具体实施方式包括:根据监控数据和线上请求日志,确定字段对应的查询率特征向量;基于聚类算法,根据查询率特征向量对字段进行分类处理,获得至少一个字段集合;确定至少一个字段集合对应的存储数据库集群,以生成字段对应的字段存储位置配置文件。该实施方式能够达到自动生成字段与字段存储位置的配置文件的效果,实现整体资源的带宽和内存最优化,节省人力和时间成本,还可以利用配置文件对存储结构进行优化调整。

Description

生成配置文件及数据处理的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种生成配置文件及数据处理的方法和装置。
背景技术
在线广告业务发展迅速,是互联网公司的主要盈利来源之一。而广告商品信息服务作为在线广告系统中至关重要的一环,是属于系统中最底层的数据查询服务,不涉及外部调用和复杂计算,只和数据库交互进行数据查询,因此数据存储架构直接影响到广告商品信息服务的质量。
现有技术中,商品属性字段根据不同系统模块被粗略地划分到多个数据对象中,其中每一个数据对象存储在一个特定的数据库集群中。当新增字段时,需要结合字段的请求方及其访问量情况,人为指定添加到某一个数据对象中,也即指定了存储该字段的数据库集群,还要人为计算并评估该数据库集群的内存资源、QPS(全称为Queries Per Second,即每秒查询率)是否能承受、是否需要扩容等。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:(1)根据不同系统模块将字段粗略划分并存储至数据库集群中,会导致同一个数据库集群中,有的字段QPS小,有的QPS大,但是对于QPS小的字段,不需要那么多副本,导致冗余存储,浪费了存储资源;(2)由于在线服务解析请求时,只要请求中包含某个字段,就需要将整个字段序列码查询出来,而同一个数据库集群中,有的字段QPS小,有的QPS大,这样就会造成出带宽资源的浪费;(3)现有的凭人为判断将字段写到哪一个数据库集群的方式,主要是凭借经验和一些简单计算,既耗费人力和时间,又不一定是最优选择。
发明内容
有鉴于此,本发明实施例提供一种生成配置文件及数据处理的方法和装置,能够达到自动生成字段与字段存储位置的配置文件的效果,实现整体资源的带宽和内存最优化,节省人力和时间成本,还可以利用配置文件对存储结构进行优化调整。
为实现上述目的,根据本发明实施例的第一方面,提供了一种生成配置文件的方法。
本发明实施例的一种生成配置文件的方法,包括:根据监控数据和线上请求日志,确定字段对应的查询率特征向量;基于聚类算法,根据所述查询率特征向量对所述字段进行分类处理,获得至少一个字段集合;确定所述至少一个字段集合对应的存储数据库集群,以生成所述字段对应的字段存储位置配置文件。
可选地,所述根据监控数据和线上请求日志,确定字段对应的查询率特征向量,包括:确定服务请求方,然后查询所述监控数据,获得在预设时间周期内所述服务请求方的最大查询率;分析所述线上请求日志,得到所述字段被所述服务请求方请求访问的情况,获取所述字段对应的字段访问向量;根据所述服务请求方的最大查询率和所述字段对应的字段访问向量,计算所述字段对应的查询率特征向量。
可选地,所述基于聚类算法,根据所述查询率特征向量对所述字段进行分类处理,获得至少一个字段集合,包括:设置所述聚类算法的参数值;基于所述聚类算法,利用所述查询率特征向量将所述字段分成所述参数值个不相交的子集,得到所述至少一个字段集合;其中,所述参数值为所述至少一个字段集合的集合个数,以及所述至少一个字段集合的集合个数与所述存储数据库集群的集群个数相同。
可选地,所述设置所述聚类算法的参数值,包括:确定参数的至少一个可选取值;针对所述至少一个可选取值中的每个可选取值,确定所述每个可选取值对应的数据库集群性能;根据业务需求和所述每个可选取值对应的数据库集群性能,从所述至少一个可选取值中选择出所述参数值;其中,所述数据库集群性能包括以下选项中至少一项:数据库集群带宽值、数据库集群内存优化值。
可选地,在确定所述至少一个字段集合对应的存储数据库集群之后,所述方法还包括:读取当前数据存储的镜像数据,根据所述镜像数据,计算所述字段所占用的字节数;根据所述字段占用的字节数,计算所述存储数据库集群的字段存储量;根据所述存储数据库集群的字段存储量和单片内存量,计算所述存储数据库集群对应的集群单副本片数;根据所述存储数据库集群的最大承载查询率、所述存储数据库集群对应的集群单副本片数和所述集群单副本的可承载查询率,计算所述存储数据库集群对应的集群副本片数。
可选地,所述方法还包括:定期更新所述字段存储位置配置文件;以及在出现新的字段的情况下,更新所述字段存储位置配置文件。
为实现上述目的,根据本发明实施例的第二方面,提供了一种数据处理的方法。
本发明实施例的一种数据处理的方法,包括:接收数据处理任务,获取所述数据处理任务中的目标字段;基于根据本发明实施例的生成配置文件的方法生成的配置文件,查询所述目标字段对应的目标存储数据库集群;根据所述目标字段和所述目标存储数据库集群,执行所述数据处理任务。
可选地,所述数据处理任务包括以下选项中至少一项:数据查询任务、数据存储任务、数据更新任务。
可选地,所述根据所述目标字段和所述目标存储数据库集群,执行所述数据处理任务,包括:若所述数据处理任务为数据查询任务,则从所述目标存储数据库集群中,获取所述目标字段对应的字段值;根据所述数据查询任务,对所述目标字段对应的字段值进行拼接,得到拼接字段值,返回所述拼接字段值。
可选地,所述根据所述目标字段和所述目标存储数据库集群,执行所述数据处理任务,包括:若所述数据处理任务为数据存储任务,则根据所述数据存储任务,获取所述目标字段对应的字段值;将所述目标字段对应的字段值存储至所述目标存储数据库集群。
可选地,所述根据所述目标字段和所述目标存储数据库集群,执行所述数据处理任务,包括:若所述数据处理任务为数据更新任务,则从所述目标存储数据库集群中,查询所述目标字段对应的原始字段值;根据所述数据更新任务,获取所述目标字段对应的更新字段值;利用所述目标字段对应的更新字段值更新所述目标字段对应的原始字段值。
为实现上述目的,根据本发明实施例的第三方面,提供了一种生成配置文件的装置。
本发明实施例的一种生成配置文件的装置,包括:确定模块,用于根据监控数据和线上请求日志,确定字段对应的查询率特征向量;分类模块,用于基于聚类算法,根据所述查询率特征向量对所述字段进行分类处理,获得至少一个字段集合;生成模块,用于确定所述至少一个字段集合对应的存储数据库集群,以生成所述字段对应的字段存储位置配置文件。
可选地,所述确定模块还用于:确定服务请求方,然后查询所述监控数据,获得在预设时间周期内所述服务请求方的最大查询率;分析所述线上请求日志,得到所述字段被所述服务请求方请求访问的情况,获取所述字段对应的字段访问向量;根据所述服务请求方的最大查询率和所述字段对应的字段访问向量,计算所述字段对应的查询率特征向量。
可选地,所述分类模块还用于:设置所述聚类算法的参数值;基于所述聚类算法,利用所述查询率特征向量将所述字段分成所述参数值个不相交的子集,得到所述至少一个字段集合;其中,所述参数值为所述至少一个字段集合的集合个数,以及所述至少一个字段集合的集合个数与所述存储数据库集群的集群个数相同。
可选地,所述分类模块还用于:确定参数的至少一个可选取值;针对所述至少一个可选取值中的每个可选取值,确定所述每个可选取值对应的数据库集群性能;根据业务需求和所述每个可选取值对应的数据库集群性能,从所述至少一个可选取值中选择出所述参数值;其中,所述数据库集群性能包括以下选项中至少一项:数据库集群带宽值、数据库集群内存优化值。
可选地,所述生成模块还用于:读取当前数据存储的镜像数据,根据所述镜像数据,计算所述字段所占用的字节数;根据所述字段占用的字节数,计算所述存储数据库集群的字段存储量;根据所述存储数据库集群的字段存储量和单片内存量,计算所述存储数据库集群对应的集群单副本片数;根据所述存储数据库集群的最大承载查询率、所述存储数据库集群对应的集群单副本片数和所述集群单副本的可承载查询率,计算所述存储数据库集群对应的集群副本片数。
可选地,所述装置还包括更新模块,用于:定期更新所述字段存储位置配置文件;以及在出现新的字段的情况下,更新所述字段存储位置配置文件。
为实现上述目的,根据本发明实施例的第四方面,提供了一种数据处理的装置。
本发明实施例的一种数据处理的装置,包括:获取模块,用于接收数据处理任务,获取所述数据处理任务中的目标字段;查询模块,用于基于根据本发明实施例的生成配置文件的方法生成的配置文件,查询所述目标字段对应的目标存储数据库集群;执行模块,用于根据所述目标字段和所述目标存储数据库集群,执行所述数据处理任务。
可选地,所述数据处理任务包括以下选项中至少一项:数据查询任务、数据存储任务、数据更新任务。
可选地,所述执行模块还用于:若所述数据处理任务为数据查询任务,则从所述目标存储数据库集群中,获取所述目标字段对应的字段值;根据所述数据查询任务,对所述目标字段对应的字段值进行拼接,得到拼接字段值,返回所述拼接字段值。
可选地,所述执行模块还用于:若所述数据处理任务为数据存储任务,则根据所述数据存储任务,获取所述目标字段对应的字段值;将所述目标字段对应的字段值存储至所述目标存储数据库集群。
可选地,所述执行模块还用于:若所述数据处理任务为数据更新任务,则从所述目标存储数据库集群中,查询所述目标字段对应的原始字段值;根据所述数据更新任务,获取所述目标字段对应的更新字段值;利用所述目标字段对应的更新字段值更新所述目标字段对应的原始字段值。
为实现上述目的,根据本发明实施例的第五方面,提供了一种电子设备。
本发明实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明实施例的生成配置文件及数据处理的方法。
为实现上述目的,根据本发明实施例的第六方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本发明实施例的生成配置文件及数据处理的方法。
上述发明中的一个实施例具有如下优点或有益效果:生成配置文件的技术方案能够根据监控数据和线上请求日志,获得单位时间内每个字段被所有请求方查询的次数,接着利用聚类算法将被查询次数相似的字段划分成一类,避免现有技术中根据不同系统模块将字段粗略划分并存储至数据库集群,导致的冗余存储和浪费出带宽资源的问题,最后被划分为一类的字段对应一个数据库集群,达到自动生成字段与字段存储位置的配置文件的效果,实现整体资源的带宽和内存最优化,节省人力和时间成本,还有通过查询该配置文件可以直接得到每个字段的具体存储位置,进而可以利用配置文件对存储结构进行优化调整,还可以利用配置文件执行数据处理任务。
以及,数据处理的技术方案在获取到数据处理任务中,通过查询该配置文件可以直接得到数据处理任务中目标字段的具体存储位置,然后执行数据处理任务,实现直接利用配置文件执行数据处理任务,考虑到采用的配置文件可以达到系统的存储内存和出带宽最优,因此利用配置文件执行数据处理任务,能够提供数据处理任务的执行效率,给用户带来较好的体验。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的生成配置文件的方法的主要步骤的示意图;
图2是根据本发明实施例的生成配置文件的具体逻辑示意图;
图3是根据本发明实施例的生成配置文件的方法的主要流程的示意图;
图4是根据本发明实施例的数据处理的方法的主要步骤的示意图;
图5是根据本发明实施例的广告商品信息服务的架构示意图;
图6是根据本发明实施例的生成配置文件的装置的主要模块的示意图;
图7是根据本发明实施例的数据处理的装置的主要模块的示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在线广告业务发展迅速,是互联网公司的主要盈利来源之一。广告商品信息服务作为广告系统的一个重要基础服务,目的在于为广告系统内部其他模块提供商品维度的数据查询服务,包括商品基础信息和商品挖掘特征等,对广告的展现、点击、消费指标都起到了举足轻重的影响。在线广告系统由于业务场景复杂、数据量大、高并发以及低延迟等特点,对系统各个模块的性能都提出了非常高的要求。而广告商品信息服务是在线广告系统中至关重要的一环,必须保证系统稳定高可用、延时低、且能支持大数据量存储。广告商品信息服务是位于广告系统中底层的一项数据查询服务,不涉及外部调用和复杂计算,只和数据库交互进行数据查询,因此系统对存储架构的依赖非常重。可以说,数据存储的架构直接影响到广告商品信息服务的质量。
为了提高服务响应速度,在线广告平台一般会采用两种存储方案:(1)内存式数据库作缓存(如Memcache、Redis等)+磁盘数据库存储的方式,这种方式在部分情况下需要磁盘查询及缓存替换,耗时较高;(2)完全采用内存式数据库作为存储,这种方案容易导致内存数据库存储集群规模过大,特别对于高并发服务需要多副本的情况,会造成大量资源浪费,系统发展到后期受集群规模的限制,将面临存储资源瓶颈。其中,Memcache是一套分布式的高速缓存系统;Redis是一种可基于内存,亦可持久化的日志型、key-value数据库。
内存式数据库的读写性能是磁盘数据库无法比拟的,然而随着业务发展,商品数据量也快速膨胀。当前在线广告平台涉及的商品种类丰富、数量众多、商品属性也较多,特别是大型电商平台,比如京东、淘宝等,商品数量可达数十亿量级,商品属性达数百个之多。此外,大型在线广告系统的商品信息服务每秒访问量高达百万级别,为了应对这种高访问量,存储集群通常会部署若干副本,也即一主多从模式,这样既保证了数据的安全性,也起到了负载均衡的作用。
广告业务中的商品维度字段可以包括:基础属性、算法挖掘属性等,共上百个字段。而访问广告商品信息服务的模块众多,并不是所有模块都会用到商品维度的全部字段,每一个模块都有其固定访问的字段集合,因此可以将每一个模块访问的字段子集合抽象为一个数据对象,这样商品维度数据就有多个数据对象。现有技术中,商品维度字段根据不同系统模块被粗略地划分到多个数据对象中,其中每一个数据对象存储在一个特定的数据库集群中。当系统新增字段时,需要结合字段的请求方及其访问量情况,人为指定添加到某一个数据对象中,也即指定了存储该字段的数据库集群。同时还要人为计算并评估该数据库集群的内存资源、集群QPS是否能承受、是否需要扩容等。
现有技术中根据不同系统模块将字段粗略划分并存储至数据库集群中,会导致同一个数据库集群中,有的字段QPS小,有的QPS大,但是对于QPS小的字段,不需要那么多副本,导致冗余存储,浪费了存储资源;而且,由于在线服务解析请求时,只要请求中包含某个字段,就需要将整个字段序列码查询出来,但是同一个数据库集群中,有的字段QPS小,有的QPS大,这样就会造成出带宽资源的浪费;还有,现有的凭人为判断将字段写到哪一个数据库集群的方式,主要是凭借经验和一些简单计算,既耗费人力和时间,又不一定是最优选择。
为了解决上述问题,本发明实施例提供一种生成配置文件及数据处理的方法。其中,生成的配置文件是字段存储位置配置文件,即该配置文件提供了字段与字段存储位置的对应关系,因此通过查询该配置文件,就可以得到每个字段的具体存储位置,进而可以利用配置文件对存储结构进行优化调整,还可以利用配置文件执行数据处理任务,比如数据查询任务,可以通过查询配置文件,获取到某字段存储在某个数据库中,然后可以从该数据库中查询到该字段的具体字段值。图1是根据本发明实施例的生成配置文件的方法的主要步骤的示意图,如图1所示,生成配置文件的方法的主要步骤可以包括:
步骤S101,根据监控数据和线上请求日志,确定字段对应的查询率特征向量;
步骤S102,基于聚类算法,根据查询率特征向量对字段进行分类处理,获得至少一个字段集合;
步骤S103,确定至少一个字段集合对应的存储数据库集群,以生成字段对应的字段存储位置配置文件。
本发明实施例的生成配置文件的方法中,首先根据监控数据和线上请求日志,计算得到各个字段对应的查询率特征向量。其中,监控数据是指能够提供在线服务的监控数据,通过监控数据可以获得请求方访问数据库集群的具体情况,或者说是,通过监控数据可以获取请求方请求查询数据库集群的具体情况。线上请求日志是指每个请求方的具体请求记录,包括请求方请求访问的字段集合,因此通过线上请求日志,可以获得每个字段被所有请求方访问的情况,或者是每个字段被所有请求方查询的情况。字段对应的查询率特征向量,又称为字段对应的访问率特征向量,是指在单位时间内(如每秒、每分钟)字段被所有请求方查询或者访问的次数。
在获取到在单位时间内每个字段被所有请求方查询或者访问的次数,就可以利用聚类算法,对所有字段进行分类处理,将被所有请求方查询或者访问的次数相近的字段尽可能划分成一类,从而可以减少不必要的副本资源和出带宽消耗。其中,带宽是数据网络通信的概念。一般服务器带宽是指该服务器设备的网络连接的带宽,而网络连接是双向的,因此存在服务器发送网络方向的带宽和服务器从网络接收方向的带宽。前者是出带宽,后者是入带宽,本技术方案的出带宽指的是数据库集群的出带宽,也就是从数据库集群读取数据时,数据库集群返回数据的带宽,因为数据库集群中存储了很多个字段,但是不管业务上需要哪些字段,数据库集群的get命令都会把所有数据一起返回,因此会造成很多不必要的带宽占用,但是本技术方案中将被所有请求方查询或者访问的次数相近的字段尽可能划分成一类,这样就可以达到系统的存储内存和出带宽最优。
在将所有字段分类成至少一个字段集合后,一个字段集合就对应了一个数据库集群,这样就生成了字段对应的字段存储位置配置文件。比如说,有编号从1到100共100个字段,对这100个字段进行分类,得到5个字段集合,分别对应5个数据库集群。第1个字段集合包括字段1至字段15,对应数据库集群A;第2个字段集合包括字段16至字段45,对应数据库集群B;第3个字段集合包括字段46至字段55,对应数据库集群C;第4个字段集合包括字段56至字段80,对应数据库集群D;第5个字段集合包括字段81至字段对应数据库集群E。因此,确定每个字段集合对应的数据库集群,相当于是确定每个字段集合应该存储至哪个数据库集群中,比如对于字段1,存储至数据库集群A中。
需要注意的是,本发明实施例中数据库集群的部署模式采用主从模式,该模式是分布式应用中常用的灾备和容错方案,包括一个主本和多个副本,其中主本和副本所存储的数据相同,通过主从复制机制将主本的数据复制到副本。此外,主从模式的一个作用是备份数据,这样当一个节点损坏(指不可恢复的硬件损坏)时,数据因为有备份,可以方便恢复,另一个作用是负载均衡,所有客户端都访问一个节点肯定会影响数据库的工作效率,采用主从模式,那么查询操作就可以通过查询从节点来完成。
本发明实施例的生成配置文件技术方案中,能够根据监控数据和线上请求日志,获得单位时间内每个字段被所有请求方查询的次数,接着利用聚类算法将被查询次数相似的字段划分成一类,避免现有技术中根据不同系统模块将字段粗略划分并存储至数据库集群,导致的冗余存储和浪费出带宽资源的问题,最后被划分为一类的字段对应一个数据库集群,达到自动生成字段与字段存储位置的配置文件的效果,实现整体资源的带宽和内存最优化,节省人力和时间成本,还有通过查询该配置文件可以直接得到每个字段的具体存储位置,进而可以利用配置文件对存储结构进行优化调整,还可以利用配置文件执行数据处理任务。
生成配置文件的方法中,根据每个字段被访问或者查询的情况对字段进行分类,因此确定每个字段被访问或者查询的情况是本发明实施例的重要组成部分。作为本发明的一个可参考实施例,根据监控数据和线上请求日志,确定字段对应的查询率特征向量,可以包括:
步骤S1011,确定服务请求方,然后查询监控数据,获得在预设时间周期内服务请求方的最大查询率;
步骤S1012,分析线上请求日志,得到字段被服务请求方请求访问的情况,获取字段对应的字段访问向量;
步骤S1013,根据服务请求方的最大查询率和字段对应的字段访问向量,计算字段对应的查询率特征向量。
其中,服务请求方是指请求查询数据库的一方,如在广告业务系统中,需要调用商品信息服务的其他模块,即需要从商品信息服务中查询数据的其他模块。在步骤S1011中,可以首先确定出服务请求方,也就是可以首先确定需要调用商铺信息服务的模块。在上文中指出监控数据是指能够提供在线服务的监控数据,通过监控数据可以获得请求方访问数据库集群的具体情况,或者说是,通过监控数据可以获取请求方请求查询数据库集群的具体情况。因此,本发明实施例中,可以通过查询监控数据,得到在预设时间周期内服务请求方的最大查询率。比如,商品信息服务共接入了M个请求方,通过监控数据可以得到每个请求访前一天的最大QPS,记为样本集Q={q1,q2,…,qM}。
在步骤S1012中分析线上请求日志,即分析每个请求方的具体请求记录,得到每个字段被所有请求方访问的情况,或者是每个字段被所有请求方查询的情况。假设,商品信息服务共有N个字段,得到的字段访问向量集合记为R={r1,r2,…,rN},其中rN={rN,1,rN,2,…,rN,M},rN,M表示第M个请求访是否请求了第N个字段,也就是第M个请求方是否查询了第N个字段,rN,M=1代表请求,rN,M=0代表没有请求。
考虑到带宽和内存的浪费本质上是由于不同字段的QPS不同造成的,因此本发明实施例中需要将QPS相似的字段分为一类,且位于同一类的字段对应的数据库集群是相同的,就是说被分为一类的字段可以被存储至同一个数据库集群中。由于每个请求方具体的请求字段集合是固定的,比如说请求方S1请求访问的是编号为1、3和5的字段,请求方M2请求访问的是编号为6至15的字段。因此,本技术方案可以利用每个请求方的最大QPS,计算得到每个字段的查询率特征向量,也就是在单位时间内(如每秒、每分钟)字段被所有请求方查询或者访问的次数。具体的,字段的查询率特征向量集合记为X=R*Q,其中X={x1,x2,…xN},xN={xN,1,xN,2,…,xN,M}为第N个字段的查询率特征向量,xN,M为第M个请求方对第N个字段请求的查询率,也就是单位时间内第M个请求方查询第N个字段的次数。
本发明实施例中,通过分析监控数据和线上请求日志,确定每个字段被访问或者查询的情况,也就是确定字段对应的查询率特征向量,从而可以结合每个字段具体的访问情况生成字段存储位置配置文件,进而实现整体资源的带宽和内存最优化,节省人力和时间成本。
利用聚类算法对所有字段进行分类是生成配置文件的另一个重要组成部分,若能够将字段科学分类,那么生成的配置文件能够更加符合实际情况,从而可以进一步实现整体资源的带宽和内存最优。所以,作为本发明的再一个可参考实施例,基于聚类算法,根据查询率特征向量对字段进行分类处理,获得至少一个字段集合,可以包括:
步骤S1021,设置聚类算法的参数值;
步骤S1022,基于聚类算法,利用查询率特征向量将字段分成参数值个不相交的子集,得到至少一个字段集合。
聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为无监督学习。本技术方案中,聚类算法可以选择k均值聚类算法(即k-means clustering algorithm),其是最著名的划分聚类算法,由于简洁和效率使其成为所有聚类算法中最广泛使用的,k均值算法是根据某个距离函数反复把数据分入k个聚类中,给定一个数据点集合和需要的聚类数目k。本发明实施例中,参数值可以为k均值聚类算法中的k值,需要设置k值。值得注意的是,k值为划分后的至少一个字段集合的集合个数,也就是存储数据库集群的集群个数,比如有100个字段,划分为5个字段集合,那么得到的存储数据库集群的集群个数为5,也就是将100个字段分配到5个存储数据库集群中进行存储。
本发明实施例中,可以采用k均值聚类算法划分字段,目的是将所有字段划分为不相交的若干个子集,每个子集称为一个“簇”,算法思想是在同一特征空间里,距离较近的点应该在一个簇中,距离较远的点应该分布在不同的簇中,此处的距离可以是欧式距离、曼哈顿距离、闵可夫斯基距离等。
假设,对N个字段的样本集X使用k均值聚类算法进行聚类形成k个簇,记为C={C1,C2,…,Ck},其中Ck代表第k个数据库集群中应该存储的字段集合,算法的执行过程如下:
输入:设置的参数值k,字段的查询率特征向量集X={x1,x2,…xN};
执行过程:
(1)从X中随机选取k个字段的查询率特征向量,作为k个簇;
(2)计算C={C1,C2,…,Ck}的均值向量,记为{u1,u2,…,uk};
(3)repeated
(4)令Ci=φ,遍历所有样本;
(5)for j=1,2,…,N do
(6)计算字段样本xj与第i个簇的均值向量的相似度距离,记为dj,i
(7)如果dj,t=min(dj,1,dj,2,…,dj,k),则将样本xj划分到距离最近的那个均值向量ut所在的簇Ct中,即Ct=Ct∪{xi};
(8)end for
(9)for i=1,2,…,k do
(10)计算第i个簇Ci中的所有特征向量的均值向量ui';
(11)if|ui-u’i|>ε,then
(12)将当前簇的均值向量ui更新为u’i
(13)else
(14)保持当前簇的均值向量不变
(15)end if
(16)end for
(17)until当前均衡向量均更新
输出:簇划分C={C1,C2,…,Ck}
算法执行结束后,所有字段被划分为k个不相交的子集
{C1,C2,…,Ck},即第i个集群只存储字段集合Ci中的字段,得到的聚类结果集中,每一个字段被分配了一个簇的唯一标识,该簇的唯一标识代表了字段存储在哪一个集群中。
本发明实施例中提出了基于聚类算法对字段进行划分,可以将每一个字段存储到合适的数据库集群中,以实现整体资源的带宽和内存最优化。
可以看出,聚类算法中参数值的设置很重要,根据设置的参数值可以确定将字段划分为多少个字段集合,或者说,根据设置的参数值,可以确定数据存储需要多少个数据库集群。本发明实施例中,设置聚类算法的参数值,可以包括:确定参数的至少一个可选取值;针对至少一个可选取值中的每个可选取值,确定每个可选取值对应的数据库集群性能;根据业务需求和每个可选取值对应的数据库集群性能,从至少一个可选取值中选择出参数值。其中,数据库集群性能可以包括以下选项中至少一项:数据库集群带宽值、数据库集群内存优化值。
假设,参数k的取值范围为1到37,那么得到的可选取值为1至37共37个,分别计算每个可选取值对应的数据库集群性能,然后根据具体的业务需求,如k的增加,会导致带宽和内存的收益逐渐减小。极端情况下,如果每一个字段都分配一个数据库集群,带宽资源将完全没有浪费,但实际应用中,需要考虑到方案的可行性及存储系统的易维护性,比如最终参数值选择为3,也就是设置的数据库集群的个数为3,得到集群总体带宽优化41%,内存优化41%。
本发明实施例中数据库集群采用主从模式,主节点(即主库,或者主本)用于承接写流量,多个从节点(即从库,或者副本)用于分担在线服务的读流量。由于一个副本即可基本满足安全性要求,因此在确定集群副本数时,考虑的因素主要是负载均衡,即考虑副本的承载均衡。所以在确定存储数据库集群之后,还需要确定每个数据库集群的资源信息,也就是每个数据集群具有的副本个数和单副本个数,其中,副本个数是指一个数据库集群中具有的从库的个数,单副本个数是指每个副本中具有的单片的个数。具体方法可以包括:读取当前数据存储的镜像数据,根据镜像数据,计算字段所占用的字节数;根据字段占用的字节数,计算存储数据库集群的字段存储量;根据存储数据库集群的字段存储量和单片内存量,计算存储数据库集群对应的集群单副本片数;根据存储数据库集群的最大承载查询率、存储数据库集群对应的集群单副本片数和集群单副本的可承载查询率,计算存储数据库集群对应的集群副本片数。
其中,当前数据存储的镜像数据可以是指当前数据库集群的镜像数据,然后获取每个字段占用的字节数,比如通过Spark任务读入当前数据库集群的镜像数据,计算出各个字段所占用的字节数大小,Spark是一种开源集群计算环境,Spark启用内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
在获取到每个字段占用的字节数,以及确定每个字段对应的存储数据库集群,则可以根据字段占用的字节数,计算出存储数据库集群的字段存储量。接着,可以利用存储数据库集群的字段存储量和单片内存量,计算存储数据库集群对应的集群单副本片数,具体公式可以为:集群单副本片数=集群的字段存储量*2/集群单副本的内存存储量。
在获得到集群单副本片数之后,可以利用存储数据库集群的最大承载查询率、存储数据库集群对应的集群单副本片数和集群单副本的可承载查询率,计算存储数据库集群对应的集群副本片数,具体的计算公式可以为:集群副本片数=集群最大承载查询率/(集群单副本片数*集群单副本的可承载查询率)。其中,集群最大承载查询率可以通过在单位时间内字段被所有请求方查询或者访问的次数获得,本技术方案中在对字段进行分类时,是将被所有请求方查询或者访问的次数相近的字段划分在一起的,因此在获得字段对应的字段集合后,针对一个字段集合,可以选择在单位时间内字段被所有请求方查询或者访问的最大次数作为对应的存储数据库集群的最大承载查询率。
在确定至少一个字段集合对应的存储数据库集群之后,计算得到存储数据库集群的资源信息,这样就生成了配置文件。还需要注意的是,本发明实施例中,还可以对生成的配置文件进行更新,具体可以包括:定期更新字段存储位置配置文件;以及在出现新的字段的情况下,更新字段存储位置配置文件。
其中,定期更新字段存储位置配置文件是设置好更新周期,比如设置在每天的凌晨3点更新字段存储位置配置文件,需要注意的是,更新字段存储位置配置文件采用的监控数据和线上请求日志需要是最近的时间周期内的数据。在出现新的字段的情况下,更新字段存储位置配置文件,是指在有新的字段需要存储至数据库集群中,由于配置文件中不具有新的字段对应的存储位置,因此需要将新的字段的监控数据和线上请求日志加入,从而可以更新字段存储位置配置文件,且更新后的字段存储位置配置文件中,具有新的字段对应的存储位置。
图2是根据本发明实施例的生成配置文件的具体逻辑示意图。如图2所示,本发明实施例中可以通过在线服务监控数据和线上请求日式得到字段的聚类结果,也就是字段的分类结果,还可以通过获取Redis的数据镜像,获取到每个字段的字段存储大小,最后可以将字段存储大小和得到的聚类结果,得到字段分配数据及集群资源。其中,Redis相当于是当前数据库的数据存储情况,字段分配数据相当于是字段与对应的存储位置的映射关系。为了便于理解,接下来讲解生成配置文件的方法的具体流程。图3是根据本发明实施例的生成配置文件的方法的主要流程的示意图。如图3所示,生成配置文件的方法的主要流程可以包括:
步骤S301,确定服务请求方,然后查询监控数据,获得在预设时间周期内服务请求方的最大查询率;
步骤S302,分析线上请求日志,得到字段被服务请求方请求访问的情况,获取字段对应的字段访问向量;
步骤S303,根据服务请求方的最大查询率和字段对应的字段访问向量,计算字段对应的查询率特征向量;
步骤S304,确定参数的至少一个可选取值;
步骤S305,针对至少一个可选取值中的每个可选取值,确定每个可选取值对应的数据库集群性能;
步骤S306,根据业务需求和每个可选取值对应的数据库集群性能,从至少一个可选取值中选择出参数值;
步骤S307,基于聚类算法,利用查询率特征向量将字段分成参数值个不相交的子集,得到至少一个字段集合;
步骤S308,确定至少一个字段集合对应的存储数据库集群,以生成字段对应的字段存储位置配置文件;
步骤S309,读取当前数据存储的镜像数据,根据镜像数据计算字段所占用的字节数;
步骤S310,根据字段占用的字节数,计算存储数据库集群的字段存储量;
步骤S311,根据存储数据库集群的字段存储量和单片内存量,计算存储数据库集群对应的集群单副本片数;
步骤S312,根据存储数据库集群的最大承载查询率、存储数据库集群对应的集群单副本片数和集群单副本的可承载查询率,计算存储数据库集群对应的集群副本片数。
需要注意的是,步骤S301至步骤S303的执行顺序与步骤S304至步骤S306的执行顺序可以根据实际情况调整,可以先执行步骤S301至步骤S303,也可以先执行步骤S304至步骤S306,还可以同时执行步骤S301至步骤S303和步骤S304至步骤S306,当然具体的执行顺序需要根据实际情况调整,本发明实施例对此不作限定。此外,步骤S306中的数据库集群性能包括以下选项中至少一项:数据库集群带宽值、数据库集群内存优化值;参数值为至少一个字段集合的集合个数,并且至少一个字段集合的集合个数与存储数据库集群的集群个数相同。还有,本发明实施例的生成配置文件的方法中,还可以定期更新字段存储位置配置文件;以及在出现新的字段的情况下,可以更新字段存储位置配置文件。
本发明实施例的生成配置文件技术方案中,能够根据监控数据和线上请求日志,获得单位时间内每个字段被所有请求方查询的次数,接着利用聚类算法将被查询次数相似的字段划分成一类,避免现有技术中根据不同系统模块将字段粗略划分并存储至数据库集群,导致的冗余存储和浪费出带宽资源的问题,最后被划分为一类的字段对应一个数据库集群,达到自动生成字段与字段存储位置的配置文件的效果,实现整体资源的带宽和内存最优化,节省人力和时间成本,还有通过查询该配置文件可以直接得到每个字段的具体存储位置,进而可以利用配置文件对存储结构进行优化调整,还可以利用配置文件执行数据处理任务。还有,本发明实施例中提出了基于聚类算法对字段进行划分,可以将被所有请求方查询或者访问的次数相近的字段划分在一起,实现整体资源的带宽和内存最优化。此外,本发明实施例中,结合字段占用的字节数、单片内存量、集群的最大承载查询率以及集群单副本的可承载查询率,计算数据库集群的资源信息,可以使得到的副本片数和单副本片数满足负载均衡,减少集群的存储资源浪费和出带宽资源浪费。
在上述实施例中,详细介绍了生成配置文件的方法,在生成配置文件之后,可以通过查询配置文件,获取每个字段对应的具体存储数据库集群,这样就能够执行数据处理任务。因此,本发明实施例中还提供了一种基于配置文件的数据处理的方法。图4是根据本发明实施例的数据处理的方法的主要步骤的示意图。如图4所示,数据处理的方法的主要步骤可以包括:
步骤S401,接收数据处理任务,获取数据处理任务中的目标字段;
步骤S402,基于根据本发明实施例的生成配置文件的方法生成的配置文件,查询目标字段对应的目标存储数据库集群;
步骤S403,根据目标字段和目标存储数据库集群,执行数据处理任务。
本发明实施例中,数据处理任务可以包括以下选项中至少一项:数据查询任务、数据存储任务、数据更新任务。针对不同的数据处理任务,该数据处理任务中包含的信息是不同的,若数据处理任务为数据查询任务,那么该任务中包括目标字段;若数据处理任务为数据存储任务,那么该任务中包括目标字段和该目标字段对应的字段值,需要将该字段值存储至数据库集群中;若数据处理任务为数据更新任务,那么该任务中包括目标字段和该目标字段对应的更新字段值。
因此,本发明实施例中,根据目标字段和目标存储数据库集群,执行数据处理任务,可以包括:若数据处理任务为数据查询任务,则从目标存储数据库集群中,获取目标字段对应的字段值;根据数据查询任务,对目标字段对应的字段值进行拼接,得到拼接字段值,返回拼接字段值。
数据库集群能够提供数据查询服务,比如广告系统中,广告商品信息服务能够接收数据查询请求,即可以执行数据查询任务,在接收到数据查询请求之后,可以通过查询配置文件,得到目标字段对应的存储位置,也就是目标字段对应的目标存储数据库集群,这样就能够在目标存储数据库集群中直接提取出目标字段对应的字段值。此外,数据查询任务中还包括目标字段的拼接顺序,可以按照拼接顺序,对提取出的字段值进行拼接,得到拼接字段值,然后将拼接字段值返回发出数据查询请求的服务请求方。此外,还需要注意的是,由于本发明实施例中每个数据库集群中存储对应的字段集合,因此,在请求一个目标字段时,会将数据库集群中存储的字段序列码全部提取出来,然后需要进行过滤,将目标字段对应的字段值保留。比如,某数据库集群中存储字段1至字段15,而数据查询任务中对应的目标字段为字段1至字段10,因此提取到字段序列码后,需要将字段11至字段15对应的字段值删除掉。
此外,本发明实施例中,根据目标字段和目标存储数据库集群,执行数据处理任务,还可以包括:若数据处理任务为数据存储任务,则根据数据存储任务,获取目标字段对应的字段值;将目标字段对应的字段值存储至目标存储数据库集群。
数据库集群还可以提供数据存储服务,比如广告系统中,广告商品信息服务能够接收数据存储请求,既可以执行数据存储任务,在接收到数据存储请求之后,可以直接得到目标字段和目标字段对应的字段值,通过查询配置文件,得到目标字段对应的存储位置,也就是目标字段对应的目标存储数据库集群,这样就能够将目标字段对应的字段值存储至目标存储数据库集群中。比如,数据存储任务中的目标字段为某商品的颜色字段,具体的字段值为红色,对应的目标存储数据库集群为A,则将某商品的颜色字段为红色存储至A中。
还有,本发明实施例中,根据目标字段和目标存储数据库集群,执行数据处理任务,还可以包括:若数据处理任务为数据更新任务,则从目标存储数据库集群中,查询目标字段对应的原始字段值;根据数据更新任务,获取目标字段对应的更新字段值;利用目标字段对应的更新字段值更新目标字段对应的原始字段值。
数据库集群还能够提供数据更新服务,比如广告系统中,广告商品信息服务能够接收数据更新请求,既可以执行数据更新任务,在接收到数据更新请求之后,可以直接得到目标字段和目标字段对应的更新字段值,通过查询配置文件,得到目标字段对应的存储位置,也就是目标字段对应的目标存储数据库集群,这样就能够在目标存储数据库集群中直接提取出目标字段对应的原始字段值,然后利用更新字段值更新目标字段对应的原始字段值,最后将更新后的字段值存储至目标存储数据库集群中。比如,数据更新任务中的目标字段为某商品的数量字段,具体的更新字段值为100箱,对应的目标存储数据库集群中的原始字段值为200箱,则需要用100箱更新目标存储数据库集群中存储的200箱。
接下来用广告商品信息服务的架构为例,详细介绍基于配置文件的数据处理方法。图5是根据本发明实施例的广告商品信息服务的架构示意图。图5中,广告商品信息服务的架构可以包括:监控服务集群、在线服务集群、数据存储Redis集群、字段存储位置配置、实时流更新Storm集群、以及BDP集市资源,此外图3中还具有客户端和离线数据源。
其中,客户端指的是广告系统中,需要调用广告商品信息服务的其他模块。数据存储Redis集群相当于是数据库集群,也就是说数据存储由多个Redis集群构成,每一个数据库集群存储一个字段集合对应的商品属性字段值。此外,数据存储Redis集群可以采用一主多从+读写分离模式,主节点用于承接写流量,多个从节点用于分担在线服务的读流量。在线服务集群用于接收和处理客户端发送的数据查询请求,查询对应的Redis集群获取到具体的原始数据,然后组装填充返回结果,填充结果阶段会根据字段配置文件中的字段与数据库集群的映射关系,将字段写入相应的集群中。
对于实时流更新Storm(即,分布式实时大数据处理框架)集群,Storm集群是广告商品信息服务的外部数据更新入口,能够实时消费多个Jmq和Kafka的消息,将消息中携带的数据更新到相应的Redis集群中。更新时,字段和Redis集群的对应关系是在实时流任务启动时,通过加载配置文件来确定的,每一个更新操作会根据配置文件将字段写入相应的Redis集群中。其中,Jmq和Kafka都是消息队列组件的一种。
字段存储位置配置中存储了字段存储位置配置文件,也就是说存储了字段与字段对应的存储位置的映射关系。该配置是广告商品信息服务的核心部分,可以通过周期性离线计算的方式,读取线上监控数据及Redis数据镜像,生成字段的查询率特征向量,然后运行聚类算法为每一个Redis集群分配合理的字段集合,生成配置文件。
监控服务集群用于监控请求服务方的具体访问Redis集群的请求,也就是监控服务请求方的具体访问请求,这样可以利用监控服务集群,可以直接查询到每个服务请求方在预设时间周期内的具体访问次数,进而可以计算得到在单位时间内字段被服务请求方访问的次数。BDP(全称为Business Data Platform,即商业数据平台)集市资源相当于是离线计算,主要作用是将生成的原始数据构造成实时更新流能识别的消息格式,发送到消息队列中,以供更新使用。
本发明实施例的数据处理技术方案中,在获取到数据处理任务中,通过查询该配置文件可以直接得到数据处理任务中目标字段的具体存储位置,然后执行数据处理任务,实现直接利用配置文件执行数据处理任务,考虑到采用的配置文件可以达到系统的存储内存和出带宽最优,因此利用配置文件执行数据处理任务,能够提供数据处理任务的执行效率,给用户带来较好的体验。
图6是根据本发明实施例的生成配置文件的装置的主要模块的示意图。如图6所示,生成配置文件的装置600的主要模块可以包括:确定模块601、分类模块602和生成模块603。
其中,确定模块601可用于根据监控数据和线上请求日志,确定字段对应的查询率特征向量;分类模块602可用于基于聚类算法,根据查询率特征向量对字段进行分类处理,获得至少一个字段集合;生成模块603可用于确定至少一个字段集合对应的存储数据库集群,以生成字段对应的字段存储位置配置文件。
本发明实施例中,确定模块601还可用于:确定服务请求方,然后查询监控数据,获得在预设时间周期内服务请求方的最大查询率;分析线上请求日志,得到字段被服务请求方请求访问的情况,获取字段对应的字段访问向量;根据服务请求方的最大查询率和字段对应的字段访问向量,计算字段对应的查询率特征向量。
本发明实施例中,分类模块602还可用于:设置聚类算法的参数值;基于聚类算法,利用查询率特征向量将字段分成参数值个不相交的子集,得到至少一个字段集合。其中,参数值为至少一个字段集合的集合个数,以及至少一个字段集合的集合个数与存储数据库集群的集群个数相同。
本发明实施例中,分类模块602还可用于:确定参数的至少一个可选取值;针对至少一个可选取值中的每个可选取值,确定每个可选取值对应的数据库集群性能;根据业务需求和每个可选取值对应的数据库集群性能,从至少一个可选取值中选择出参数值。其中,数据库集群性能可以包括以下选项中至少一项:数据库集群带宽值、数据库集群内存优化值。
本发明实施例中,生成模块603还可用于:读取当前数据存储的镜像数据,根据镜像数据,计算字段所占用的字节数;根据字段占用的字节数,计算存储数据库集群的字段存储量;根据存储数据库集群的字段存储量和单片内存量,计算存储数据库集群对应的集群单副本片数;根据存储数据库集群的最大承载查询率、存储数据库集群对应的集群单副本片数和集群单副本的可承载查询率,计算存储数据库集群对应的集群副本片数。
本发明实施例中,生成配置文件的装置600还可以包括:更新模块(图中未示出)。该更新模块还可用于:定期更新字段存储位置配置文件;以及在出现新的字段的情况下,更新字段存储位置配置文件。
从以上描述可以看出,本发明实施例的生成配置文件的装置能够根据监控数据和线上请求日志,获得单位时间内每个字段被所有请求方查询的次数,接着利用聚类算法将被查询次数相似的字段划分成一类,避免现有技术中根据不同系统模块将字段粗略划分并存储至数据库集群,导致的冗余存储和浪费出带宽资源的问题,最后被划分为一类的字段对应一个数据库集群,达到自动生成字段与字段存储位置的配置文件的效果,实现整体资源的带宽和内存最优化,节省人力和时间成本,还有通过查询该配置文件可以直接得到每个字段的具体存储位置,进而可以利用配置文件对存储结构进行优化调整,还可以利用配置文件执行数据处理任务。还有,本发明实施例中提出了基于聚类算法对字段进行划分,可以将被所有请求方查询或者访问的次数相近的字段划分在一起,实现整体资源的带宽和内存最优化。此外,本发明实施例中,结合字段占用的字节数、单片内存量、集群的最大承载查询率以及集群单副本的可承载查询率,计算数据库集群的资源信息,可以使得到的副本片数和单副本片数满足负载均衡,减少集群的存储资源浪费和出带宽资源浪费。
图7是根据本发明实施例的数据处理的装置的主要模块的示意图。如图7所示,本发明实施例的数据处理的装置700的主要模块可以包括:获取模块701、查询模块702和执行模块703。
其中,获取模块701可用于接收数据处理任务,获取数据处理任务中的目标字段;查询模块702可用于基于根据本发明实施例的生成配置文件的方法生成的配置文件,查询目标字段对应的目标存储数据库集群;执行模块703可用于根据目标字段和目标存储数据库集群,执行数据处理任务。
本发明实施例中,数据处理任务可以包括以下选项中至少一项:数据查询任务、数据存储任务、数据更新任务。
本发明实施例中,执行模块703还可用于:若数据处理任务为数据查询任务,则从目标存储数据库集群中,获取目标字段对应的字段值;根据数据查询任务,对目标字段对应的字段值进行拼接,得到拼接字段值,返回拼接字段值。
本发明实施例中,执行模块703还可用于:若数据处理任务为数据存储任务,则根据数据存储任务,获取目标字段对应的字段值;将目标字段对应的字段值存储至目标存储数据库集群。
本发明实施例中,执行模块703还可用于:若数据处理任务为数据更新任务,则从目标存储数据库集群中,查询目标字段对应的原始字段值;根据数据更新任务,获取目标字段对应的更新字段值;利用目标字段对应的更新字段值更新目标字段对应的原始字段值。
从以上描述可以看出,本发明实施例的数据处理的装置在获取到数据处理任务中,通过查询该配置文件可以直接得到数据处理任务中目标字段的具体存储位置,然后执行数据处理任务,实现直接利用配置文件执行数据处理任务,考虑到采用的配置文件可以达到系统的存储内存和出带宽最优,因此利用配置文件执行数据处理任务,能够提供数据处理任务的执行效率,给用户带来较好的体验。
图8示出了可以应用本发明实施例的生成配置文件及数据处理的方法或生成配置文件及数据处理的装置的示例性系统架构800。
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的生成配置文件及数据处理的方法一般由服务器805执行,相应地,生成配置文件及数据处理的装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括确定模块、分类模块和生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,确定模块还可以被描述为“根据监控数据和线上请求日志,确定字段对应的查询率特征向量的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据监控数据和线上请求日志,确定字段对应的查询率特征向量;基于聚类算法,根据查询率特征向量对字段进行分类处理,获得至少一个字段集合;确定至少一个字段集合对应的存储数据库集群,以生成字段对应的字段存储位置配置文件。
以及,接收数据处理任务,获取数据处理任务中的目标字段;基于根据本发明实施例的生成配置文件的方法生成的配置文件,查询目标字段对应的目标存储数据库集群;根据目标字段和目标存储数据库集群,执行数据处理任务。
根据本发明实施例的技术方案,能够根据监控数据和线上请求日志,获得单位时间内每个字段被所有请求方查询的次数,接着利用聚类算法将被查询次数相似的字段划分成一类,避免现有技术中根据不同系统模块将字段粗略划分并存储至数据库集群,导致的冗余存储和浪费出带宽资源的问题,最后被划分为一类的字段对应一个数据库集群,达到自动生成字段与字段存储位置的配置文件的效果,实现整体资源的带宽和内存最优化,节省人力和时间成本,还有通过查询该配置文件可以直接得到每个字段的具体存储位置,进而可以利用配置文件对存储结构进行优化调整,还可以利用配置文件执行数据处理任务。还有,本发明实施例中提出了基于聚类算法对字段进行划分,可以将被所有请求方查询或者访问的次数相近的字段划分在一起,实现整体资源的带宽和内存最优化。此外,本发明实施例中,结合字段占用的字节数、单片内存量、集群的最大承载查询率以及集群单副本的可承载查询率,计算数据库集群的资源信息,可以使得到的副本片数和单副本片数满足负载均衡,减少集群的存储资源浪费和出带宽资源浪费。
以及,本发明实施例的数据处理技术方案在获取到数据处理任务中,通过查询该配置文件可以直接得到数据处理任务中目标字段的具体存储位置,然后执行数据处理任务,实现直接利用配置文件执行数据处理任务,考虑到采用的配置文件可以达到系统的存储内存和出带宽最优,因此利用配置文件执行数据处理任务,能够提供数据处理任务的执行效率,给用户带来较好的体验。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (15)

1.一种生成配置文件的方法,其特征在于,包括:
根据监控数据和线上请求日志,确定字段对应的查询率特征向量;
基于聚类算法,根据所述查询率特征向量对所述字段进行分类处理,获得至少一个字段集合;
确定所述至少一个字段集合对应的存储数据库集群,以生成所述字段对应的字段存储位置配置文件。
2.根据权利要求1所述的方法,其特征在于,所述根据监控数据和线上请求日志,确定字段对应的查询率特征向量,包括:
确定服务请求方,然后查询所述监控数据,获得在预设时间周期内所述服务请求方的最大查询率;
分析所述线上请求日志,得到所述字段被所述服务请求方请求访问的情况,获取所述字段对应的字段访问向量;
根据所述服务请求方的最大查询率和所述字段对应的字段访问向量,计算所述字段对应的查询率特征向量。
3.根据权利要求1所述的方法,其特征在于,所述基于聚类算法,根据所述查询率特征向量对所述字段进行分类处理,获得至少一个字段集合,包括:
设置所述聚类算法的参数值;
基于所述聚类算法,利用所述查询率特征向量将所述字段分成所述参数值个不相交的子集,得到所述至少一个字段集合;其中,
所述参数值为所述至少一个字段集合的集合个数,以及所述至少一个字段集合的集合个数与所述存储数据库集群的集群个数相同。
4.根据权利要求3所述的方法,其特征在于,所述设置所述聚类算法的参数值,包括:
确定参数的至少一个可选取值;
针对所述至少一个可选取值中的每个可选取值,确定所述每个可选取值对应的数据库集群性能;
根据业务需求和所述每个可选取值对应的数据库集群性能,从所述至少一个可选取值中选择出所述参数值;其中,
所述数据库集群性能包括以下选项中至少一项:数据库集群带宽值、数据库集群内存优化值。
5.根据权利要求1所述的方法,其特征在于,在确定所述至少一个字段集合对应的存储数据库集群之后,所述方法还包括:
读取当前数据存储的镜像数据,根据所述镜像数据,计算所述字段所占用的字节数;
根据所述字段占用的字节数,计算所述存储数据库集群的字段存储量;
根据所述存储数据库集群的字段存储量和单片内存量,计算所述存储数据库集群对应的集群单副本片数;
根据所述存储数据库集群的最大承载查询率、所述存储数据库集群对应的集群单副本片数和所述集群单副本的可承载查询率,计算所述存储数据库集群对应的集群副本片数。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
定期更新所述字段存储位置配置文件;以及
在出现新的字段的情况下,更新所述字段存储位置配置文件。
7.一种数据处理的方法,其特征在于,包括:
接收数据处理任务,获取所述数据处理任务中的目标字段;
基于根据权利要求1-6中任一所述的方法生成的配置文件,查询所述目标字段对应的目标存储数据库集群;
根据所述目标字段和所述目标存储数据库集群,执行所述数据处理任务。
8.根据权利要求7所述的方法,其特征在于,所述数据处理任务包括以下选项中至少一项:数据查询任务、数据存储任务、数据更新任务。
9.根据权利要求8所述的方法,其特征在于,所述根据所述目标字段和所述目标存储数据库集群,执行所述数据处理任务,包括:
若所述数据处理任务为数据查询任务,则从所述目标存储数据库集群中,获取所述目标字段对应的字段值;
根据所述数据查询任务,对所述目标字段对应的字段值进行拼接,得到拼接字段值,返回所述拼接字段值。
10.根据权利要求8所述的方法,其特征在于,所述根据所述目标字段和所述目标存储数据库集群,执行所述数据处理任务,包括:
若所述数据处理任务为数据存储任务,则根据所述数据存储任务,获取所述目标字段对应的字段值;
将所述目标字段对应的字段值存储至所述目标存储数据库集群。
11.根据权利要求8所述的方法,其特征在于,所述根据所述目标字段和所述目标存储数据库集群,执行所述数据处理任务,包括:
若所述数据处理任务为数据更新任务,则从所述目标存储数据库集群中,查询所述目标字段对应的原始字段值;
根据所述数据更新任务,获取所述目标字段对应的更新字段值;
利用所述目标字段对应的更新字段值更新所述目标字段对应的原始字段值。
12.一种生成配置文件的装置,其特征在于,包括:
确定模块,用于根据监控数据和线上请求日志,确定字段对应的查询率特征向量;
分类模块,用于基于聚类算法,根据所述查询率特征向量对所述字段进行分类处理,获得至少一个字段集合;
生成模块,用于确定所述至少一个字段集合对应的存储数据库集群,以生成所述字段对应的字段存储位置配置文件。
13.一种数据处理的装置,其特征在于,包括:
获取模块,用于接收数据处理任务,获取所述数据处理任务中的目标字段;
查询模块,用于基于根据权利要求1-6中任一所述的方法生成的配置文件,查询所述目标字段对应的目标存储数据库集群;
执行模块,用于根据所述目标字段和所述目标存储数据库集群,执行所述数据处理任务。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-11中任一所述的方法。
CN202010306470.6A 2020-04-17 2020-04-17 生成配置文件及数据处理的方法和装置 Active CN113535673B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010306470.6A CN113535673B (zh) 2020-04-17 2020-04-17 生成配置文件及数据处理的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010306470.6A CN113535673B (zh) 2020-04-17 2020-04-17 生成配置文件及数据处理的方法和装置

Publications (2)

Publication Number Publication Date
CN113535673A true CN113535673A (zh) 2021-10-22
CN113535673B CN113535673B (zh) 2023-09-26

Family

ID=78123401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010306470.6A Active CN113535673B (zh) 2020-04-17 2020-04-17 生成配置文件及数据处理的方法和装置

Country Status (1)

Country Link
CN (1) CN113535673B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115981970A (zh) * 2023-03-20 2023-04-18 建信金融科技有限责任公司 运维数据分析方法、装置、设备和介质
CN118132383A (zh) * 2024-03-22 2024-06-04 北京衡石科技有限公司 业务数据监控方法、装置、电子设备和计算机可读介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1828556A (zh) * 2005-03-05 2006-09-06 腾讯科技(深圳)有限公司 一种数据存储的方法、系统及设备
CN101727465A (zh) * 2008-11-03 2010-06-09 中国移动通信集团公司 分布式列存储数据库索引建立、查询方法及装置与系统
CN101876983A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 数据库分区方法与系统
CN102156714A (zh) * 2011-03-22 2011-08-17 清华大学 实现自适应垂直划分的关系型数据库的方法及系统
CN102902628A (zh) * 2012-09-18 2013-01-30 记忆科技(深圳)有限公司 一种基于闪存实现的冷热数据自动分离方法、系统及闪存
US20130347127A1 (en) * 2012-06-25 2013-12-26 Bank Of America Corporation Database management by analyzing usage of database fields
CN104503708A (zh) * 2014-12-29 2015-04-08 成都致云科技有限公司 数据散列存储的方法及装置
CN104731794A (zh) * 2013-12-19 2015-06-24 北京华易互动科技有限公司 一种冷热数据分片挖掘存储方法
US9641431B1 (en) * 2012-04-18 2017-05-02 Google Inc. System and methods for utilization-based balancing of traffic to an information retrieval system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1828556A (zh) * 2005-03-05 2006-09-06 腾讯科技(深圳)有限公司 一种数据存储的方法、系统及设备
CN101727465A (zh) * 2008-11-03 2010-06-09 中国移动通信集团公司 分布式列存储数据库索引建立、查询方法及装置与系统
CN101876983A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 数据库分区方法与系统
CN102156714A (zh) * 2011-03-22 2011-08-17 清华大学 实现自适应垂直划分的关系型数据库的方法及系统
US9641431B1 (en) * 2012-04-18 2017-05-02 Google Inc. System and methods for utilization-based balancing of traffic to an information retrieval system
US20130347127A1 (en) * 2012-06-25 2013-12-26 Bank Of America Corporation Database management by analyzing usage of database fields
CN102902628A (zh) * 2012-09-18 2013-01-30 记忆科技(深圳)有限公司 一种基于闪存实现的冷热数据自动分离方法、系统及闪存
CN104731794A (zh) * 2013-12-19 2015-06-24 北京华易互动科技有限公司 一种冷热数据分片挖掘存储方法
CN104503708A (zh) * 2014-12-29 2015-04-08 成都致云科技有限公司 数据散列存储的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马东;邵维专;: "一种HDFS元数据分级存储策略", 现代计算机(专业版), no. 08, pages 28 - 32 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115981970A (zh) * 2023-03-20 2023-04-18 建信金融科技有限责任公司 运维数据分析方法、装置、设备和介质
CN115981970B (zh) * 2023-03-20 2023-05-16 建信金融科技有限责任公司 运维数据分析方法、装置、设备和介质
CN118132383A (zh) * 2024-03-22 2024-06-04 北京衡石科技有限公司 业务数据监控方法、装置、电子设备和计算机可读介质
CN118132383B (zh) * 2024-03-22 2024-09-17 北京衡石科技有限公司 业务数据监控方法、装置、电子设备和计算机可读介质

Also Published As

Publication number Publication date
CN113535673B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
US12007996B2 (en) Management of distributed computing framework components
US11711420B2 (en) Automated management of resource attributes across network-based services
US20200050586A1 (en) Query execution at a remote heterogeneous data store of a data fabric service
US7490265B2 (en) Recovery segment identification in a computing infrastructure
KR20200027413A (ko) 데이터 저장 방법, 장치 및 시스템
US20140324917A1 (en) Reclamation of empty pages in database tables
US10541936B1 (en) Method and system for distributed analysis
US9348855B2 (en) Supporting big data in enterprise content management systems
US10614087B2 (en) Data analytics on distributed databases
US11076020B2 (en) Dynamically transitioning the file system role of compute nodes for provisioning a storlet
CN113535673B (zh) 生成配置文件及数据处理的方法和装置
US20200220910A1 (en) Idempotent processing of data streams
CN111488242B (zh) 将条带化备份加标签和路由到重复数据删除设备上的单个重复数据删除实例的方法和系统
US20140280154A1 (en) Scalable data transfer in and out of analytics clusters
US20230055511A1 (en) Optimizing clustered filesystem lock ordering in multi-gateway supported hybrid cloud environment
US8627039B2 (en) Effective memory clustering to minimize page fault and optimize memory utilization
CN111753019A (zh) 一种应用于数据仓库的数据分区方法和装置
JP7431490B2 (ja) 階層型ストレージ管理システムにおけるデータ・マイグレーション
CN111444148A (zh) 基于MapReduce的数据传输方法和装置
CN116431615A (zh) 一种面向复杂业务场景的灵活数据分区路由方法
CN110347654B (zh) 一种上线集群特性的方法和装置
US20140280444A1 (en) Scalable data transfer in and out of analytics clusters
US20240202207A1 (en) Distributed function data transformation system
CN113821519B (zh) 一种数据处理方法以及领域驱动设计架构
CN113515504B (zh) 数据管理方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant