CN112787978B - 数据采集方法、装置、计算机设备和计算机可读存储介质 - Google Patents

数据采集方法、装置、计算机设备和计算机可读存储介质 Download PDF

Info

Publication number
CN112787978B
CN112787978B CN201911082179.9A CN201911082179A CN112787978B CN 112787978 B CN112787978 B CN 112787978B CN 201911082179 A CN201911082179 A CN 201911082179A CN 112787978 B CN112787978 B CN 112787978B
Authority
CN
China
Prior art keywords
data
field
main
length
analyzed
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.)
Active
Application number
CN201911082179.9A
Other languages
English (en)
Other versions
CN112787978A (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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201911082179.9A priority Critical patent/CN112787978B/zh
Publication of CN112787978A publication Critical patent/CN112787978A/zh
Application granted granted Critical
Publication of CN112787978B publication Critical patent/CN112787978B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0023Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the signalling
    • H04L1/0028Formatting
    • H04L1/0029Reduction of the amount of signalling, e.g. retention of useful signalling or differential signalling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种数据采集方法、装置、计算机设备和计算机可读存储介质。该方法应用于数据接收服务端,包括:接收数据上报请求,数据上报请求包括数据体,数据体包括多条数据记录,数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、第一标识和主体数据的长度,其中,当第一标识表征主体数据包括元数据时,主体数据包括有效数据和与元数据中字段对应的字段信息,字段信息包括字段名称的长度、字段名称、第二标识、字段值的长度和字段值;当第一标识表征主体数据中不存在元数据时,主体数据包括有效数据;提取数据上报请求中的数据体;解析数据体,得到多条数据记录。通过本发明,能够减小数据接收服务端响应压力。

Description

数据采集方法、装置、计算机设备和计算机可读存储介质
技术领域
本发明涉及数据采集技术领域,尤其涉及一种数据采集方法、装置、计算机设备和计算机可读存储介质。
背景技术
随着显示屏技术、处理芯片技术以及通信技术的发展,越来越多的工作和生活均离不开互联网上。现有技术中,通过对互联网上操作行为和用户信息等大数据进行研究,以不断提升通过互联网提供服务的舒适度和便利性,其中,数据接收服务端如何采集数据,成为该类研究的基础。
发明人研究发现,目前数据接收服务端在收集上述相关数据时,收集到的数据通常是以文本形式进行传输,例如txt格式、json格式以及xml格式等,而以文本形式进行数据传输时,数据的聚合能力较差,多条数据需要分别接收和解析,导致数据接收服务端与发送端之间需要多次交互,服务端的响应压力较大。
发明内容
本发明的目的是提供一种数据采集方法、装置、计算机设备和计算机可读存储介质,用于解决现有技术中数据接收服务端响应压力大的技术问题。
一方面,为实现上述目的,本发明提供了一种数据采集方法。
该数据采集方法应用于数据接收服务端,包括:接收数据上报请求,其中,数据上报请求包括数据体,数据体包括多条数据记录,数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度;提取数据上报请求中的数据体;解析数据体,以得到数据体中各条数据记录中的主体数据。
进一步地,当第一标识表征主体数据包括元数据时,主体数据包括有效数据和与元数据中字段对应的字段信息;当第一标识表征主体数据中不存在元数据时,主体数据包括有效数据。
进一步地,字段信息包括字段名称的长度、字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和字段值。
进一步地,接收数据上报请求的步骤包括:接收应用程序客户端发送的数据上报请求,其中,多条数据记录对应应用程序客户端接收到的多种操作行为。
进一步地,接收数据上报请求的步骤包括:接收应用程序服务端发送的数据上报请求,其中,多条数据记录对应应用程序服务端接收到的多个应用程序客户端发送的资源请求。
进一步地,解析数据体,以得到数据体中各条数据记录中的主体数据的步骤包括:解析所述数据体得到所述多条数据记录;对数据记录中的数据进行反序列化;提取反序列化后的数据记录中的主体数据。
进一步地,主体数据的描述信息还包括主体数据长度的校验码,解析数据体得到多条数据记录的步骤包括:根据预定算法计算当前解析出的数据记录中主体数据的长度的校验码;提取当前解析出的数据记录中的主体数据长度的校验码;判断计算得到的校验码和提取得到的校验码是否相同;若计算得到的校验码和提取得到的校验码不同,则丢弃当前解析出的数据记录。
进一步地,解析数据体得到多条数据记录的步骤包括:当解析到字段名称的长度时,判断当前解析出的字段名称的长度是否在预设范围内;若当前解析出的字段名称的长度不在预设范围内,则丢弃当前解析的数据记录。
进一步地,解析数据体得到多条数据记录的步骤包括:当解析到字段名称时,判断当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称是否相同;若当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称相同,则丢弃当前解析的数据记录。
进一步地,字段名称的长度占用字段信息的前x1个字节,字段名称位于前x1个字节后且与前x1个字节相邻,第二标识位于字段名称后且占用与字段名称相邻的x2个字节的前y1位,字段值的长度占用x2个字节的后y2位,字段值位于x2个字节后且与x2个字节相邻;元数据中各个字段对应的字段信息依次排列,有效数据位于所有的字段信息之后;主体数据位于主体数据的描述信息之后;解析数据体得到多条数据记录的步骤包括:当解析出一个字段信息后,判断以下不等式是否成立:
parsed_bytes+x1+x2+name_size+meta_size<=size
其中,parsed_bytes为当前解析的数据记录中已解析出的字段信息的字节数,name_size为当前解析出的字段信息中字段名称的字节数,meta_size为当前解析出的字段信息中字段值的字节数,size为当前解析的数据记录中主体数据的长度;若不等式不成立,则丢弃当前解析的数据记录。
另一方面,为实现上述目的,本发明提供了一种数据采集装置。
该数据采集装置应用于数据接收服务端,包括:接收模块,用于接收数据上报请求,其中,数据上报请求包括数据体,数据体包括多条数据记录,数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度;提取模块,用于提取数据上报请求中的数据体;解析模块,用于解析数据体,以得到数据体中各条数据记录中的主体数据。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的数据采集方法、装置、计算机设备和计算机可读存储介质,数据发送端对待传输的数据进行处理,形成特定数据结构的数据记录,再拼接多条数据记录形成数据体,封装至数据上报请求发送至数据接收服务端,数据接收服务端接收到该数据上报请求后,提取数据上报请求中的数据体,然后基于该数据记录的特定结构,能够解析出各条数据记录,进一步解析出数据记录中数据发送端传输数据,因此,该数据采集方法能够在响应一次数据上报请求时得到多条数据记录,在上报相同数据的前提下,能够减少数据发送端与数据接收服务端之前的通信带宽,同时减少数据接收服务端在采集数据时响应数据上报请求的压力。
附图说明
图1为本发明实施例一提供的数据采集方法的流程图;
图2为本发明实施例二提供的数据采集装置的框图;
图3为本发明实施例三提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种数据采集方法、装置、计算机设备和计算机可读存储介质,在本发明提供的数据采集方法中,数据接收服务端接收数据上报请求,该数据上报请求包括数据体,数据体包括多条数据记录,该数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度。
数据发送端基于上述数据记录的结构,将需要传输的数据形成数据记录,并拼接多条数据记录构成数据体,数据接收服务端提取数据上报请求中的数据体,能够基于上述数据记录的结构,从数据体中解析出各条数据记录,并进一步得到主体数据,具体地,数据接收服务端能够通过数据标识识别出数据记录,对于识别出的一条数据记录,通过第一标识和主体数据的长度能够确定出主体数据,实现了有效数据的采集。
从上述过程可以看出,本发明提供的数据采集方法在采集数据时,接收数据上报请求,其中,数据上报请求中的数据体包括多条数据记录,使得数据接收服务端响应一次数据上报请求能够接收到多条有效数据,能够减少数据接收服务端与数据发送端的交互,从而减少数据接收服务端的响应压力。
关于本发明提供的数据采集方法、装置、计算机设备和计算机可读存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例一提供了一种数据采集方法,该数据采集方法应用于数据接收服务端,通过该实施例提供的数据采集方法,能够接收并解析数据发送端发送到的聚合数据,减少数据发送端与数据接收服务端之前的通信带宽,同时减少数据接收服务端响应数据上报请求的响应压力,具体地,图1为本发明实施例一提供的数据采集方法的流程图,如图2所示,该实施例提供的数据采集方法包括如下的步骤S101和步骤S103。
步骤S101:接收数据上报请求。
数据接收服务端采集数据时,接收数据发送端的数据上报请求,其中,数据发送端可以为应用程序客户端,也可以为应用程序服务端,可选地,采集应用程序客户端上用户操作行为相关的数据时,对于用户浏览操作、页面曝光等应用程序服务端无法感知的行为,应用程序客户端可以直接向数据接收服务端发送数据上报请求,也即可以直接在终端上进行数据采集,其余应用程序服务端能够感知的行为,可通过应用程序服务端上报的方式来进行数据采集。数据发送端在向数据接收服务端上报数据时,将待上报的数据封装成为数据记录,然后再将多个数据记录拼接为数据体,作为数据上报请求携带的数据内容进行上报。
具体地,数据上报请求包括数据体,数据体包括多条数据记录,该数据记录包括主体数据和主体数据的描述信息,其中,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度。数据标识为数据记录的标识符,可用于区别本发明中的数据记录与其他数据,数据发送端和数据接收服务端两端商定一个特定字符串作为标识符后,数据发送端将该特定字符串作为数据标识,数据接收服务端接收到数据标识为该特定字符串的数据记录时,即可识别出接收到的数据记录。第一标识通过不同的字符表征主体数据是否包括元数据,例如,第一标识为A字符时,表征主体数据包括元数据,第一标识为B字符时,表征主体数据不包括元数据。
步骤S102:提取数据上报请求中的数据体。
例如数据上报请求为http请求,数据接收服务端提取http请求中的数据体。
步骤S103:解析数据体,以得到数据体中各条数据记录中的主体数据。
在该步骤中,数据接收服务端在解析数据体时,通过数据标识确定该数据记录,然后进一步通过第一标识确定主体数据中是否包括元数据以及主体数据的长度获取主体数据。
采用该实施例提供的数据采集方法,数据发送端对待传输的数据进行处理,形成特定数据结构的数据记录,再拼接多条数据记录形成数据体,封装至数据上报请求发送至数据接收服务端,数据接收服务端接收到该数据上报请求后,提取数据上报请求中的数据体,然后基于该数据记录的特定结构,能够解析出各条数据记录,进一步解析出数据记录中数据发送端传输数据,因此,该数据采集方法能够在响应一次数据上报请求时得到多条数据记录,在上报相同数据的前提下,能够减少数据发送端与数据接收服务端之前的通信带宽,同时减少数据接收服务端在采集数据时响应数据上报请求的压力。
可选地,在一种实施例中红,当第一标识表征主体数据包括元数据时,主体数据包括有效数据和与元数据中字段对应的字段信息;当第一标识表征主体数据中不存在元数据时,主体数据只包括有效数据。元数据为描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件纪录等功能。
可选地,在一种实施例张工,字段信息包括字段名称的长度、字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和字段值。第二标识通过不同的字符表征当前字段信息后是否还存在其他字段信息,例如,第二标识为C字符时,表征当前字段信息后还存在其他字段信息,第二标识为D字符时,表征当前字段信息后不存在其他字段信息。
当主体数据不包括元数据时,得到主体数据也即得到有效数据;当主体数据包括元数据,则通过字段信息获得字段的键值对,也即字段名称和字段值,所有字段的键值对即为有效数据的元数据,其中,在解析每一个字段信息时,通过第二标识确定当前字段信息后是否还存在其他字段信息,若当前字段信息后还存在其他字段信息,继续按照字段信息的结构解析字段信息,若当前字段信息后不存在其他字段信息,则根据已解析的字段信息的长度和主体数据的长度能够得到有效数据的长度,在当前字段信息后获取有效数据的长度的数据,即可得到有效数据。
可选地,在一种实施例中,接收数据上报请求的步骤包括:接收应用程序客户端发送的数据上报请求,其中,多条数据记录对应应用程序客户端接收到的多种操作行为。
具体而言,应用程序客户端位于终端一侧,接收用户的操作,与应用程序服务端进行交互,以及向用户显示相应的信息。例如,当应用程序客户端接收到用户的浏览信息的操作行为时,应用程序客户端将与该浏览信息的操作行为相关的数据信息封装为一条数据记录,当应用程序客户端接收到用户的购买物品的操作行为时,应用程序客户端将与该购买物品的操作行为相关的数据信息封装为另一条数据记录,当应用程序客户端接收到用户的其他操作行为时,应用程序客户端将与该其他操作行为相关的数据信息也封装为数据记录,也即应用程序客户端根据接收到的多种操作行为,封装形成多条数据记录,并将多条数据记录封装成数据体,通过数据上报请求发送至数据接收服务端,从而数据接收服务端响应一次数据上报请求,即可采集到多条数据记录。
采用该实施例提供的数据采集方法,应用程序客户端通过数据上报请求一次上报多条数据记录至数据接收服务端,能够减少应用程序客户端与数据接收服务端之前的通信带宽,同时减少数据上报过程中对应用程序客户端响应用户操作行为的影响,减小数据接收服务端在采集数据时响应数据上报请求的压力。
可选地,在一种实施例中,接收应用程序客户端发送的数据上报请求的步骤具体为:接收应用程序客户端发送的Http Post请求。
具体而言,该实施例提供的数据采集方法支持多条数据记录拼接方式的数据上报,应用程序客户端可将多条数据记录拼装成为数据体,作为Http Post请求的body部分进行数据上报,格式为raw,数据接收服务端接收该请求之后,取出body部分,按照数据格式,解析出多条记录即可。
可选地,在一种实施例中,接收数据上报请求的步骤包括:接收应用程序服务端发送的数据上报请求,其中,多条数据记录对应应用程序服务端接收到的多个应用程序客户端发送的资源请求。
具体而言,应用程序客户端位于终端一侧,接收用户的操作,与应用程序服务端进行交互,以及向用户显示相应的信息。例如,当应用程序客户端接收到用户的浏览信息的操作行为时,应用程序客户端发送资源请求向应用程序服务端请求需要的资源,其中,在资源请求中会携带标识应用程序客户端以及点击浏览操作相关的数据参数,应用程序服务端解析该资源请求得到与应用程序客户端相关的数据信息,同时,根据解析到的信息进一步访问数据库获得其他与应用程序客户端相关的数据信息,最后将获得的信息封装为一条数据记录;不同的应用程序客户端发送资源请求至应用程序服务端,应用程序服务端均会根据资源请求形成一条数据记录,也即应用程序服务端根据接收到的多个应用程序客户端发送的资源请求,分别形成数据记录,得到多条数据记录,然后将多条数据记录封装成数据体,通过数据上报请求发送至数据接收服务端,从而数据接收服务端响应一次数据上报请求,即可采集到多条数据记录。
采用该实施例提供的数据采集方法,数据接收服务端通过应用程序服务端采集终端相关的数据,其中,应用程序服务端基于应用程序客户端发送的资源请求,获取应用程序客户端对应的待传输的数据内容,然后根据此数据内容生成数据记录发送至数据接收服务端,因此,对于该部分数据,无需终端上应用程序客户端再上传至数据接收服务端,减少应用程序客户端通过公网与数据接收服务端之间的请求和数据传输,从而能够减小数据接收服务端采集数据时对应用程序客户端的影响,而且,由于应用程序服务端与数据接收服务端通常处于同一内网,网络环境稳定,能够减小数据丢失率。
可选地,在一种实施例中,接收应用程序服务端发送的数据上报请求的步骤具体为:通过RPC调用的方式接收所述应用程序服务端发送的数据上报请求。
具体而言,数据接收服务端与应用程序服务端之间,通过PRC(Remote ProcedureCall Protocol,远程过程调用协议)框架进行数据传输,应用程序服务端调用数据接收服务端接口,进行数据传递,由于该方式具有重试,负载均衡等有点,能够降低数据丢失率。
可选地,在一种实施例中,解析数据体,以得到数据体中各条数据记录中的主体数据的步骤包括:解析数据体得到多条数据记录;对数据记录中的数据进行反序列化;提取反序列化后的数据记录中的主体数据。
具体而言,数据发送端在发送数据上报请求之前,先对数据体中的数据记录进行序列化,形成二进制数,然后各条二进制格式的数据记录拼接得到数据体。数据接收服务端解析数据体后,解析得到数据体中的多条数据记录,对数据记录中的数据进行反序列化,即可得到原数据。
采用该实施例提供的数据采集方法,数据包以二进制格式进行传输,与直接传输明文相比,不易暴露数据记录中有效数据的内容,提升传输的数据内容的安全性;数据二进制化以后,能够减小传输数据量,节省带宽,提升传输效率,与本发明提供的数据记录的特定数据结构技术手段相结合,后者能够实现多条数据记录的聚合和拆分,前者有利于减小数据记录聚合后再传输的数据量,减小数据聚合受带宽等的影响,因而能够进一步提升数据聚合能力。
可选地,在一种实施例中,主体数据的描述信息还包括主体数据长度的校验码,解析数据体得到多条数据记录的步骤包括:根据预定算法计算当前解析出的数据记录中主体数据的长度的校验码;提取当前解析出的数据记录中的主体数据长度的校验码;判断计算得到的校验码和提取得到的校验码是否相同;若计算得到的校验码和提取得到的校验码不同,则丢弃当前解析出的数据记录。
具体而言,主体数据的描述信息还包括主体数据长度的校验码,数据发送端在组装数据时,形成主体数据后计算出主体数据长度,再利用预定算法对主体数据长度进行计算以得到该校验码,将该校验码置入数据记录进行传输,在数据接收服务端根据接收到的主体数据计算出主体数据长度,再利用相同的预定算法对主体数据长度进行计算以得到一个校验码,数据接收服务端对比自身计算出的校验码和接收到的数据记录中的校验码,不一致时,说明主体数据在传输过程中发生了篡改,此时丢弃当前解析出的数据记录,减少数据采集过程中的脏数据和坏包,提升采集数据的有效性。
可选地,在一种实施例中,解析数据体得到多条数据记录的步骤包括:当解析到字段名称的长度时,判断当前解析出的字段名称的长度是否在预设范围内;若当前解析出的字段名称的长度不在预设范围内,则丢弃当前解析的数据记录。
具体而言,数据接收服务端在解析数据体的过程中,对解析到的字段名称的长度进行判断,例如设置字段名称的长度为最小值为1,最大值为256,不再该范围内的数据记录丢弃,能够减少数据采集过程中的脏数据,提升采集数据的有效性。
可选地,在一种实施例中,解析数据体得到所述多条数据记录的步骤包括:当解析到字段名称时,判断当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称是否相同;若当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称相同,则丢弃当前解析的数据记录。
具体而言,数据接收服务端在解析数据体的过程中,对解析到的字段名称进行判断,若一条数据记录中包括雷同的字段名称,则将该数据记录丢弃,能够减少数据采集过程中的脏数据,提升采集数据的有效性。
可选地,在一种实施例中,字段名称的长度占用字段信息的前x1个字节,字段名称位于前x1个字节后且与前x1个字节相邻,第二标识位于字段名称后且占用与字段名称相邻的x2个字节的前y1位,字段值的长度占用x2个字节的后y2位,字段值位于x2个字节后且与x2个字节相邻。元数据中各个字段对应的字段信息依次排列,有效数据位于所有的字段信息之后;主体数据位于主体数据的描述信息之后。
解析数据体得到多条数据记录的步骤包括:当解析出一个字段信息后,判断以下不等式是否成立:
parsed_bytes+x1+x2+name_size+meta_size<=size
其中,parsed_bytes为当前解析的数据记录中已解析出的字段信息的字节数,name_size为当前解析出的字段信息中字段名称的字节数,meta_size为当前解析出的字段信息中字段值的字节数,size为当前解析的数据记录中主体数据的长度;若不等式不成立,则丢弃当前解析的数据记录。
具体而言,在解析字段信息时,首先获取字段名称的长度的内容,解析到字段名称的长度,然后再获取解析到字段名称的长度数量的内容,解析到字段名称,再获取第二标识和字段值的长度的内容,先解析前y1位得到第二标识,再解析后y2位得到字段值的长度,最后获取解析到字段值的长度的内容,即可解析到字段值,字段名称和字段值构成字段的键值对。
在解析出一个字段信息后,若上述不等式不成立,表明数据记录中字段信息和/或有效数据的数据异常,此时将该数据记录丢弃,能够减少数据采集过程中的脏数据,提升采集数据的有效性。
可选地,在一种实施例中,在数据记录中,预定的节字符串作为数据标识,设置于主体数据的描述信息的前x3个字节,第一标识设置于x3个字节后且与x3个字节相邻的x4个字节的前y3位;主体数据的长度设置于x4个字节的后y4位,其中,y3位和y4位构成x4个字节;校验码设置于描述信息的最后x5个字节,其中,x3、x4、x5、y3和y4均为自然数。
在该实施例中,在数据记录中,数据标识、第一标识和主体数据的长度、校验码分别设置为固定数量的字节数,且字节数不固定的主体数据位于校验码之后,在构建主体数据的描述信息时,首先将预定的字符串作为数据标识,设置于描述信息的前x3个字节,用于标识数据记录,然后根据有效数据是否具有元数据来设置第一标识,当有效数据具有元数据时,第一标识设置为表征主体数据包括元数据的值,当有效数据不具有元数据时,第一标识设置为表征主体数据不包括元数据的值,将第一标识设置于数据标识之后的x4个字节的前y3位;当有效数据具有元数据时,计算有效数据的长度和字段信息的长度得到主体数据的长度,设置于该x4个字节的后y4位,当有效数据不具有元数据时,计算有效数据的长度得到主体数据的长度,设置于该x4个字节的后y4位;再根据主体数据的长度计算得到校验码,设置于主体数据的长度之后的x5个字节,完成主体数据的描述信息的设置,再将主体数据设置于该描述信息之后,即可生成数据记录。
基于上述数据结构的数据记录,数据接收服务端在接收到数据记录后,基于数据标识中的特定字符串识别出数据记录,然后在数据标识后间隔x4个字节提取x5个字节的内容,得到校验码,在校验码后至下一个数据标识之间提取主体数据,可根据校验码对主体数据进行校验,校验通过后,在数据标识后提取x4个字节的前y3位的内容,得到第一标识,根据第一标识确定主体数据的结构,当第一标识表征主体数据包括元数据时,按照上述解析字段信息的过程对主体数据中的字段信息进行解析得到元数据,再提取有效数据;当主体数据不包括元数据时,直接提取主体数据得到有效数据。
在一种具体的实施例中,设置x3=4,x4=4,x5=1,y3=1,y4=31,如下表1所示:
表1数据记录结构表
magic_num(4bytes) metabit_and_size(4bytes) size_checksum(1byte) data(size bytes)
将预定的节字符串作为数据标识设置于描述信息的前4个字节,数据标识为4字节字符串,无需考虑字节序;将第一标识设置于中间4个字节的最高位,用于表示data中是否有meta数据,其中,第一标识为1时,表征主体数据data中存在有meta数据,具体主体数据data中包含一个或多个meta数据,主体数据data的具体结构可参见上文,第一标识为0时,表征主体数据data中没有meta数据,主体数据data即为有效数据payload,主体数据的长度size就是有效数据payload的字节数;将主体数据的长度size设置于中间4个字节的后31位,无符号,最小值为0,最大值为0x7FFFFFFF,用于代表data的字节数,为0时有效数据payload段不存在(或理解为空);校验码设置于第5个字节,数据接收服务端能够根据校验码对主体数据进行校验。
第一标识为1时,主体数据data的数据结构如下表2,设置x1=1,x2=4,y1=1,y2=31,如下表2所示:
表2字段信息结构表
Figure BDA0002264311110000131
将字段名称的长度name_size设置为1个字节,具体为8位无符号数,最小值为1,最大值为256,代表meta_name的长度;meta_name对应字段名称,可包含任意字符(支持utf-8名称),但至少有要1个字符;第二标识moremeta和字段值的长度meta_size设置4个字节,4个字节中的最高位为第二标识,其中,第二标识为1时,表征当前字段信息后还存在其他字段信息,第二标识为0时,表征当前字段信息后不存在其他字段信息。后31位为字段值的长度meta_size,无符号,最小值为0,最大值为0x7FFFFFFF,代表meta数据的字节数,字段值的长度meta_size为0时,可表征后续的meta数据段不存在(或理解为空)。
在解析字段信息时,首先获取第1个字节的内容,解析到字段名称的长度,然后再获取解析到字段名称的长度数量的内容,解析到字段名称meta_name,再获取4个字节的内容,解析该4个字节的最高位得到第二标识,解析该4个字节的后31位得到字段值的长度,最后获取解析到字段值的长度的内容,即可解析到字段值Meta。
实施例二
对应于上述实施例一,本发明实施例二提供了一种数据采集装置,该数据采集装置设置于数据接收服务端,相关技术特征和技术效果可参考上述实施例一。图2为本发明实施例二提供的数据采集装置的框图,如图2所示,该装置包括:接收模块201、提取模块202和解析模块203。
其中,接收模块201用于接收数据上报请求,其中,数据上报请求包括数据体,数据体包括多条数据记录,数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度;提取模块202用于提取数据上报请求中的数据体;解析模块203用于解析数据体,以得到数据体中各条数据记录中的主体数据。
可选地,在一种实施例中,当第一标识表征主体数据包括元数据时,主体数据还包括有效数据和与元数据中字段对应的字段信息;当第一标识表征主体数据中不存在元数据时,主体数据包括有效数据。
可选地,在一种实施例中,字段信息包括字段名称的长度、字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和字段值。
可选地,在一种实施例中,接收模块201用于接收应用程序客户端发送的数据上报请求,其中,多条数据记录对应应用程序客户端接收到的多种操作行为。
可选地,在一种实施例中,接收模块201在接收应用程序客户端发送的数据上报请求时,执行的步骤具体为:接收应用程序客户端发送的Http Post请求。
可选地,在一种实施例中,接收模块201用于接收应用程序服务端发送的数据上报请求,其中,多条数据记录对应应用程序服务端接收到的多个应用程序客户端发送的资源请求。
可选地,在一种实施例中,接收模块201在接收应用程序服务端发送的数据上报请求时,执行的步骤具体为:通过RPC调用的方式接收应用程序服务端发送的数据上报请求。
可选地,在一种实施例中,解析模块203包括:解析单元,用于解析数据体得到多条数据记录;反序列化单元,用于在解析数据体,以得到多条数据记录的步骤之后,对数据记录中的数据进行反序列化;提取单元,用于提取反序列化后的数据记录中的主体数据。
可选地,在一种实施例中,主体数据的描述信息还包括主体数据长度的校验码,解析单元包括:第一处理子单元,用于根据预定算法计算当前解析出的数据记录中主体数据的长度的校验码,提取当前解析出的数据记录中的主体数据长度的校验码,判断计算得到的校验码和提取得到的校验码是否相同,若计算得到的校验码和提取得到的校验码不同,则丢弃当前解析出的数据记录。
可选地,在一种实施例中,解析单元包括:第二处理子单元,用于当解析到字段名称的长度时,判断当前解析出的字段名称的长度是否在预设范围内;若当前解析出的字段名称的长度不在预设范围内,则丢弃当前解析的数据记录。
可选地,在一种实施例中,解析单元包括:第三处理子单元,用于当解析到字段名称时,判断当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称是否相同,若当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称相同,则丢弃当前解析的数据记录。
可选地,在一种实施例中,字段名称的长度占用字段信息的前x1个字节,字段名称位于前x1个字节后且与前x1个字节相邻,第二标识位于字段名称后且占用与字段名称相邻的x2个字节的前y1位,字段值的长度占用x2个字节的后y2位,字段值位于x2个字节后且与x2个字节相邻;元数据中各个字段对应的字段信息依次排列,有效数据位于所有的字段信息之后;主体数据位于主体数据的描述信息之后;解析单元包括:第四处理子单元,用于当解析出一个字段信息后,判断以下不等式是否成立:
parsed_bytes+x1+x2+name_size+meta_size<=size
其中,parsed_bytes为当前解析的数据记录中已解析出的字段信息的字节数,name_size为当前解析出的字段信息中字段名称的字节数,meta_size为当前解析出的字段信息中字段值的字节数,size为当前解析的数据记录中主体数据的长度;若不等式不成立,则丢弃当前解析的数据记录。
实施例三
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图3所示。需要指出的是,图3仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例二的数据采集装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如数据采集方法等。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据采集装置,被处理器执行时实现实施例一的数据采集方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (12)

1.一种数据采集方法,其特征在于,应用于数据接收服务端,所述数据采集方法包括:
接收数据上报请求,其中,所述数据上报请求包括数据体,所述数据体包括多条数据记录,所述数据记录包括主体数据和所述主体数据的描述信息,所述主体数据的描述信息包括数据标识、表征所述主体数据是否包括元数据的第一标识和所述主体数据的长度,其中,当所述第一标识表征所述主体数据包括元数据时,所述主体数据包括有效数据和与所述元数据中字段对应的字段信息,当所述第一标识表征所述主体数据中不存在元数据时,所述主体数据包括所述有效数据,所述元数据为描述数据属性的信息;
提取所述数据上报请求中的所述数据体;
解析所述数据体,以得到所述数据体中各条所述数据记录中的主体数据。
2.根据权利要求1所述的数据采集方法,其特征在于,
所述字段信息包括字段名称的长度、所述字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和所述字段值。
3.根据权利要求1所述的数据采集方法,其特征在于,接收数据上报请求的步骤包括:
接收应用程序客户端发送的数据上报请求,其中,所述多条数据记录对应所述应用程序客户端接收到的多种操作行为。
4.根据权利要求1所述的数据采集方法,其特征在于,接收数据上报请求的步骤包括:
接收应用程序服务端发送的数据上报请求,其中,所述多条数据记录对应所述应用程序服务端接收到的多个应用程序客户端发送的资源请求。
5.根据权利要求2所述的数据采集方法,其特征在于,解析所述数据体,以得到所述数据体中各条所述数据记录中的主体数据的步骤包括:
解析所述数据体得到所述多条数据记录;
对所述数据记录中的数据进行反序列化;
提取反序列化后的所述数据记录中的所述主体数据。
6.根据权利要求5所述的数据采集方法,其特征在于,所述主体数据的描述信息还包括所述主体数据长度的校验码,解析所述数据体得到所述多条数据记录的步骤包括:
根据预定算法计算当前解析出的所述数据记录中主体数据的长度的校验码;
提取当前解析出的所述数据记录中的所述主体数据长度的校验码;
判断计算得到的校验码和提取得到的校验码是否相同;
若计算得到的校验码和提取得到的校验码不同,则丢弃当前解析出的所述数据记录。
7.根据权利要求5所述的数据采集方法,其特征在于,解析所述数据体得到所述多条数据记录的步骤包括:
当解析到所述字段名称的长度时,判断当前解析出的所述字段名称的长度是否在预设范围内;
若当前解析出的所述字段名称的长度不在所述预设范围内,则丢弃当前解析的所述数据记录。
8.根据权利要求5所述的数据采集方法,其特征在于,解析所述数据体得到所述多条数据记录的步骤包括:
当解析到所述字段名称时,判断当前解析出的所述字段名称与当前解析的所述数据记录中已解析出的所述字段名称是否相同;
若当前解析出的所述字段名称与当前解析的所述数据记录中已解析出的所述字段名称相同,则丢弃当前解析的所述数据记录。
9.根据权利要求5所述的数据采集方法,其特征在于,
所述字段名称的长度占用所述字段信息的前x1个字节,所述字段名称位于所述前x1个字节后且与所述前x1个字节相邻,所述第二标识位于所述字段名称后且占用与所述字段名称相邻的x2个字节的前y1位,所述字段值的长度占用所述x2个字节的后y2位,所述字段值位于所述x2个字节后且与所述x2个字节相邻;
所述元数据中各个字段对应的字段信息依次排列,所述有效数据位于所有的所述字段信息之后;
所述主体数据位于所述主体数据的描述信息之后;
解析所述数据体得到所述多条数据记录的步骤包括:
当解析出一个字段信息后,判断以下不等式是否成立:
parsed_bytes+x1+x2+name_size+meta_size<=size
其中,parsed_bytes为当前解析的所述数据记录中已解析出的所述字段信息的字节数,name_size为当前解析出的所述字段信息中所述字段名称的字节数,meta_size为当前解析出的所述字段信息中所述字段值的字节数,size为当前解析的所述数据记录中所述主体数据的长度;
若所述不等式不成立,则丢弃当前解析的所述数据记录。
10.一种数据采集装置,其特征在于,应用于数据接收服务端,所述数据采集装置包括:
接收模块,用于接收数据上报请求,其中,所述数据上报请求包括数据体,所述数据体包括多条数据记录,所述数据记录包括主体数据和所述主体数据的描述信息,所述主体数据的描述信息包括数据标识、表征所述主体数据是否包括元数据的第一标识和所述主体数据的长度,其中,当所述第一标识表征所述主体数据包括元数据时,所述主体数据包括有效数据和与所述元数据中字段对应的字段信息,当所述第一标识表征所述主体数据中不存在元数据时,所述主体数据包括所述有效数据,所述元数据为描述数据属性的信息;
提取模块,用于提取所述数据上报请求中的所述数据体;
解析模块,用于解析所述数据体,以得到所述数据体中各条所述数据记录中的主体数据。
11.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤。
CN201911082179.9A 2019-11-07 2019-11-07 数据采集方法、装置、计算机设备和计算机可读存储介质 Active CN112787978B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911082179.9A CN112787978B (zh) 2019-11-07 2019-11-07 数据采集方法、装置、计算机设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911082179.9A CN112787978B (zh) 2019-11-07 2019-11-07 数据采集方法、装置、计算机设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112787978A CN112787978A (zh) 2021-05-11
CN112787978B true CN112787978B (zh) 2023-04-07

Family

ID=75747888

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911082179.9A Active CN112787978B (zh) 2019-11-07 2019-11-07 数据采集方法、装置、计算机设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112787978B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347233B (zh) * 2021-05-20 2022-09-20 深圳软牛科技有限公司 从云端提取通话和wifi数据的方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957241A (zh) * 2014-04-16 2014-07-30 中国工商银行股份有限公司 一种基于报文数据的通信方法及装置
CN106209812A (zh) * 2016-07-04 2016-12-07 深圳市得润车联科技有限公司 一种物联网终端平台数据封装的方法
CN108519967A (zh) * 2018-04-08 2018-09-11 深圳乐信软件技术有限公司 图表可视化方法、装置、终端和存储介质
CN109818930A (zh) * 2018-12-27 2019-05-28 南京信息职业技术学院 一种基于tcp协议的通讯文本数据传输方法
CN110113323A (zh) * 2019-04-20 2019-08-09 深圳瀚星翔科技有限公司 一种通信方法、电子设备及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957241A (zh) * 2014-04-16 2014-07-30 中国工商银行股份有限公司 一种基于报文数据的通信方法及装置
CN106209812A (zh) * 2016-07-04 2016-12-07 深圳市得润车联科技有限公司 一种物联网终端平台数据封装的方法
CN108519967A (zh) * 2018-04-08 2018-09-11 深圳乐信软件技术有限公司 图表可视化方法、装置、终端和存储介质
CN109818930A (zh) * 2018-12-27 2019-05-28 南京信息职业技术学院 一种基于tcp协议的通讯文本数据传输方法
CN110113323A (zh) * 2019-04-20 2019-08-09 深圳瀚星翔科技有限公司 一种通信方法、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN112787978A (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
US11347958B2 (en) Computer configured to display multimedia content
CN111555963B (zh) 消息推送方法、装置、电子设备及存储介质
CN110708215A (zh) 深度包检测规则库生成方法、装置、网络设备及存储介质
CN106656953A (zh) 一种基于互联网的系统间安全调用接口实现方法
CN109815214B (zh) 数据库访问方法、系统、装置及存储介质
CN107124430B (zh) 页面劫持监控方法、装置、系统和存储介质
CN109862021B (zh) 威胁情报的获取方法及装置
CN114500690B (zh) 接口数据处理方法、装置、电子设备及存储介质
CN112702228B (zh) 服务限流响应方法、装置、电子设备及可读存储介质
CN112839083A (zh) 一种数据传输方法及装置、可读存储介质
CN112787978B (zh) 数据采集方法、装置、计算机设备和计算机可读存储介质
CN112788078B (zh) 数据传输方法、接收装置、发送装置和计算机设备
CN112788077B (zh) 数据采集方法、装置、计算机设备和计算机可读存储介质
CN106411891B (zh) 文件处理方法、装置、服务端和设备
CN105959344B (zh) 一种Web推送方法及装置
CN114979307A (zh) 通信协议的解析方法、智能终端及存储介质
CN113672460A (zh) 一种服务监控方法及装置
CN113300915A (zh) 设备识别方法、系统、电子装置和存储介质
CN117389769B (zh) 基于云服务的浏览器端富文本拷贝方法、系统及云平台
CN114090112B (zh) 配置文件的加载方法和装置、存储介质及电子装置
CN111385136B (zh) 一种用户通信标识的确定方法和装置
CN113132324B (zh) 样本鉴定方法及系统
CN114785878A (zh) 信息提取方法及装置、电子设备、计算机可读存储介质
CN117131840A (zh) excel文档解析方法、装置、电子设备及存储介质
CN116245641A (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