CN112988806A - 一种数据处理的方法及装置 - Google Patents

一种数据处理的方法及装置 Download PDF

Info

Publication number
CN112988806A
CN112988806A CN201911302975.9A CN201911302975A CN112988806A CN 112988806 A CN112988806 A CN 112988806A CN 201911302975 A CN201911302975 A CN 201911302975A CN 112988806 A CN112988806 A CN 112988806A
Authority
CN
China
Prior art keywords
data
script
user behavior
processing
calculation
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.)
Pending
Application number
CN201911302975.9A
Other languages
English (en)
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 Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Wodong Tianjun 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 Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Wodong Tianjun Information Technology Co Ltd
Priority to CN201911302975.9A priority Critical patent/CN112988806A/zh
Publication of CN112988806A publication Critical patent/CN112988806A/zh
Pending legal-status Critical Current

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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种数据处理的方法及装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取数据请求,所述数据请求指示了用于处理用户行为数据的计算脚本、以及所述用户行为数据所属数据表的数据维度;根据所述数据请求实时调用计算脚本,以利用所述计算脚本根据所述数据维度从数据表中提取所述用户行为数据,并实时处理所述用户行为数据;输出所述用户行为数据的处理结果。该实施方式缩短数据请求的反馈周期,满足数据实时交付的场景。

Description

一种数据处理的方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理的方法及装置。
背景技术
随着计算机技术的发展,大数据加工与提取的场景越来也多,例如对用户行为数据进行加工与提取,在这些大数据加工与提取的场景中,一般通过配置定时任务完成数据交付。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
定时任务在当前触发时刻被触发后,处理已存在数据请求,并在处理完已存在的数据请求后即停止。若在定时任务执行完成之后以及下一触发时刻之前,接收到新的数据请求,则定时任务需在下一触发时刻才能处理新的数据请求,这导致数据请求的反馈周期较长,难以满足实时的数据加工和提取场景。
发明内容
有鉴于此,本发明实施例提供一种数据处理的方法及装置,能够在接收到数据请求后,实时调用计算脚本,以利用计算脚本对用户行为数据进行实时处理,并输出相应的用户行为数据的处理结果,从而缩短数据请求的反馈周期,满足数据实时交付的场景。并且可根据用户行为数据的处理结果,及时确定用户画像和/或物品画像,从而有利于提高用户粘度,提升用户体验。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据处理的方法。
本发明实施例的一种数据处理的方法包括:获取数据请求,所述数据请求指示了用于处理用户行为数据的计算脚本、以及所述用户行为数据所属数据表的数据维度;
根据所述数据请求实时调用计算脚本,以利用所述计算脚本根据所述数据维度从数据表中提取所述用户行为数据,并实时处理所述用户行为数据;
输出所述用户行为数据的处理结果。
可选地,
所述数据请求还指示了用于处理所述用户行为数据的多个计算脚本的调用顺序;
所述根据所述数据请求实时调用计算脚本,以利用所述计算脚本实时处理所述数据,包括:
根据所述调用顺序调用所述计算脚本,以根据所述调用顺序处理所述用户行为数据。
可选地,
所述根据所述调用顺序调用所述计算脚本,包括:
分别生成用于实时处理所述用户行为数据的多个计算脚本所对应的线程,并根据所述调用顺序,串行和/或并行执行各个所述线程,以调用所述计算脚本。
可选地,
所述串行执行各个所述线程,包括:
根据所述调用顺序,确定多个所述计算脚本之间的父子依赖关系,串行执行具有所述父子依赖关系的计算脚本所对应的线程。
可选地,
所述数据请求还指示了所请求的任务类型;
所述根据所述数据请求调用计算脚本,包括:
根据所述任务类型确定所述数据请求的处理时限,并根据所述处理时限调用所述计算脚本。
可选地,
当接收到多个所述数据请求时,根据所述数据请求指示的所述任务类型确定所述多个数据请求的执行优先级,并根据所述执行优先级调用计算脚本。
可选地,该方法还包括:
根据所述用户行为数据的处理结果,确定所述用户行为数据所对应的用户画像和/或物品画像。
可选地,该方法还包括:
监控被调用的所述计算脚本的执行状态,当被调用的所述计算脚本的执行时长大于第一阈值、和/或被调用的所述计算脚本所占内存资源大于第二阈值时,停止执行被调用的所述计算脚本。
可选地,
所述数据请求还指示了输入所述数据请求的来源***的来源标识;
当监控到被调用的所述计算脚本执行失败时,根据所述来源标识,向所述来源***反馈所述计算脚本执行失败的结果。
可选地,
所述数据请求还指示了数据的存储地址;
所述输出用户行为数据的处理结果,包括:
将所述用户行为数据的处理结果存储至与所述存储地址相对应的存储空间。
为实现上述目的,根据本发明实施例的又一方面,提供了一种数据处理的装置。
本发明实施例的一种数据处理的装置包括:请求获取模块、脚本调用模块和处理模块;其中,
所述请求获取模块,用于获取数据请求,所述数据请求指示了用于处理用户行为数据的计算脚本、以及所述用户行为数据所属数据表的数据维度;
所述脚本调用模块,用于根据所述数据请求实时调用计算脚本,以利用所述计算脚本根据所述数据维度从数据表中提取所述用户行为数据,并实时处理所述用户行为数据;
所述处理模块,用于输出所述用户行为数据的处理结果。
为实现上述目的,根据本发明实施例的又一方面,提供了一种数据处理的电子设备。
本发明实施例的一种数据处理的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种数据处理的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种数据处理的方法。
上述发明中的一个实施例具有如下优点或有益效果:在接收到数据请求后,实时调用计算脚本,以利用计算脚本对用户行为数据进行实时处理,并输出相应的用户行为数据的处理结果,从而缩短数据请求的反馈周期,满足数据实时交付的场景。并且可根据用户行为数据的处理结果,及时确定用户画像和/或物品画像,从而有利于提高用户粘度,提升用户体验。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种数据处理的方法的主要步骤的示意图;
图2是根据本发明实施例的另一种数据处理的方法的主要步骤的示意图;
图3是根据本发明实施例的又一种数据处理的方法的主要步骤的示意图;
图4是根据本发明实施例的再一种数据处理的方法的主要步骤的示意图;
图5是根据本发明实施例的还一种数据处理的方法的主要步骤的示意图;
图6是根据本发明实施例的一种数据处理的装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性***架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例的数据处理的方法的主要步骤的示意图。
如图1所示,本发明实施例的数据处理的方法主要包括以下步骤S101至步骤S103:
步骤S101:获取数据请求,所述数据请求指示了用于处理用户行为数据的计算脚本、以及所述用户行为数据所属数据表的数据维度。
本发明实施例提供的数据处理方法可基于含有驱动执行引擎的数据处理装置实现,该驱动执行引擎可实现数据脚本的上传和调用。具体地,驱动执行引擎可提供计算脚本的落地集市,大数据研发人员可将开发出的计算脚本上传至落地集市。当业务***需要进行数据处理时,可通过向驱动执行引擎发送数据请求,该数据请求指示用于处理数据的计算脚本,以调用驱动执行引擎实时驱动相应的计算脚本运行来实现用户行为数据的处理。可以理解的是,不同业务***均可通过向驱动执行引擎发送数据请求的方式来调用相应的计算脚本。
在大数据加工与提取的场景下,用户行为数据一般以数据表的形式存储于数据仓库中,因此,为了便于从数据表中提取用户行为数据,以对提取的用户行为数据进行处理,数据请求还指示了用户行为数据所属数据表的数据维度。可以理解的是,该数据维度与计算脚本相对应,例如,计算脚本A用于处理数据表1中的用户行为数据,计算脚本B用于处理数据表2中的用户行为数据,则数据请求将分别指示不同计算脚本对应的数据维度,也就是说,当数据请求指示的用于处理数据的计算脚本为多个时,数据请求分别指示各个计算脚本所对应的用户行为数据所属数据表的数据维度。在本例中,数据请求分别指示计算脚本A将处理数据表1中的哪些数据维度,以及计算脚本B将处理数据表2中的哪些数据维度。
步骤S102:根据所述数据请求实时调用计算脚本,以利用所述计算脚本根据所述数据维度从数据表中提取所述用户行为数据,并实时处理所述用户行为数据。
当数据请求指示了用户行为数据所属数据表的数据维度时,数据处理装置在实时调用计算脚本时,可利用所述计算脚本根据所述数据维度从所述数据表中提取出所述用户行为数据,并实时处理所述用户行为数据。例如,在执行计算脚本对应的任务实例时,可根据数据请求所指示的数据维度,从Hive中抽取出相应数据维度的用户行为数据,并对用户行为数据进行处理。其中,Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类SQL查询功能。
步骤S103:输出所述用户行为数据的处理结果。
包括驱动执行引擎的数据处理装置接收到数据请求后,可根据数据请求指示的用于处理用户行为数据的计算脚本,构建相应的任务实例,每一个计算脚本对应一个任务实例,且每一个任务实例可绑定一个唯一标识(以下称为任务实例ID),则根据数据请求所指示的一个或多个用于处理用户行为数据的计算脚本分别对应的任务实例,可生成该数据请求对应的任务。
当然,构建任务实例的过程也可以在接收到数据请求之前进行,也就是说,在接收到数据请求之前,预先生成每个计算脚本所对应的任务实例。则当接收到数据请求之后,可根据数据请求所指示的用于处理数据请求的计算脚本,进而根据该计算脚本对应的任务实例生成数据请求所对应的任务。生成数据请求所对应的任务后,运行该任务即可实现调用相应的计算脚本,以利用计算脚本处理数据。
在抽取用户行为数据前,可先构建一张临时的数据表,在从Hive中抽取出相应数据维度的用户行为数据后,将抽取出的用户行为数据存入该临时的数据表中,然后对临时数据表中的数据进行处理,得到用户行为数据处理的结果,当然,用户行为数据处理的结果可以存入这种临时数据表中,也可以存储于另外的数据表中。另外,也可直接在Hive中抽取相应维度的用户行为数据,并在Hive中对相应用户行为数据进行处理。
由于每个计算脚本对应有任务实例,则当需要处理同一数据表中不同数据维度的用户行为数据时,仅需更改数据请求所指示的数据维度即可得到不同的数据处理结果。例如,业务***先向数据处理装置发送指示了数据表A的数据维度1和数据维度2的数据请求,得到相应的数据处理结果后,业务***想进一步获取关于数据表A的数据维度3和数据维度4的数据处理结果,此时业务***仅需更改数据请求所指示的数据维度,并根据更改后的数据维度,重新生成数据请求,并将新生成的数据请求发送给数据处理装置,由此即可获得关于数据表A的数据维度3和数据维度4的数据处理结果。由此,针对同一个计算脚本,通过改变数据维度即可使得计算脚本根据数据维度抽取不同的用户行为数据,以得到不同的数据处理结果,进而可得到不同的用户画像和/或物品画像。例如,当user_info表中存储了1-80岁年龄段人的基本信息,可通过调整age参数,就可以输出不同结果集,从而筛选不同年龄段的用户信息,该实施方式至少可通过以下程序语言实现:Select name,age,sex fromuser_info where age in(数据维度)。由此,可通过改变数据维度的方式便捷的获取不同的数据处理结果,而在现有技术中,当需要改变数据维度时,只能临时停止定时任务,在改变之前输入的数据维度之后,还需等待定时任务的下一触发时刻才能执行更改数据维度后的任务,本发明实施例提供的方式可基于参数化计算脚本,实现自动改变数据维度,从而有利于提高数据处理效率,并提高数据交付的实时性,满足数据准实时交付场景。
可通过依次执行该任务所包括的任务实例来运行任务,当任务包括多个任务实例时,也就是数据请求指示了多个用于处理数据的计算脚本时,可依次执行多个计算脚本分别对应的多个任务实例,每执行成功一个任务实例后,再执行下一个任务实例,直至成功执行所有任务实例以完成数据处理或任务实例发生异常而停止运行任务。
也就是说,在运行任务的过程中,可监控被调用的所述计算脚本的执行状态,当被调用的所述计算脚本的执行时长大于第一阈值、和/或被调用的所述计算脚本所占内存资源大于第二阈值时,停止执行被调用的所述计算脚本。
当被调用的计算脚本的执行时长大于第一阈值时,说明计算脚本的运行时长过长;当被调用的计算脚本所占用内存资源大于第二阈值时,说明该计算脚本占用资源过多。这些情况可能是由于计算脚本发生异常所带来的,为了避免这些计算脚本占用过多资源,影响数据处理效率,此时可停止执行被调用的计算脚本,也就是停止执行该计算脚本所对应的任务实例。
并且,由于每个任务实例有其唯一的任务实例ID,在任务实例发生异常时,可根据该唯一的任务实例ID排查发生的异常的任务实例,并向发送数据请求的来源***反馈执行失败的结果。换句话说,当任务实例未被成功执行即停止时,说明该任务实例执行失败,也就是该任务实例对应的计算脚本执行失败,此时可根据任务实例ID定位到执行失败的任务实例,并根据数据请求指示的输入数据请求的来源***的来源标识,向来源***反馈计算脚本执行失败的结果,并且在反馈结果时,可反馈具体的计算脚本所对应的任务实例ID,以使来源***明确执行失败的计算脚本。
根据上述实施例,在被调用的计算脚本的执行过程中,数据处理装置可监控计算脚本的执行状态,以确保数据请求所对应任务的实时性和准确性。当计算脚本执行失败时,可向输入数据请求的来源***反馈计算脚本执行失败的结果,该结果也表征了数据处理失败的结果。
基于上述实施例,参考图2,本发明实施例提供的数据处理的方法可以包括以下步骤:
步骤S201:获取数据请求,所述数据请求指示了用于处理所述数据的计算脚本以及输入所述数据请求的来源***的来源标识。
步骤S202:根据所述数据请求调用计算脚本,监控被调用的所述计算脚本的执行状态。
步骤S203:当被调用的所述计算脚本的执行时长大于第一阈值时,停止执行被调用的计算脚本,并确定所述计算脚本执行失败。
步骤S204:根据所述来源标识,向所述来源***反馈所述计算脚本执行失败的结果,以向所述来源***反馈数据处理失败的结果。
另外,当被调用的计算脚本所占内存资源大于第二阈值时,也将停止执行被调用的计算脚本,也就是说,本发明实施例提供的数据处理方法还可以包括如图3所示的步骤S301至步骤S304:
步骤S301:获取数据请求,所述数据请求指示了用于处理所述数据的计算脚本以及输入所述数据请求的来源***的来源标识。
步骤S302:根据所述数据请求调用计算脚本,监控被调用的所述计算脚本的执行状态。
步骤S303:当被调用的所述计算脚本所占内存资源大于第二阈值时,停止执行被调用的计算脚本,并确定所述计算脚本执行失败。
步骤S304:根据所述来源标识,向所述来源***反馈所述计算脚本执行失败的结果,以向所述来源***反馈数据处理失败的结果。
当数据请求指示了多个用于处理数据的计算脚本时,也就是说,当数据请求对应的任务包括多个任务实例时,业务***还可指定多个任务实例的执行顺序,也就是说,数据请求还可指示多个计算脚本的调用顺序,则驱动执行引擎可根据该调用顺序调用相应的计算脚本,以按照该调用顺序执行各个计算脚本所对应的任务实例,以根据该调用顺序处理数据。
在调用计算脚本时,可分别生成多个计算脚本分别对应的线程来调用计算脚本,如每个计算脚本对应一个线程,为了提高计算脚本的调用效率,从而提高数据处理的效率,则可并行执行各个线程。但是,某些计算脚本之间具有父子依赖关系,也就是说,某一计算脚本的执行依赖于另一计算脚本的执行结果,则这种具有父子依赖关系的计算脚本所对应的线程仅能串行执行,其中,计算脚本之间的父子依赖关系可根据数据请求所指示的多个计算脚本的调用顺序来确定。
例如,当数据请求指示的用于用户行为数据处理的多个计算脚本为计算脚本A、计算脚本B和计算脚本C,且数据请求指示的计算脚本的调用顺序为:先调用计算脚本A,再调用计算脚本B。由于计算脚本B的调用在计算脚本A之后,则说明计算脚本B的调用需基于计算脚本A的执行过程,也就是说明计算脚本A与计算脚本B之间具有父子依赖关系,此时需串行执行计算脚本A和计算脚本B分别对应的线程。而计算脚本C与计算脚本A和计算脚本B的调用顺序没有前后关系,则计算脚本C所对应的线程可与计算脚本A和计算脚本B分别对应的线程并行执行,也就是说,计算脚本C对应的线程可与计算脚本A对应的线程同时执行,也可以与计算脚本B对应的线程同时执行,以提高数据处理的效率。
当然,在具体实施过程中,也可根据实际情况选择串行或并行执行各个线程,例如,选择串行方式执行不具有父子依赖关系的各个计算脚本所对应的线程。
在本发明一个优选的实施方式中,串行执行具有父子依赖关系的计算脚本所对应的线程,且并行执行不具有父子依赖关系的计算脚本所对应的线程,以尽可能提高数据处理的效率。由此,如图4所示,本发明实施例提供的数据处理方法可以包括以下步骤S401至步骤S404:
步骤S401:获取数据请求,所述数据请求指示了用于处理所述数据的多个计算脚本以及所述多个计算脚本的调用顺序。
步骤S402:分别生成所述多个计算脚本所对应的线程,根据所述调用顺序,确定多个所述计算脚本之间的父子依赖关系。
步骤S403:串行执行具有所述父子依赖关系的计算脚本所对应的线程,并行执行不具有所述父子依赖关系的计算脚本所对应的线程,以利用所述线程调用所述计算脚本,使得按照调用顺序处理数据。
步骤S404:输出数据处理后的结果。
另外,不同业务***可根据不同的业务场景发送针对不同任务类型的数据请求,也就是说,数据请求不仅指示用于处理数据的数据脚本,还可指示所请求的任务类型。数据处理装置可根据所述任务类型确定所述数据请求的处理时限,并根据所述处理时限调用所述计算脚本。并且,当数据处理装置接收到多个所述数据请求时,根据所述数据请求指示的所述任务类型确定所述多个数据请求的执行优先级,并根据所述执行优先级调用计算脚本。
各个任务类型对应的处理时限可预先配置,例如,数据处理装置可通过数据表的方式记录不同任务类型所对应的处理时限,在接收到相应的数据请求后,根据该数据请求指示的任务类型,在不晚于处理时限的前提下调用该数据请求所指示的计算脚本。
数据请求的执行优先级可根据数据请求所指示的任务类型的处理时限来确定,也就是说,处理时限越短的数据请求,其执行优先级越高,即数据处理装置会优先处理此数据请求;相应地,处理时限越长的数据请求,其执行优先级越低。
例如,用于视频处理的业务***可根据实际业务场景发送针对不同任务类型的数据请求,例如传输效率优先的任务类型和清晰度优先的任务类型。在视频处理时,对于传输效率优先的任务类型,其处理时限较短,而对于清晰度优先的任务类型,由于其更注重画质清晰度,对处理时限的要求不高,则当数据处理装置同时接收到这两种任务类型的数据请求时,会先处理传输效率优先的任务类型所对应的数据请求,再处理清晰度优先的任务类型所对应的数据请求。
另外,数据请求还可指示数据的存储地址,则当数据处理装置进行数据处理后,可将数据处理后的结果存储至存储地址相对应的存储空间。则参考图5,本发明实施例提供的数据处理方法可以包括以下步骤S501至步骤S503:
步骤S501:获取数据请求,所述数据请求指示了用于处理所述数据的计算脚本以及数据的存储地址。
步骤S502:根据所述数据请求调用计算脚本,以利用所述计算脚本处理所述用户行为数据。
步骤S503:将所述用户行为数据的处理结果存储至与所述存储地址相对应的存储空间。
例如,数据请求指示了用于存储数据结果的MySQL数据表的地址,该MySQL数据表可以位于业务***中,则数据处理装置可将数据处理后的结果推送至该MySQL数据表,并可进一步以消息队列的形式通知业务***数据处理结果已存储至相应的MySQL数据表。其中,消息队列是一种应用程序对应用程序的通信方法。
当数据请求未指示数据的存储地址时,数据处理结果可暂存于Hive中,当业务***需要查看数据处理结果时,可通过Presto API组件直接访问Hive,以快速提取Hive中的数据处理结果,从而实现数据处理结果的获取。其中,Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。
在对用户行为数据进行实时处理后,可根据用户行为数据的处理结果,及时得到相应的用户画像和/或物品画像,从而有利于业务***进行相应的业务调整,如调整针对用户画像的物品推荐等,从而有利于提高用户粘度,进而提升用户体验。
在具体实施本发明实施例提供的数据处理方法的过程中,可采用多个记录表来记录不同的信息,以便于数据处理方法的执行以及后期排查相关异常信息。具体地,可采用数据任务记录表(cmg_data_task_record)来记录数据请求所对应的任务,该数据任务记录表可记录一个任务所对应的所有任务实例,例如,一个任务对应100个任务实例,那么该数据任务记录表中即包括100条记录,每一条记录对应一个任务实例,也就是对应一个计算脚本。另外,可采用任务实例执行流程记录表(cmg_exe_process_record)记录各个任务实例的执行过程及执行结果,例如执行成功或执行失败。还可利用任务信息表(cmg_task)来记录不同数据请求分别对应的任务。利用脚本任务关系表(cmg_script_task_rel)来记录各个计算脚本之间的关系,例如各个计算脚本之间的调用顺序或父子依赖关系等。利用脚本配置表(cmg_bdp_script)来记录脚本的配置信息。利用集市信息配置表(cmg_bdp_market)来记录驱动执行引擎所提供的计算脚本的落地集市的配置信息,例如当落地集市有多个时,该集市信息配置表用于记录哪个计算脚本在哪个落地集市,也就是记录计算脚本与落地集市的对应关系,以便于根据该对应关系调用计算脚本。脚本上传记录表(cmg_upload_record)记录上传计算脚本的时间和版本等信息。利用数据源配置表(cmg_datasource)记录业务***的配置信息,例如接口信息和权限信息等,以便于数据处理装置与业务***进行通信。还可利用外部***信息表(cmg_ext_system_info)记录业务***在数据处理装置中的标识信息,例如业务***的来源标识等信息,以便于将数据处理结果返回给业务***。另外,还可利用发送给业务***的MQ信息记录表(cmg_queue_message)记录数据处理装置返回给业务***的数据处理结果,以便于进行数据统计或数据排查等。
根据本发明实施例的数据处理的方法可以看出,在接收到数据请求后,实时调用计算脚本,以利用计算脚本对用户行为数据进行实时处理,并输出相应的用户行为数据的处理结果,从而缩短数据请求的反馈周期,满足数据实时交付的场景。并且可根据用户行为数据的处理结果,及时确定用户画像和/或物品画像,从而有利于提高用户粘度,提升用户体验。
并且,本发明实施例基于参数化计算脚本,实现了自动改变数据维度,从而有利于提高数据处理效率,并提高数据交付的实时性,满足数据准实时交付场景。由此,在支持大数据T+N模式的数据加工和数据提取的基础上,更加灵活的支持可配置的、可参数化的、准实时的数据加工和数据提取等数据处理场景。
图6是根据本发明实施例的数据处理的装置的主要模块的示意图。
如图6所示,本发明实施例的数据处理的装置600包括:请求获取模块601、脚本调用模块602和处理模块603;其中,
所述请求获取模块601,用于获取数据请求,所述数据请求指示了用于处理用户行为数据的计算脚本、以及所述用户行为数据所属数据表的数据维度;
所述脚本调用模块602,用于根据所述数据请求实时调用计算脚本,以利用所述计算脚本根据所述数据维度从数据表中提取所述用户行为数据,并实时处理所述用户行为数据;
所述处理模块603,用于输出所述用户行为数据的处理结果。
在本发明一个实施例中,所述数据请求还指示了用于处理所述用户行为数据的多个计算脚本的调用顺序,所述脚本调用模块602,用于根据所述调用顺序调用所述计算脚本,以根据所述调用顺序处理所述用户行为数据。
在本发明一个实施例中,所述脚本调用模块602,用于分别生成用于实时处理所述用户行为数据的多个计算脚本所对应的线程,并根据所述调用顺序,串行和/或并行执行各个所述线程,以调用所述计算脚本。
在本发明一个实施例中,所述脚本调用模块602,用于根据所述调用顺序,确定多个所述计算脚本之间的父子依赖关系,串行执行具有所述父子依赖关系的计算脚本所对应的线程。
在本发明一个实施例中,所述数据请求还指示了所请求的任务类型;所述脚本调用模块602,用于根据所述任务类型确定所述数据请求的处理时限,并根据所述处理时限调用所述计算脚本。
在本发明一个实施例中,当接收到多个所述数据请求时,所述脚本调用模块602,用于根据所述数据请求指示的所述任务类型确定所述多个数据请求的执行优先级,并根据所述执行优先级调用计算脚本。
在本发明一个实施例中,所述处理模块603,还用于根据所述用户行为数据的处理结果,确定所述用户行为数据所对应的用户画像和/或物品画像。
在本发明一个实施例中,所述处理模块603,还用于监控被调用的所述计算脚本的执行状态,当被调用的所述计算脚本的执行时长大于第一阈值、和/或被调用的所述计算脚本所占内存资源大于第二阈值时,停止执行被调用的所述计算脚本。
在本发明一个实施例中,所述数据请求还指示了输入所述数据请求的来源***的来源标识,所述处理模块603,还用于当监控到被调用的所述计算脚本执行失败时,根据所述来源标识,向所述来源***反馈所述计算脚本执行失败的结果。
在本发明一个实施例中,所述处理模块603,用于将所述用户行为数据的处理结果存储至与所述存储地址相对应的存储空间。
根据本发明实施例的数据处理的装置可以看出,在接收到数据请求后,实时调用计算脚本,以利用计算脚本对用户行为数据进行实时处理,并输出相应的用户行为数据的处理结果,从而缩短数据请求的反馈周期,满足数据实时交付的场景。并且可根据用户行为数据的处理结果,及时确定用户画像和/或物品画像,从而有利于提高用户粘度,提升用户体验。
图7示出了可以应用本发明实施例的数据处理的方法或数据处理的装置的示例性***架构700。
如图7所示,***架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据处理的方法一般由服务器705执行,相应地,数据处理的装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机***800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机***800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有***800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括请求获取模块、脚本调用模块和处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,请求获取模块还可以被描述为“获取数据请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取数据请求,所述数据请求指示了用于处理用户行为数据的计算脚本、以及所述用户行为数据所属数据表的数据维度;根据所述数据请求实时调用计算脚本,以利用所述计算脚本根据所述数据维度从数据表中提取所述用户行为数据,并实时处理所述用户行为数据;输出所述用户行为数据的处理结果。
根据本发明实施例的技术方案,在接收到数据请求后,实时调用计算脚本,以利用计算脚本对用户行为数据进行实时处理,并输出相应的用户行为数据的处理结果,从而缩短数据请求的反馈周期,满足数据实时交付的场景。并且可根据用户行为数据的处理结果,及时确定用户画像和/或物品画像,从而有利于提高用户粘度,提升用户体验。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (13)

1.一种数据处理的方法,其特征在于,包括:
获取数据请求,所述数据请求指示了用于处理用户行为数据的计算脚本、以及所述用户行为数据所属数据表的数据维度;
根据所述数据请求实时调用计算脚本,以利用所述计算脚本根据所述数据维度从数据表中提取所述用户行为数据,并实时处理所述用户行为数据;
输出所述用户行为数据的处理结果。
2.根据权利要求1所述的方法,其特征在于,所述数据请求还指示了用于处理所述用户行为数据的多个计算脚本的调用顺序;
所述根据所述数据请求实时调用计算脚本,以利用所述计算脚本实时处理所述数据,包括:
根据所述调用顺序调用所述计算脚本,以根据所述调用顺序处理所述用户行为数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述调用顺序调用所述计算脚本,包括:
分别生成用于实时处理所述用户行为数据的多个计算脚本所对应的线程,并根据所述调用顺序,串行和/或并行执行各个所述线程,以调用所述计算脚本。
4.根据权利要求3所述的方法,其特征在于,所述串行执行各个所述线程,包括:
根据所述调用顺序,确定多个所述计算脚本之间的父子依赖关系,串行执行具有所述父子依赖关系的计算脚本所对应的线程。
5.根据权利要求1所述的方法,其特征在于,所述数据请求还指示了所请求的任务类型;
所述根据所述数据请求调用计算脚本,包括:
根据所述任务类型确定所述数据请求的处理时限,并根据所述处理时限调用所述计算脚本。
6.根据权利要求5所述的方法,其特征在于,
当接收到多个所述数据请求时,根据所述数据请求指示的所述任务类型确定所述多个数据请求的执行优先级,并根据所述执行优先级调用计算脚本。
7.根据权利要求1所述的方法,其特征在于,还包括:根据所述用户行为数据的处理结果,确定所述用户行为数据所对应的用户画像和/或物品画像。
8.根据权利要求1所述的方法,其特征在于,还包括:
监控被调用的所述计算脚本的执行状态,当被调用的所述计算脚本的执行时长大于第一阈值、和/或被调用的所述计算脚本所占内存资源大于第二阈值时,停止执行被调用的所述计算脚本。
9.根据权利要求8所述的方法,其特征在于,所述数据请求还指示了输入所述数据请求的来源***的来源标识;
当监控到被调用的所述计算脚本执行失败时,根据所述来源标识,向所述来源***反馈所述计算脚本执行失败的结果。
10.根据权利要求1所述的方法,其特征在于,所述数据请求还指示了数据的存储地址;
所述输出用户行为数据的处理结果,包括:
将所述用户行为数据的处理结果存储至与所述存储地址相对应的存储空间。
11.一种数据处理的装置,其特征在于,包括:请求获取模块、脚本调用模块和处理模块;其中,
所述请求获取模块,用于获取数据请求,所述数据请求指示了用于处理用户行为数据的计算脚本、以及所述用户行为数据所属数据表的数据维度;
所述脚本调用模块,用于根据所述数据请求实时调用计算脚本,以利用所述计算脚本根据所述数据维度从数据表中提取所述用户行为数据,并实时处理所述用户行为数据;
所述处理模块,用于输出所述用户行为数据的处理结果。
12.一种数据处理的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的方法。
13.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-10中任一所述的方法。
CN201911302975.9A 2019-12-17 2019-12-17 一种数据处理的方法及装置 Pending CN112988806A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911302975.9A CN112988806A (zh) 2019-12-17 2019-12-17 一种数据处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911302975.9A CN112988806A (zh) 2019-12-17 2019-12-17 一种数据处理的方法及装置

Publications (1)

Publication Number Publication Date
CN112988806A true CN112988806A (zh) 2021-06-18

Family

ID=76342322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911302975.9A Pending CN112988806A (zh) 2019-12-17 2019-12-17 一种数据处理的方法及装置

Country Status (1)

Country Link
CN (1) CN112988806A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641421A (zh) * 2021-08-18 2021-11-12 北京沃东天骏信息技术有限公司 一种数据处理方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557470A (zh) * 2015-09-24 2017-04-05 腾讯科技(北京)有限公司 数据提取方法和装置
CN107665233A (zh) * 2017-07-24 2018-02-06 上海壹账通金融科技有限公司 数据库数据处理方法、装置、计算机设备和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557470A (zh) * 2015-09-24 2017-04-05 腾讯科技(北京)有限公司 数据提取方法和装置
CN107665233A (zh) * 2017-07-24 2018-02-06 上海壹账通金融科技有限公司 数据库数据处理方法、装置、计算机设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641421A (zh) * 2021-08-18 2021-11-12 北京沃东天骏信息技术有限公司 一种数据处理方法和装置

Similar Documents

Publication Publication Date Title
US11755371B1 (en) Data intake and query system with distributed data acquisition, indexing and search
CN110310034B (zh) 一种应用于SaaS的服务编排、业务流程处理方法和装置
CN107729139B (zh) 一种并发获取资源的方法和装置
EP2954403B1 (en) Cloud-based streaming data receiver and persister
CN105787077B (zh) 数据同步方法和装置
US20210216370A1 (en) Resource monitor for monitoring long-standing computing resources
CN107766509B (zh) 一种网页静态备份的方法和装置
CN111478781B (zh) 一种消息广播的方法和装置
CN112395337B (zh) 一种数据导出方法和装置
CN112988806A (zh) 一种数据处理的方法及装置
CN112148705A (zh) 数据迁移的方法和装置
CN111831503A (zh) 一种基于监控代理的监控方法和监控代理装置
CN112799863B (zh) 用于输出信息的方法和装置
CN113138772B (zh) 数据处理平台的构建方法、装置、电子设备和存储介质
CN114564249A (zh) 推荐调度引擎、推荐调度方法及计算机可读存储介质
CN112688982B (zh) 一种用户请求处理方法和装置
CN113779122A (zh) 导出数据的方法和装置
CN113760836B (zh) 一种宽表计算方法和装置
WO2021047506A1 (zh) 数据统计分析***、方法及计算机可读存储介质
CN112783665B (zh) 接口补偿的方法和装置
CN113760925A (zh) 一种数据处理方法和装置
CN108563677B (zh) 数据显示方法、装置、电子设备及存储介质
CN116795853A (zh) 基于SparkSQL的批量作业处理方法、装置、电子设备及介质
CN113722634A (zh) 数据处理方法、装置、电子设备和计算机可读介质
CN116610447A (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