一种数据处理方法、装置以及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置以及存储介质。
背景技术
随着互联网的大规模普及和应用,数据量的爆炸式增长标志着大数据时代的来临。海量数据的发展为人们的生活带来诸多便利,例如云存储、电子支付、网络购物等,但随之而来的也有处理海量数据的严峻挑战。
数据量的T级增长让传统的数据查询方法已不能再满足对这样大规模的数据实时查询的需求。例如目前对于圈定的视频点击或图文浏览数据,按照各种维度聚合分析已经达到亿级别,采用基于Hadoop生态的hive表与Spark应用程序离线分析结合的方法,执行时间冗长,通常需要几十分钟甚至小时级,无法达到实时性的要求;而采用MySQL聚合分析的响应时间也是小时级,同时海量的数据会导致其负载过高而不可用。因此,数据查询分析的实时性、效率以及稳定性都是亟待解决的问题。
发明内容
鉴于上述问题,本发明实施例提供了一种数据处理方法、装置以及存储介质,可以使得海量数据查询分析速度得到提升,同时降低系统响应的时延,提高数据查询分析的效率。
本发明实施例一方面提供了一种数据处理方法,包括:
获取客户端提交的数据查询分析请求,所述数据查询分析请求包括数据处理规则;
利用所述数据处理规则从数据库管理系统中获取目标数据,并对所述目标数据进行分析处理,以生成与所述数据处理规则匹配的处理结果,所述目标数据包括内容标识以及对应的指标数据;
向所述客户端发送所述处理结果,所述处理结果包括明细数据查询结果和聚合数据分析结果中的一种或两种。
本发明实施例一方面提提供了一种数据处理装置,包括:
获取模块,用于获取客户端提交的数据查询分析请求,所述数据查询分析请求包括数据处理规则;
处理模块,用于利用所述数据处理规则从数据库管理系统中获取目标数据,并对所述目标数据进行分析处理,以生成与所述数据处理规则匹配的处理结果,所述目标数据包括内容标识以及对应的指标数据;
发送模块,用于向所述客户端发送所述处理结果,所述处理结果包括明细数据查询结果和聚合数据分析结果中的一种或两种。
本发明实施例一方面提提供了一种计算机设备,包括:网络接口、处理器和存储器,所述网络接口、处理器与存储器相连接,所述网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以执行本发明实施例中一方面中所描述的部分或全部步骤。
本发明实施例一方面提提供了一种存储介质,所述存储介质存储计算机程序,所述计算机程序包括程序指令,由一个或多个所述处理器加载并执行所述程序指令,以执行本发明实施例中一方面中所述的数据处理方法。
本发明实施例一方面提一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行一方面所述的数据处理方法。
可以看出,本发明实施例中,通过将相关的数据导入数据库管理系统,然后根据客户端设置的数据处理规则对数据库管理系统中存储的海量数据进行查询分析,并得到不同维度下的目标数据,利用数据库管理系统的特点以及数据同步服务的结合可以自义定查询数据,并且可以缩短聚合数据查询分析的响应时间,提升在线实时分析查询的效率,实现查询结果的所见即所得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种数据处理系统的架构示意图;
图1b是本发明实施例提供的一种服务器中的服务配置示意图;
图2是本发明实施例提供的一种数据处理方法的步骤流程示意图;
图3是本发明实施例提供的一种数据处理方法的步骤流程示意图;
图4是本发明实施例提供的一种数据处理方法的步骤流程示意图;
图5是本发明实施例提供的一种指标数据同步的系统架构示意图;
图6是本发明实施例提供的一种数据处理装置的结构示意图;
图7是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible MarkupLanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言(Structured QueryLanguage)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
为了更好地理解本发明实施例的方案,下面先对本发明实施例可能涉及的相关术语和概念进行介绍。
OLAP:在线联机分析处理,专门设计用于支持复杂的分析操作,可以根据分析人员的要求快速、灵活地进行超大数据量的复杂查询分析处理。
OLTP:联机事务处理,OLTP主要是对数据的增删改查,处理时延较低。
Hive:一个基于Hadoop的数据仓库平台,能够将用户编写的结构化查询语言(Structured Query Language,SQL)转化为相应的MapReduce程序并基于Hadoop执行。
Spark:一款开源的通用并行计算框架。
ClickHouse:Yandex开源的一款用于多维数据存储的在线联机分析处理MOLAP(Multidimension OLAP,MOLAP)软件,可以通过SQL语言对海量数据进行查询分析。
PV:page view,指图文点击浏览数。
VV:video view,指视频播放数。
MySQL:一款开源的数据库管理系统。
请参阅图1a,是本发明实施例提供的一种数据处理系统的架构示意图,可以应用于数据管理平台,该系统包括:客户端100以及服务器101。
客户端100可以包括如图1a展示的多个终端,有对应的用户在终端上进行操作。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。客户端100主要用于与服务器101之间交互,向用户设置提供数据的筛选条件以及向用户展示数据查询分析结果,并根据用户设置的筛选条件向服务器101发送查询分析请求以及数据导入请求,并接收服务器101发送的数据查询分析的处理结果,这里的处理结果包括单条明细数据和聚合数据的任一种或两种。
服务器101用于根据客户端100发送的查询分析请求查询目标数据,根据客户端100发送的数据导入请求导入内容标识,向客户端100发送数据查询分析的处理结果。
服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明在此不做限制。
在一个可能的实施例中,如图1b所示,服务器101上具体运行的服务可以包括:数据导入服务、数据管理服务和数据处理服务,其中:
数据导入服务具体包括内容标识导入接口1011,指标数据导入接口1012。这两类接口是预定义的数据导入接口,作为各类数据同步至数据库管理系统1013的媒介,主要目的是为了保证数据导入的统一性、完整性和正确性。其中,内容标识导入接口1011用于将不同来源的内容标识导入数据库管理系统1013,例如各类数据库中存储的数据、本地离线文件、不同来源的逗号分隔值文件等。指标数据导入接口1012用于同步指标数据,即利用任务调度系统定时调度数据同步服务来同步不同数据库中的指标数据,数据同步服务优选Spark程序,利用Spark程序同步各类数据库中的指标数据,可以和ClickHouse搭配实现高效的数据查询任务。
数据管理服务具体包括数据库管理系统1013,属于OLAP系统,用于接收并存储通过内容标识导入接口1011以及指标数据导入接口1012导入的数据,根据数据访问层服务1014发送的查询语句进行计算得到目标数据,并返回给数据访问层服务1014,此外,数据库管理系统1013在导入指标数据之前可自动清理数据以保证数据导入的统一性。
数据处理服务包括数据访问层服务1014、查询分析引擎1015、数据库1016、查询分析服务1017。
数据访问层服务1014是底层服务,例如DAO服务,用于接收查询分析服务1017转发的查询语言,并将该查询语句转发到数据管理服务的数据库管理系统1013,然后接收在数据库管理系统1013中查询到的目标数据并将该目标数据返回给查询分析服务1017。
查询分析引擎1015用于接收查询分析服务1017发送的数据查询分析请求,数据库1016中查找目标查询接口,然后再解析该目标查询接口以生成查询语句,并将该查询语句发送给查询分析服务1017。
数据库1016用于存储预定义的多种查询接口,查询分析引擎1015根据数据查询分析请求访问数据库1016,从中获取目标查询接口。
查询分析服务1017用于接收和转发客户端100发送的相关请求、转发查询分析引擎1015解析的查询语言以及向客户端100发送数据查询分析的处理结果,具体的,查询分析服务1017中有图形转换适配器可以将查询到的目标数据转换成图表格式的数据作为处理结果发送给客户端100,查询分析服务1017将接收到客户端100发送的相关请求后会将其转发至查询分析引擎1015。
具体实现中,在查询分析操作之前,指标数据会通过指标数据导入接口1012自动定时导入数据库管理系统1013,以备数据实时查询分析。客户端100的数据导出平台发送数据导入请求至查询分析服务1017,查询分析服务1017获得待导入数据后并自动将待导入数据的内容标识写进数据库,再调用数据同步服务通过内容标识导入接口1011将内容标识同步至数据库管理系统1013;然后客户端100发送数据查询分析请求至查询分析服务1017,查询分析服务101转发该数据查询分析请求至查询分析引擎1015,根据该数据查询分析请求,查询分析引擎1015在数据库1016中查找目标查询接口并解析该目标查询接口,生成查询语句,然后查询分析引擎1015在将该查询语句返回给查询分析服务101,查询分析服务101再转发该查询语句至数据访问层服务1014,根据该查询语句,数据访问层服务1014转发该查询语句至数据库管理系统1013以执行数据查询操作,数据库管理系统1013根据接收到的该查询语句计算以得到目标数据,然后将该目标数据返回给数据访问层服务1014,数据访问层服务1014再转发至查询分析服务1017,利用查询分析服务1017的图形转换适配器可以得到图表数据并返回给客户端100可视化展示。
利用预定义的各类接口,包括查询接口、内容标识导入接口、指标数据导入接口可以提升数据查询以及导入的规范性,采用开源的在线联机分析处理系统作为数据库管理系统,可以根据分析人员的要求快速灵活地进行超大数据量的复杂查询分析处理,特别是对于临时导入的内容,支持快速查询分析。
请参阅图2,是本发明实施例提供的一种数据处理方法的步骤流程的示意图,可以应用于数据管理平台,该方法包括:
S201,获取客户端提交的数据查询分析请求,所述数据查询分析请求包括数据处理规则。
在一个可能的实施例中,由于临时圈定一批内容进行查询分析的数据量级别通常都是在百万级别,面对如此海量的数据,查询分析需要更快的响应速度以及更好的查询分析效率,而客户端通过为用户提供多样的可视化页面展示以及更直观的数据表达,可以直接地体验到查询分析的实时性与响应速度。具体而言,客户端可以是用于数据查询分析的web前端或者终端设备上的应用软件,在客户端界面的可视化呈现可以直接让用户体验所有的功能以及根据所需设置相应操作,然后生成相关数据请求以被服务端响应并执行。可选的,通过客户端的查询分析界面可以设置相应的数据处理规则,由此,数据查询分析请求中会包括数据处理规则,当然,数据查询分析请求还可以包括数据查询分析的地址等其他具体内容,在此不做限制。数据处理规则主要是针对查询分析的数据而设置的选择条件,根据这些选择条件,用户可以自定义数据处理规则,这样也可以得到更多样化的数据查询分析请求。其中,选择条件可以通过对全量指标数据的字段进行提取而生成,也可以自定义设置,在此不做限制,需要说明的是,该选择条件针对不同的全量指标数据是不同的。例如针对视频类别的指标数据,选择条件有视频播放数、点赞数、收藏数、转发数,针对购物类的指标数据,选择条件有图文点击量、销量、宝贝收藏量等指标数据。进一步地,多个不同的客户端可以针对同样的指标数据同时提交不同的数据查询分析请求给查询分析服务器,以备相关设备获取进行相应处理,在此对具体提交方式以及获取方式不做限制。
S202,利用所述数据处理规则从数据库管理系统中获取目标数据,并对所述目标数据进行分析处理,以生成与所述数据处理规则匹配的处理结果,所述目标数据包括内容标识以及对应的指标数据。
在一个可能的实施例中,数据库管理系统优选ClickHouse,作为一种分布式列式数据库,可以实现数据按需求分布在不同的计算机设备上,并且支持结构化查询语言以及多种函数,包括列式压缩技术、主键索引、合并树MergeTree、单指令多数据流指令SIMD进行向量计算优化以及支持两张大表之间的关联等技术特点,能充分发挥计算机设备的计算能力,提升海量数据的查询分析的速度。
在一个可能的实施例中,数据库管理系统包括的数据是由数据同步服务通过数据导入接口导入的,根据数据处理规则可以在这些数据中选取目标数据,最终获取到的目标数据包括内容标识以及与之对应的指标数据。其中,数据处理规则是对自定义圈定的数据的进一步筛选,对应的目标数据就是用户想要分析的更细节化的查询数据,例如圈定了搞笑类视频数据,但数据处理规则设置分析的是这类视频数据的点赞量或者收藏量,涉及实时数据的查询分析;内容标识用来关联指标数据以及区分不同的目标数据的,可以是数据的索引ID,这些内容标识是从用户指定的数据中提取出来的。当内容标识和指标数据关联之后,数据库管理系统包括自定义圈定的数据的指标数据,指标数据可以将其分为静态指标和动态指标,其中,静态指标是不会随时间改变的,例如某条视频的发布日期或者带有“娱乐”的标签等;动态指标包括访问量,例如在一段时间内访问量会随着用户的浏览或者访问而改变,例如视频播放数、图文点击数、数据分享量等,按照数据处理规则对与内容标识对应的指标数据进行处理可以得到目标数据。例如昨日入库的带有“娱乐”标签的视频分享量作为目标数据进行查询,获得的目标数据的原始表达是表格形式,但是单靠这种形式不足以支撑数据分析要求,所以要对目标数据进行具体的分析处理来生成对应的处理结果,例如将数据分享量按照类别标签下的子标签进行统计生成相应的统计图。
S203,向所述客户端发送所述处理结果,所述处理结果包括明细数据查询结果和聚合数据分析结果中的一种或两种。
在一个可能的实施例中,查询分析服务器会将处理结果发送到客户端,处理结果包括明细数据查询结果和聚合数据分析结果中的一种或两种,其中,聚合数据是至少一个维度的数据,例如某日期某分类下的视频播放数或者图文点击数,对这些数据进行处理可以得到聚合数据分析结果,并通过折线图或饼状图或柱状图等不同的表现形式展示到客户端的查询分析界面以更直观地得到该聚合数据分析结果。可选的,用户可以选择将聚合数据分析结果导出作为本地文件保存。以上方式可以更好地跟踪用户行为,帮助决策者根据现有数据分析结果调整产品策略。明细数据是对于单条内容的具体指标数据查询,例如指定需要某个ID的所有指标数据或者部分指标数据,最后以原始的表格展示。可选的,如果对于明细数据有更进一步的需要,也可以进行统计处理转换成图形更直观的表达。在整个数据查询过程中,从客户端提交查询分析的请求到最终收到处理结果都是在可视化的界面进行的,客户端直接反映了整个查询分析系统的响应快慢,而数据库分析系统的集群分布以及内置的一些工具可以使得数据查询稳定,快速地返回查询结果并完成数据分析,无论是明细数据查询还是聚合数据查询,采用本实施例查询的数据量级都能实现亚秒级响应,实现真正的即时查询。
综上所述,本实施例至少有如下优点:
根据查询分析请求在数据库管理系统中对实时查询分析目标数据,利用数据库管理系统,特别是ClickHouse表现的优异特性:列式存储以及实现两张大表之间的联合,可以对亿级数据的查询分析实现亚秒级响应,实现负载均衡,提升了实时查询数据的速度,降低了数据查询的响应时间。
请参阅图3,是本发明实施例提供的一种数据处理方法的步骤流程的示意图,应用于数据管理平台,该方法包括:
S301,获取所述客户端提交的数据导入请求,所述数据导入请求包括数据过滤规则,所述数据过滤规则包括时间限制条件和类别标签中的一种或多种;
在一个可能的实施例中,在对数据进行查询分析之前,要圈定一批数据的内容作为筛选目标数据的依据。因此要在客户端的数据导出平台设置数据过滤规则,过滤规则中有多个选择条件,这些选择条件是根据数据检索平台对全量内容数据进行检索而自动生成的,涵盖了全量内容数据的所有可选择字段,在内容数据库中包含的是字段对应的静态指标,例如时间限制条件、类别标签。数据过滤规则可以设置所有选择条件中的一种或多种来筛选数据,例如筛选出11月11日入库并且包含“搞笑”标签的内容。可选的,可以获取多个客户端提交的数据导入请求,具体提交数据导入请求的方式可以是在客户端通过点击相应操作按钮或者在数据过滤规则设置完成后自动提交,对于提交方式以及获取数据导入请求的方式在此均不做限制。
S302,从全量数据中确定符合所述数据过滤规则的待导入数据,所述全量数据包括来自多种数据源的数据。
在一个可能的实施例中,查询分析服务器响应数据导入请求之后,会在全量数据中确定符合数据过滤规则的数据作为待导入数据,其中,全量数据是前述所提及的是全量内容数据库中的数据,其量级可达到亿级别,不包括一些实时统计的数据。全量数据可存储在不同的数据库中,构成全量内容数据库,不同数据库的数据对应有不同数据源的数据,例如逗号分隔值文件、本地离线文件、MySQL数据库、Oracle数据库等,因此,待导入数据也可能对应不同的数据格式。可选的,在确定待导入数据之后,数据导出平台会自动将这批待导入数据写入数据库中,以使得待导入数据作为准备数据进入数据库管理服务器。
S303,通过数据同步服务调用内容标识导入接口,将所述待导入数据的内容标识导入到数据库管理系统中。
在一个可能的实施例中,在查询分析服务器响应数据导入请求并将待导入数据筛选出来之后,会调用数据同步服务,内容标识导入接口是预先定义好的数据导入接口,可以标准化地将各个来源的数据同步到数据库管理系统中,接口的定义很好地保证了数据的可靠性。数据库管理系统可以是ClickHouse,但是ClickHouse本身没有针对主键去重的机制,所以在导入待导入数据时,需要在接口中保证数据导入的幂等性和可重入性。其中,接口的幂等性是指用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用,在增删改查这四个操作中,尤为注意是增加或者修改,需要保证接口的幂等性;可重入性是指多于一个任务并发使用可重入函数,而不必担心数据错误,就是说可重入函数可以在任意时刻被中断,稍后再继续运行,而不会丢失数据。因为待导入数据的量级通常较大,要么全部导入成功,要么全部导入失败,实现以上效果的具体方法是通过实时监督待导入数据,在整个导入过程中检测是否失败数据,若有则提取出来重新导入来保证同步数据的完整性和正确性。需要说明的是,将待导入数据中包括的内容标识通过内容标识导入接口导入数据库管理系统是分批次导入的,选用ClickHouse分批次导入的性能可以达到每秒1万条。同步完成以后,用户就可以在查询分析界面对待导入数据对应的指标数据进行各个维度聚合分析。
S304,获取客户端提交的数据查询分析请求,所述数据查询分析请求包括数据处理规则。
S305,利用所述数据处理规则从数据库管理系统中获取目标数据,并对所述目标数据进行分析处理,以生成与所述数据处理规则匹配的处理结果,所述目标数据包括内容标识以及对应的指标数据。
S306,向所述客户端发送所述处理结果,所述处理结果包括明细数据查询结果和聚合数据分析结果中的一种或两种。
本实施例中,步骤S304-S306的具体实现方式可以参见图2所示实施例中的S201-S203,在此不再赘述。
综上所述,本发明实施例至少有如下优点:
通过内容数据导入接口将不同来源的待导入数据包括的内容标识导入数据库管理系统,然后将内容标识用于表之间的关联,通过关联操作以及相关规则筛选目标数据以得到实时查询分析的结果,实现了自定义数据查询分析;多种数据来源导入的支持也使得该查询分析系统具有很好的可扩展性,支持更多的场景;通过使用支持大表之间关联的数据库为实时查询分析百万级批量内容的PV/VV数据等应用场景提供良好支持。
请参阅图4,是本发明实施例提供的另一种数据处理方法的步骤流程的示意图,应用于数据管理平台,该方法包括:
S401,获取所述全量数据的指标数据,并通过所述数据同步服务调用指标数据导入接口,将所述全量数据的指标数据导入到数据库管理系统中,所述指标数据包括访问量。
由于指标数据量级庞大,通常为亿级数据,为了保证同步到数据库管理系统的数据的完整性和可靠性,需要通过数据同步服务调用指标数据导入接口,将全量数据的指标数据导入到数据库管理系统中,包括访问量,这里的访问量指的是用户浏览内容的数据量,例如视频播放数、图文浏览数、收藏数等实时统计的数据。
作为一种可能的实施例,请参阅图5,可以通过任务调度系统501定时调度数据同步服务502,例如利用Spark程序通过指标数据导入接口执行数据同步。具体流程包括:首先当任务调度系统501的定时时间到达时,调用数据同步服务502从数据仓库中读取全量数据的指标数据的元数据信息,这里的数据同步服务502可以是Spark程序,被调度后会开始执行同步任务,即开始从数据仓库503中读取元数据,其中,数据仓库503可以是Hive数据仓库,存储有指标数据。然后根据读取到的元数据信息在数据库管理系统中建立分布式表,具体方式是读取到元数据之后先查询数据库管理系统504中是否存在对应的表,如果不存在,则会执行建表语句建立分布式表,因为数据库管理系统504通常是集群部署的,建立分布式表需要现在集群分布的每个节点执行本地建表语句,最后建立一张分布式引擎的表,后续的更新数据都是通过分布式表来进行;如果存在,则会检查表中的字段,即元数据信息是否和数据仓503中一致,如果不一致,会修改为数据仓库503中的元数据格式,以兼容数据仓库503中数据表有更新的情况。数据同步服务501在检查完元数据信息之后,才会真正开始同步数据:从数据仓库503中获取全量数据的指标数据,并通过调用指标数据导入接口,利用所述分布式表将全量数据的指标数据分批次插入所述数据库管理系统504中。具体的,在插入数据之前,首先会删除数据库管理系统504中对应的日期分区,防止脏数据的存在,因为当任务重跑时,数据库管理系统504中还存在之前任务执行时插入的脏数据;然后再加载数据仓库503中的指标数据,由于指标数据本身量级非常大,可达亿级,需要逐步分批次插入,保证数据库管理系统504集群的服务器负载不会受影响。以上指标数据导入的步骤适用于从Hive数据仓库中同步全量内容PV/VV数据到数据库管理系统ClickHouse中。
从上面的流程可以看出,在数据同步服务502真正同步数据之前先检查元数据信息是否一致这个步骤,可以保证数据库管理系统504的表和数据仓库503中的表自动保持一致,不需要人工手动更改表的信息。在这个数据同步服务502只需要简单配置数据库管理系统504集群节点IP地址以及需要同步的数据仓库503中的表名等必要信息,就可以自动同步数据,而无需关心数据库管理系统504端的建表语句,实现同步程序的自动化和可配置化。
指标数据的导入在数据查询分析之前是必要的,但是定时导入指标数据是为了实时的指标数据在数据库管理系统的更新,保证查询结果的准确性,所以指标数据的定时导入可以持续到数据查询分析过程,和数据查询分析独立,并不会影响数据查询分析的操作。
S402,获取客户端提交的数据查询分析请求,所述数据查询分析请求包括数据处理规则。
本实施例中,此步骤的具体实现方式可以参见图2所示实施例中的S201,在此不再赘述。
S403,所述数据处理规则包括数据筛选条件,确定与所述数据筛选条件对应的查询语句。
在一个可能的实施例中,数据处理规则包括数据筛选条件,这里的数据筛选条件是在客户端选定的查询条件。由于数据查询分析系统之间各个设备或服务之间的通信使用统一的语言进行数据查询可以使得操作更高效便捷,因此用数据处理规则从数据库管理系统中获取目标数据首要任务是确定和数据筛选条件对应的查询语句,然后利用查询语句查询目标数据。其中,查询语句优选结构化查询语句(Structured Query Language,SQL),也可以是其他能实现高效查询的语言,在此不做限制。在查询分析系统的数据库中会预定义一系列查询接口,每个接口实现一种特定的查询模式,模式定义中包含了一次数据查询的全部信息,包括数据筛选条件。根据数据筛选条件调用查询分析引擎就可以从预定义的多种查询接口中确定目标查询接口,然后利用查询分析引擎解析目标查询接口,就可以生成对应的查询语句。可选的,前端页面可根据查询模式的元信息自动渲染前端菜单组件,实现数据查询分析系统的自动化。用户可以组装不同的查询接口合并成一个查询视图,每次打开这个视图时会自动将视图内包含的所有的查询接口提交到查询分析引擎生成具体的查询语句。在数据查询分析操作中通过定义查询接口保证了数据分析的可扩展性和可操作性。
S404,调用数据访问层服务,利用所述查询语句从数据库管理系统中查询目标数据。
数据访问层服务可以是底层DAO服务,调用数据访问层服务可以识别查询语句,执行最基本的增删改查操作,所以可以利用该查询语句从数据库管理系统中查询目标数据。具体而言,查询分析服务器接收到查询语句后会将该查询语句传递给数据访问层服务,数据访问层服务根据查询语句从数据库管理系统包括的待导入数据的内容标识对应的指标数据中查询目标数据。数据库管理系统可以是支持大表之间关联(join)的ClickHouse,将待导入数据和指标数据这两张大表进行join,得到内容指标对应的指标数据,然后根据查询语句在内容指标对应的指标数据中就可以查询到目标数据。之后,查询分析服务器会获取所述数据访问层服务返回的所述目标数据以执行后续操作。
在这个过程中,由于数据访问层服务和数据分析引擎被分离开来,以使得每个模块的能力更新并不会影响其他模块的运行。所以对查询接口的定义升级为更为复杂的模式时,只需要升级查询分析引擎的解析能力,但是查询分析引擎返回的始终还是具体查询语句,数据访问层服务对这个能力升级无感知。
S405,对所述目标数据进行分析处理,以生成与所述数据处理规则匹配的处理结果。
在一个可能的实施例中,数据处理规则包括图表类型,就是说在对数据查询时除了设置数据筛选条件,还可以根据需要选取处理结果想要表达的方式,实现对目标数据的分析处理,例如把目标数据通过折线图或饼状图或柱状图等形式展示到分析界面。具体而言,通过查询分析服务器中的图形转换适配器可以将目标数据转化成之前设置的图表类型,每个图表类型对应有经过统计处理的图表数据,这些图表数据可以作为最终的处理结果以帮助数据分析工作者进行相关分析。
S406,向所述客户端发送所述处理结果,所述处理结果包括明细数据查询结果和聚合数据分析结果中的一种或两种。
本实施例中,此步骤的具体实现方式可以参见图2所示实施例中的S203,在此不再赘述。
综上所述,本发明实施例至少有如下优点:
通过定义指标数据导入接口以及数据的查询接口保证了数据导入以及数据分析的可扩展性和可操作性。其中,通过指标数据导入接口定时同步全量的指标数据使得同步数据的更加便捷;将数据分析引擎和数据访问层服务分离开来,由数据分析引擎解析定义的查询接口,然后交由数据访问层服务查询数据,然后再由查询分析服务中的图形转换适配器将数据访问层服务返回的目标数据转化成对应的图形格式数据。这样设计可以让每个模块的职责更加清晰,使得模块之间的耦合性更低,也可以使得海量数据查询分析操作可扩展性更大,并且处理过程更加高效稳定。
请参见图6,是本实施例提供的一种数据处理装置的结构示意图。该装置包括:
获取模块601,用于获取客户端提交的数据查询分析请求,所述数据查询分析请求包括数据处理规则;
处理模块602,用于利用所述数据处理规则从数据库管理系统中获取目标数据,并对所述目标数据进行分析处理,以生成与所述数据处理规则匹配的处理结果,所述目标数据包括内容标识以及对应的指标数据;
发送模块603,用于向所述客户端发送所述处理结果,所述处理结果包括明细数据查询结果和聚合数据分析结果中的一种或两种。
在一种可能的实施例中,该装置还包括:确定模块604和导入模块605,其中:
所述获取模块601,用于获取所述客户端提交的数据导入请求,所述数据导入请求包括数据过滤规则,所述数据过滤规则包括时间限制条件和类别标签中的一种或多种;
确定模块604,用于从全量数据中确定符合所述数据过滤规则的待导入数据,所述全量数据包括来自多种数据源的数据;
导入模块605,用于通过数据同步服务调用内容标识导入接口,将所述待导入数据的内容标识导入到数据库管理系统中。
在一种可能的实施例中,所述处理模块602,还用于:
获取所述全量数据的指标数据,并通过所述数据同步服务调用指标数据导入接口,将所述全量数据的指标数据导入到数据库管理系统中,所述指标数据包括访问量。
在一种可能的实施例中,所述处理模块602,还用于:
确定与所述数据筛选条件对应的查询语句;
调用数据访问层服务,利用所述查询语句从数据库管理系统中查询目标数据。
在一种可能的实施例中,所述处理模块602,还用于:
根据所述数据筛选条件从预定义的多种查询接口中确定目标查询接口;
利用查询分析引擎解析所述目标查询接口,以生成对应的查询语句。
在一种可能的实施例中,所述处理模块602,还用于:
利用所述图表类型和图形转换适配器对所述目标数据进行分析处理,以生成对应的图表数据;
将所述图表数据作为处理结果。
在一种可能的实施例中,所述处理模块602,还用于:
当任务调度系统的定时时间到达时,调用所述数据同步服务从所述数据仓库中读取所述全量数据的指标数据的元数据信息;
根据所述元数据信息在所述数据库管理系统中建立分布式表;
从数据仓库中获取所述全量数据的指标数据,并通过调用指标数据导入接口,利用所述分布式表将所述全量数据的指标数据分批次插入所述数据库管理系统中。
在一种可能的实施例中,所述处理模块602,还用于:
将所述查询语句传递给数据访问层服务,以使得所述数据访问层服务根据所述查询语句从数据库管理系统包括的所述待导入数据的内容标识对应的指标数据中查询目标数据;
获取所述数据访问层服务返回的所述目标数据。
对于装置实施例而言,由于其与方法实施例基本相似,相关之处参见方法实施例的部分说明即可。
请参见图7,是本发明实施例提供的一种计算机设备的结构示意图。如图7所示,该计算机设备可以包括处理器701、存储器702、网络接口703和至少一个通信总线704。其中,处理器701用于调度计算机程序,可以包括中央处理器、控制器、微处理器;存储器702用于存储计算机程序,可以包括高速随机存取存储器,非易失性存储器,例如磁盘存储器件、闪存器件;网络接口703提供数据通信功能;通信总线704负责连接各个通信元件。
其中,处理器701可以用于调用存储器中的计算机程序,以执行如下操作:
获取客户端提交的数据查询分析请求,所述数据查询分析请求包括数据处理规则;
利用所述数据处理规则从数据库管理系统中获取目标数据,并对所述目标数据进行分析处理,以生成与所述数据处理规则匹配的处理结果,所述目标数据包括内容标识以及对应的指标数据;
向所述客户端发送所述处理结果,所述处理结果包括明细数据查询结果和聚合数据分析结果中的一种或两种。
可选的,所述处理器701,具体用于:
获取所述客户端提交的数据导入请求,所述数据导入请求包括数据过滤规则,所述数据过滤规则包括时间限制条件和类别标签中的一种或多种;
从全量数据中确定符合所述数据过滤规则的待导入数据,所述全量数据包括来自多种数据源的数据;
通过数据同步服务调用内容标识导入接口,将所述待导入数据的内容标识导入到数据库管理系统中。
可选的,所述处理器701,具体用于:
获取所述全量数据的指标数据,并通过所述数据同步服务调用指标数据导入接口,将所述全量数据的指标数据导入到数据库管理系统中,所述指标数据包括访问量。
可选的,所述处理器701,具体用于:
确定与所述数据筛选条件对应的查询语句;
调用数据访问层服务,利用所述查询语句从数据库管理系统中查询目标数据。
可选的,所述处理器701,具体用于:
根据所述数据筛选条件从预定义的多种查询接口中确定目标查询接口;
利用查询分析引擎解析所述目标查询接口,以生成对应的查询语句。
可选的,所述处理器701,具体用于:
利用所述图表类型和图形转换适配器对所述目标数据进行分析处理,以生成对应的图表数据;
将所述图表数据作为处理结果。
可选的,所述处理器701,具体用于:
当任务调度系统的定时时间到达时,调用所述数据同步服务从所述数据仓库中读取所述全量数据的指标数据的元数据信息;
根据所述元数据信息在所述数据库管理系统中建立分布式表;
从数据仓库中获取所述全量数据的指标数据,并通过调用指标数据导入接口,利用所述分布式表将所述全量数据的指标数据分批次插入所述数据库管理系统中。
可选的,所述处理器701,具体用于:
将所述查询语句传递给数据访问层服务,以使得所述数据访问层服务根据所述查询语句从数据库管理系统包括的所述待导入数据的内容标识对应的指标数据中查询目标数据;
获取所述数据访问层服务返回的所述目标数据。
本发明实施例中的计算机设备,可以用于执行上述各方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明实施例还提供一种存储介质,该存储介质中存储了前述网络接入方法的计算机程序,该计算机程序包括程序指令,当一个或多个处理器加载并执行该程序指令,可以实现实施例中对数据处理方法的描述,这里不再赘述,对采用相同方法的有益效果描述,也在此不再赘述。可以理解的是,程序指令可以被部署在一个或能够互相通信的多个终端设备上执行。
本发明实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法的实施例中所执行的步骤。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖范围。