[发明专利]数据写入方法及装置有效
申请号: | 202011456750.1 | 申请日: | 2020-12-11 |
公开(公告)号: | CN112559445B | 公开(公告)日: | 2022-12-27 |
发明(设计)人: | 周晖栋;肖宇 | 申请(专利权)人: | 上海哔哩哔哩科技有限公司 |
主分类号: | G06F16/11 | 分类号: | G06F16/11;G06F16/25;G06F16/27 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 邓小玲;王勇 |
地址: | 200433 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 写入 方法 装置 | ||
本申请实施例提供了一种数据写入方法,方法包括:从数据源中获取待写入至分布式文件系统HDFS的待写入数据;将待写入数据写入至缓存中的临时文件中,并在临时文件的大小达到预设值时,将临时文件中的数据写入至HDFS的数据节点中;定时触发检测点操作,以暂停将临时文件中的数据写入至数据节点中,并通过快照的方式记录在执行检测点操作时从数据源中获取到的待写入数据在数据源中的第一位置及在执行检测点操作时数据写入至数据节点的第二位置;在执行完检测点操作后,根据第二位置继续将临时文件中的剩余数据写入至数据节点中。本申请可以使得管道中的数据可以被及时写入至HDFS中,避免了管道拥堵。
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种数据写入方法及装置。
背景技术
随着网络技术的飞速发展,许多企业和团体通过数据报表的方式来对每一天收集到的数据进行分析。现有技术中,为了生成数据报表,一般是在第二天凌晨采用Flink集群的方式不断从Kafka中获取当天的数据并写入分布式文件系统HDFS中;之后,为了展示每天收集的数据,每天定时通过Spark程序将前一天收集到的HFDS中的数据导入到报表系统(例如,ES)中以便快速查询以及制定数据报表。
然而,发明人发现,现有技术中在将数据写入至HDFS中时,经常会出现写入数据的管道出现拥堵的情况,导致数据写入至报表系统出现延迟,进而导致生成报表的时间发生延迟。
发明内容
本申请实施例的目的是提供一种数据写入方法、装置、计算机设备及计算机可读存储介质,可以用于解决现有技术中在将数据写入至HDFS中时,经常会出现写入数据的管道出现拥堵的情况的问题。
本申请实施例的一个方面提供了一种数据写入方法,所述方法包括:
从数据源中获取待写入至分布式文件系统HDFS的待写入数据;
将所述待写入数据写入至缓存中的临时文件中,并在所述临时文件的大小达到预设值时,将所述临时文件中的数据写入至所述HDFS的数据节点中;
定时触发检测点操作,以暂停将所述临时文件中的数据写入至所述数据节点中,并通过快照的方式记录在执行所述检测点操作时从数据源中获取到的待写入数据在所述数据源中的第一位置及在执行所述检测点操作时数据写入至所述数据节点的第二位置;
在执行完所述检测点操作后,根据所述第二位置继续将所述临时文件中的剩余数据写入至所述数据节点中。
可选的,所述在所述临时文件的大小达到预设值的步骤之后,还包括:
通过异步的方式关闭所述临时文件。
可选的,所述通过异步的方式调用close函数关闭所述临时文件包括:
将关闭所述临时文件的消息发送至非主线程中;
通过所述非主线程关闭所述临时文件。
可选的,所述方法还包括:
在将所述临时文件中的数据写入至所述HDFS的数据节点失败时,获取最近一次执行所述检测点操作时所记录的从数据源中获取到的待写入数据在所述数据源中的第一位置;
根据获取到的所述第一位置以及写入至所述数据节点的所有临时文件中的数据的大小确定对所述数据节点中用于存储所述临时文件的数据块的截取长度;
根据所述截取长度对所述数据块进行截取;
在完成数据块的截取后,根据获取到的所述第一位置重新从所述数据源中获取待写入至所述HDFS的待写入数据,并将重新获得的所述待写入数据以数据覆盖的方式写入至所述临时文件中。
可选的,所述临时文件存在多个,将所述待写入数据写入至缓存中的临时文件中包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海哔哩哔哩科技有限公司,未经上海哔哩哔哩科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011456750.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种抗腐蚀抗黄斑的稳定型冲压油
- 下一篇:数据实时捕获和传输方法及系统
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置