数据导入方法、装置、服务器及存储介质制造方法及图纸

技术编号:23764488 阅读:22 留言:0更新日期:2020-04-11 19:07
本公开提供了一种数据导入方法、装置、服务器及存储介质,属于互联网技术领域。所述方法包括:获取用户在任务导入界面配置的导入任务的任务参数,任务参数包括数据标签;根据数据标签,获取数据标签对应的多个离线数据;将多个离线数据,分批导入到线上的多个第一存储设备的内存中;对于每个第一存储设备,从第一存储设备的内存中读取热度值低于第一预设阈值的第一离线数据,将第一离线数据转存到第一存储设备的磁盘中。通过将数据标签对应的离线数据分批导入到线上的多个第一存储设备的内存中,将内存中热度值低于预设阈值的第一离线数据存储到第一存储设备的磁盘中,极大的增加了线上的数据存储量,从而支持海量级的数据导入。

Data import methods, devices, servers and storage media

【技术实现步骤摘要】
数据导入方法、装置、服务器及存储介质
本公开涉及互联网
,特别涉及一种数据导入方法、装置、服务器及存储介质。
技术介绍
随着互联网技术的发展,我们进入了大数据时代,无处不在的信息采集终端为我们采集了海量的数据,这些数据经过进一步加工后会形成对业务非常有价值的标签数据,这些标签数据对驱动业务增长意义重大。然而,标签数据等经过加工后的离线数据常存储在线下,线上业务无法直接读取并使用。相关技术中,将线下的离线数据定期导出成离线文件,将离线文件提交给线上的Master(主代理),Master将离线文件中的离线数据存储到Master的共享内存中;Agent(子代理)从Master的共享内存获取需要的数据。这种做法存在的问题是由于要将离线数据全部加载到Master的共享内存中,对内存的消耗巨大,且由于内存容纳的数据量有限,这种做法无法适用于海量级的数据导入。
技术实现思路
本公开实施例提供了一种数据导入方法、装置、服务器及存储介质,能够解决相关技术中将离线数据全部加载到Master的共享内存中,对内存的消耗巨大,且无法适用于海量级的数据导入的问题。所述技术方案如下:一方面,提供了一种数据导入方法,所述方法包括:获取用户在任务导入界面配置的导入任务的任务参数,所述任务参数包括数据标签;根据所述数据标签,获取所述数据标签对应的多个离线数据;将所述多个离线数据,分批导入到线上的多个第一存储设备的内存中;对于每个第一存储设备,从所述第一存储设备的内存中读取热度值低于第一预设阈值的第一离线数据,将所述第一离线数据转存到所述第一存储设备的磁盘中。在一种可能的实现方式中,所述根据所述数据标签,获取所述数据标签对应的多个离线数据,包括:根据所述数据标签,确定离线数据的数据源;当所述离线数据的数据源为数据仓库Hive时,通过数据处理工具SparkSQL,从线下的第二存储设备的Hive中流式读取所述数据标签对应的离线数据;当所述离线数据的数据源为分布式文件系统HDFS时,从线下的第二存储设备中读取HDFS中所述数据标签对应的离线数据;当所述离线数据的数据源为离线文件时,从线下的第二存储设备中获取所述数据标签对应的离线文件,将所述离线文件切割为多个子文件;当所述离线数据的数据源为线上流式数据时,通过分布式消息发布订阅系统kafka获取所述数据标签对应的线上流式数据,利用计算引擎spark对所述线上流式数据进行计算,将经过计算后的所述线上流式数据作为所述离线数据。在另一种可能的实现方式中,所述将所述多个离线数据,分批导入到线上的多个第一存储设备的内存中,包括:将所述多个离线数据写入消息队列进行缓存,通过消费线程,从所述消息队列消费离线数据;对消费的离线数据进行数据格式适配,以及,对所述消费的离线数据进行数据合法性校验;当所述消费的离线数据合法时,将所述消费的离线数据分批导入到线上的多个第一存储设备中的一个第一存储设备的内存中。在另一种可能的实现方式中,所述将所述第一离线数据存储到所述第一存储设备的磁盘中,包括:将所述第一离线数据写入内存队列;从所述内存队列中获取第一离线数据,将所述第一离线数据存储到所述磁盘中;记录所述第一离线数据存储到所述磁盘中所需时长;当所述第一离线数据存储到所述磁盘中所需时长超过预设时长,或者所述内存队列中剩余的第一离线数据的数量大于第一预设数量时,则减少所述消费线程的数量;当所述内存队列中剩余的第一离线数据的数量小于第二预设数量且所述第一离线数据存储到所述磁盘中所需时长未超过预设时长时,则增加所述消费线程的数量。在另一种可能的实现方式中,所述方法还包括:当到达统计周期时,获取所述导入任务在所述导入任务开始到当前时刻的第一任务信息、所述导入任务的任务进度信息和所述导入任务在每个采样时间点的第二任务信息,任务信息包括所述导入任务的任务标识、所述导入任务包括的子任务的数量、累计成功被导入离线数据的子任务的第一数量,其中,所述子任务对应一个或多个离线数据;显示所述第一任务信息、所述任务进度信息和所述第二任务信息。在另一种可能的实现方式中,所述将所述多个离线数据,分批导入到线上的多个第一存储设备的内存中之后,所述方法还包括:当所述第一存储设备的磁盘中的第一离线数据被访问时,记录所述第一离线数据的访问信息,根据所述访问信息,更新所述第一离线数据的热度值;当所述第一离线数据的热度值高于第二预设阈值时,将所述第一离线数据转存回所述第一存储设备的内存中。在另一种可能的实现方式中,所述任务参数还包括所述多个离线数据的清理周期;所述方法还包括:当到达所述清理周期时,将所述第一存储设备的内存中的所述数据标签对应的第一离线数据删除。另一方面,提供了一种数据导入装置,所述装置包括:第一获取模块,用于获取用户在任务导入界面配置的导入任务的任务参数,所述任务参数包括数据标签;第二获取模块,用于根据所述数据标签,获取所述数据标签对应的多个离线数据;导入模块,用于将所述多个离线数据,分批导入到线上的多个第一存储设备的内存中;存储模块,用于对于每个第一存储设备,从所述第一存储设备的内存中读取热度值低于第一预设阈值的第一离线数据,将所述第一离线数据转存到所述第一存储设备的磁盘中。在一种可能的实现方式中,所述第二获取模块,还用于根据所述数据标签,确定离线数据的数据源;当所述离线数据的数据源为数据仓库Hive时,通过数据处理工具SparkSQL,从线下的第二存储设备的Hive中流式读取所述数据标签对应的离线数据;所述第二获取模块,还用于当所述离线数据的数据源为分布式文件系统HDFS时,从线下的第二存储设备中读取HDFS中所述数据标签对应的离线数据;所述第二获取模块,还用于当所述离线数据的数据源为离线文件时,从线下的第二存储设备中获取所述数据标签对应的离线文件,将所述离线文件切割为多个子文件;所述第二获取模块,还用于当所述离线数据的数据源为线上流式数据时,通过分布式消息发布订阅系统kafka获取所述数据标签对应的线上流式数据,利用计算引擎spark对所述线上流式数据进行计算,将经过计算后的所述线上流式数据作为所述离线数据。在另一种可能的实现方式中,所述导入模块,还用于将所述多个离线数据写入消息队列进行缓存,通过消费线程,从所述消息队列消费离线数据;对消费的离线数据进行数据格式适配,以及,对所述消费的离线数据进行数据合法性校验;当所述消费的离线数据合法时,将所述消费的离线数据分批导入到线上的多个第一存储设备中的一个第一存储设备的内存中。在另一种可能的实现方式中,所述存储模块,还用于将所述第一离线数据写入内存队列;从所述内存队列中获取第一离线数据,将所述第一离线数据存储到所述磁盘中;记录所述第一离线数据存储到所述磁盘中所需时长;当所述第一本文档来自技高网...

【技术保护点】
1.一种数据导入方法,其特征在于,所述方法包括:/n获取用户在任务导入界面配置的导入任务的任务参数,所述任务参数包括数据标签;/n根据所述数据标签,获取所述数据标签对应的多个离线数据;/n将所述多个离线数据,分批导入到线上的多个第一存储设备的内存中;/n对于每个第一存储设备,从所述第一存储设备的内存中读取热度值低于第一预设阈值的第一离线数据,将所述第一离线数据转存到所述第一存储设备的磁盘中。/n

【技术特征摘要】
1.一种数据导入方法,其特征在于,所述方法包括:
获取用户在任务导入界面配置的导入任务的任务参数,所述任务参数包括数据标签;
根据所述数据标签,获取所述数据标签对应的多个离线数据;
将所述多个离线数据,分批导入到线上的多个第一存储设备的内存中;
对于每个第一存储设备,从所述第一存储设备的内存中读取热度值低于第一预设阈值的第一离线数据,将所述第一离线数据转存到所述第一存储设备的磁盘中。


2.根据权利要求1所述的方法,其特征在于,所述根据所述数据标签,获取所述数据标签对应的多个离线数据,包括:
根据所述数据标签,确定离线数据的数据源;
当所述离线数据的数据源为数据仓库Hive时,通过数据处理工具SparkSQL,从线下的第二存储设备的Hive中流式读取所述数据标签对应的离线数据;
当所述离线数据的数据源为分布式文件系统HDFS时,从线下的第二存储设备中读取HDFS中所述数据标签对应的离线数据;
当所述离线数据的数据源为离线文件时,从线下的第二存储设备中获取所述数据标签对应的离线文件,将所述离线文件切割为多个子文件;
当所述离线数据的数据源为线上流式数据时,通过分布式消息发布订阅系统kafka获取所述数据标签对应的线上流式数据,利用计算引擎spark对所述线上流式数据进行计算,将经过计算后的所述线上流式数据作为所述离线数据。


3.根据权利要求1所述的方法,其特征在于,所述将所述多个离线数据,分批导入到线上的多个第一存储设备的内存中,包括:
将所述多个离线数据写入消息队列进行缓存,通过消费线程,从所述消息队列消费离线数据;
对消费的离线数据进行数据格式适配,以及,对所述消费的离线数据进行数据合法性校验;
当所述消费的离线数据合法时,将所述消费的离线数据分批导入到线上的多个第一存储设备中的一个第一存储设备的内存中。


4.根据权利要求3所述的方法,其特征在于,所述将所述第一离线数据存储到所述第一存储设备的磁盘中,包括:
将所述第一离线数据写入内存队列;
从所述内存队列中获取第一离线数据,将所述第一离线数据存储到所述磁盘中;
记录所述第一离线数据存储到所述磁盘中所需时长;
当所述第一离线数据存储到所述磁盘中所需时长超过预设时长,或者所述内存队列中剩余的第一离线数据的数量大于第一预设数量时,则减少所述消费线程的数量;
当所述...

【专利技术属性】
技术研发人员:文双炳林伟兵米成锦吴俊彦
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1