CN112965950A - 一种实现流式数据写入对象存储的方法 - Google Patents
一种实现流式数据写入对象存储的方法 Download PDFInfo
- Publication number
- CN112965950A CN112965950A CN202110253584.3A CN202110253584A CN112965950A CN 112965950 A CN112965950 A CN 112965950A CN 202110253584 A CN202110253584 A CN 202110253584A CN 112965950 A CN112965950 A CN 112965950A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- temporary file
- storage
- temporary
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 238000013500 data storage Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 10
- 230000010354 integration Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种实现流式数据写入对象存储的方法,涉及流式数据存储技术领域;将流式数据写入hdfs临时文件,并启动相应定时任务,定时修改临时文件的文件名并标记文件名为可读状态,定时读取可读临时文件的数据,根据存储桶预设值对数据进行处理,将处理后的数据下发至对象存储,并标记文件名为处理完状态,定时删除处理完状态的临时文件,释放资源。
Description
技术领域
本发明公开一种方法,涉及流式数据存储技术领域,具体地说是一种实现流式数据写入对象存储的方法。
背景技术
目前在物联网服务中,需要对数据来源中的数据进行数据分析、筛选和转换,并将处理后的结果流向其他目的地。当数据目的地为对象存储时,需先设定存储桶的大小,即每次写入对象存储数据的大小。检测文件大小,当文件大小满足存储桶预设的大小再进行处理时,数据流中的数据没有这么多,那么将无限等待满足条件再进行处理,而如果定时处理,那么每次处理的文件有可能特别小,甚至出现处理的文件存在空文件的情况。这些情况均不利于高效的将流式数据下发至对象存储。
发明内容
本发明针对针对数据目的地为对象存储时,浪费资源或是处理时间比较慢的情况,提供一种实现流式数据写入对象存储的方法,本发明提出的具体方案是:
一种实现流式数据写入对象存储的方法,将流式数据写入hdfs临时文件,并启动相应定时任务,定时修改临时文件的文件名并标记文件名为可读状态,
定时读取可读临时文件的数据,根据存储桶预设值对数据进行处理,将处理后的数据下发至对象存储,并标记文件名为处理完状态,
定时删除处理完状态的临时文件,释放资源。
进一步,所述的一种实现流式数据写入对象存储的方法中读取流式数据,按照hdfs临时文件的滚动规则,将流式数据写入hdfs临时文件。
进一步,所述的一种实现流式数据写入对象存储的方法中hdfs临时文件的滚动规则包括按临时文件大小滚动规则和按时间滚动规则,按临时文件大小滚动规则为当流式数据写入临时文件的数据量大小超出预设值时写入另一个新的临时文件,按时间滚动规则为设定流式数据写入临时文件的时间间隔,一旦到达预设的时间间隔,数据写入另一个新的临时文件。
进一步,所述的一种实现流式数据写入对象存储的方法中启动重命名定时任务定时修改所有临时文件的文件名,将临时文件的文件名增加相应标志字段,标记临时文件为可读状态。
进一步,所述的一种实现流式数据写入对象存储的方法中启动数据处理定时任务,定时检测可读状态的临时文件,如果临时文件的大小满足存储桶预设值,则直接将临时文件中的数据写入对象存储,并将临时文件标记为已完成状态;如果临时文件大小不满足存储桶预设值,则将临时文件标记为正在处理状态。
进一步,所述的一种实现流式数据写入对象存储的方法中通过数据处理定时任务将标记为正在处理状态的临时文件与下一个不满足存储桶预设值的临时文件进行数据整合,直至临时文件大小满足存储桶预设值,将临时文件写入对象存储,并标记临时文件为已完成状态。
进一步,所述的一种实现流式数据写入对象存储的方法中通过数据处理定时任务将超出等待时间值的正在处理状态的临时文件的数据强制写入对象存储。
进一步,所述的一种实现流式数据写入对象存储的方法中通过文件删除定时任务定时根据文件名中的时间戳检测临时文件的缓存时间,删除超过缓存时间并且标记为已完成状态的临时文件。
一种实现流式数据写入对象存储的系统,包括写入模块和定时任务启动模块,
写入模块将流式数据写入hdfs临时文件,定时任务启动模块启动相应定时任务,定时修改临时文件的文件名并标记文件名为可读状态,
定时读取可读临时文件的数据,根据存储桶预设值对数据进行处理,将处理后的数据下发至对象存储,并标记文件名为处理完状态,
定时删除处理完状态的临时文件,释放资源。
一种实现流式数据写入对象存储的装置,包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种实现流式数据写入对象存储的方法。
本发明的有益之处是:
本发明提供一种实现流式数据写入对象存储的方法,通过将流式数据写入hdfs临时文件,并启动相应定时任务,定时修改临时文件的文件名并标记文件名为可读状态,定时读取可读临时文件的数据,根据存储桶预设值对数据进行处理,将处理后的数据下发至对象存储,并标记文件名为处理完状态,定时删除处理完状态的临时文件,释放资源,从而实现将流式数据下发到对象存储的目的,并提高了流式数据流向对象存储的效率,提高了流式数据流向对象存储的资源利用率,也可提高分布式流数据流引擎的处理大数据的稳定性。
附图说明
图1是本发明方法算法减损过程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种实现流式数据写入对象存储的方法,将流式数据写入hdfs临时文件,并启动相应定时任务,定时修改临时文件的文件名并标记文件名为可读状态,
定时读取可读临时文件的数据,根据存储桶预设值对数据进行处理,将处理后的数据下发至对象存储,并标记文件名为处理完状态,
定时删除处理完状态的临时文件,释放资源。
本发明方法通过将流式数据写入hdfs临时文件,启动多个定时任务,分别实现修改临时文件名、转移临时文件和删除临时文件三个功能,从而实现将流式数据下发到对象存储(对数据文件大小有要求)的目的。
具体应用中,在本发明的一些实施例中,可以分布式流数据流引擎Apache Flink为例进行说明,其中Flink用于对无界和有界数据流进行有状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。一个Flink程序由一个或多个Flink job组成,一个Flink Job一般由Source,Transformation,Sink组成,其中source为数据来源;transformation为数据转换过程,每个flink job可以有一个或多个transformation;sink为数据目的地,即转换后将数据写入的外部数据源。利用flink将流式数据写入对象存储的时候,如果文件太小,就会造成资源浪费,如果文件太大处理时长就有可能会很长。
而利用本发明方法通过Flink组件将流式数据写入临时hdfs文件,定时修改临时文件的文件名,将文件名标记为可读状态,定时读取可读文件中的数据,根据存储桶的大小对数据进行处理,将处理后的数据下发至对象存储,处理结束后将文件名标记为处理完状态,定时删除已经处理完的临时文件,释放资源,完成流式数据转发。
具体步骤流程如下:
读取流式数据,将流式数据写入hdfs临时文件。其中根据用户需求进行计算、筛选、聚合等处理后,将流式数据先写到临时hdfs文件中,并根据hdfs文件的滚动规则进行流式数据读取。滚动规则有两种方式,分别是按文件大小滚动和按时间滚动,按文件大小滚动是指当流式数据写入文件的数据量大小满足超出预设值时就会写入另一个新的临时文件;按时间滚动是指设定流式数据写入临时文件的时间间隔,一旦到达预设的时间间隔,数据也会写入另一个新的临时文件。此时间间隔被称为滚动时间,可设定的滚动时间单位有小时和分钟,即每小时/每分钟数据流就会将数据写入一个新的临时文件。本发明实施例中采取两种滚动规则相结合的方式,即只要满足其中任意一项规则,流式数据就会写入一个新的临时文件。所有的临时文件名以时间戳结尾,比如格式为“文件名+yyyy-MM-dd-HH—ms”。后续流程定时任务定时修改临时文件的文件名,并将数据大小满足预设值的文件发送至对象存储,不满足预设值的文件进行特殊处理使其满足条件并发送至对象存储,最后删除临时文件,完成流式数据写入对象存储的整个过程。
在上述实施例实施的基础上,本发明的另一些实施例具体说明了定时任务执行的过程,其中通过重命名定时任务可设定第一个定时任务,定时修改所有临时文件的文件名,在原来文件名的前面增加标志字段“readable-”标记该临时文件为可读文件,设定第二个定时任务根据是否有这个标志字段来判断该文件是否可以被处理。当前流式数据正在写入的文件不修改,已经增加了“readable-”标志字段的文件不修改。
通过数据处理定时任务定时检测文件名中包含“readable-”的文件,如果文件大小满足存储桶预设的大小,则直接将文件中的数据写入对象存储,并将文件名中的“readable-”标志改为“finished-”标志,标记为已完成状态;如果文件大小不满足存储桶预设的大小,则将文件名中的“readable-”标志改为“processing-”标志,标记为正在处理状态,等待和下个不满足大小的文件进行数据整合,如果依然不满足预设值,则继续等待与下个小文件进行整合,整合文件结束后删除被整合的文件,以此类推,直到文件大小满足预设值,将文件写入对象存储,并修改文件前缀标志。同时设定一个等待时间值,如果超过这个值,即便文件大小不满足预设值数据处理定时任务也会强制将数据写入对象存储,并最终将“processing-”标志改为“finished-”标志,完成数据处理过程。
通过文件删除定时任务,根据数据缓存时间,定时根据文件名中的时间戳检测文件缓存的时间,一旦超过缓存时间并且文件名中有finished标志字段,删除临时文件,释放资源,如果超过缓存时间但是文件名中没有finished标志字段,则先将该文件下发至对象存储,修改文件名中的标志字段为finished,下个删除定时任务进行时,删除该文件。
通过本发明方法的实施提高了流式数据流向对象存储的效率及流式数据流向对象存储的资源利用率,并同时提高了分布式流数据流引擎如flink等的处理大数据的能力。
同时本发明还提供一种实现流式数据写入对象存储的系统,包括写入模块和定时任务启动模块,
写入模块将流式数据写入hdfs临时文件,定时任务启动模块启动相应定时任务,定时修改临时文件的文件名并标记文件名为可读状态,
定时读取可读临时文件的数据,根据存储桶预设值对数据进行处理,将处理后的数据下发至对象存储,并标记文件名为处理完状态,
定时删除处理完状态的临时文件,释放资源。上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
以及本发明提供一种实现流式数据写入对象存储的装置,包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种实现流式数据写入对象存储的方法。上述装置内的处理器的信息交互、执行可读程序过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,上述较佳实施例中各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (10)
1.一种实现流式数据写入对象存储的方法,其特征是将流式数据写入hdfs临时文件,并启动相应定时任务,定时修改临时文件的文件名并标记文件名为可读状态,
定时读取可读临时文件的数据,根据存储桶预设值对数据进行处理,将处理后的数据下发至对象存储,并标记文件名为处理完状态,
定时删除处理完状态的临时文件,释放资源。
2.根据权利要求1所述的一种实现流式数据写入对象存储的方法,其特征是读取流式数据,按照hdfs临时文件的滚动规则,将流式数据写入hdfs临时文件。
3.根据权利要求2所述的一种实现流式数据写入对象存储的方法,其特征是hdfs临时文件的滚动规则包括按临时文件大小滚动规则和按时间滚动规则,按临时文件大小滚动规则为当流式数据写入临时文件的数据量大小超出预设值时写入另一个新的临时文件,按时间滚动规则为设定流式数据写入临时文件的时间间隔,一旦到达预设的时间间隔,数据写入另一个新的临时文件。
4.根据权利要求1-3任一项所述的一种实现流式数据写入对象存储的方法,其特征是启动重命名定时任务定时修改所有临时文件的文件名,将临时文件的文件名增加相应标志字段,标记临时文件为可读状态。
5.根据权利要求4所述的一种实现流式数据写入对象存储的方法,其特征是启动数据处理定时任务,定时检测可读状态的临时文件,如果临时文件的大小满足存储桶预设值,则直接将临时文件中的数据写入对象存储,并将临时文件标记为已完成状态;如果临时文件大小不满足存储桶预设值,则将临时文件标记为正在处理状态。
6.根据权利要求5所述的一种实现流式数据写入对象存储的方法,其特征是通过数据处理定时任务将标记为正在处理状态的临时文件与下一个不满足存储桶预设值的临时文件进行数据整合,直至临时文件大小满足存储桶预设值,将临时文件写入对象存储,并标记临时文件为已完成状态。
7.根据权利要求5或6所述的一种实现流式数据写入对象存储的方法,其特征是通过数据处理定时任务将超出等待时间值的正在处理状态的临时文件的数据强制写入对象存储。
8.根据权利要求1-7任一项所述的一种实现流式数据写入对象存储的方法,其特征是通过文件删除定时任务定时根据文件名中的时间戳检测临时文件的缓存时间,删除超过缓存时间并且标记为已完成状态的临时文件。
9.一种实现流式数据写入对象存储的系统,其特征是包括写入模块和定时任务启动模块,
写入模块将流式数据写入hdfs临时文件,定时任务启动模块启动相应定时任务,定时修改临时文件的文件名并标记文件名为可读状态,
定时读取可读临时文件的数据,根据存储桶预设值对数据进行处理,将处理后的数据下发至对象存储,并标记文件名为处理完状态,
定时删除处理完状态的临时文件,释放资源。
10.一种实现流式数据写入对象存储的装置,其特征是包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至8中任一项所述的一种实现流式数据写入对象存储的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110253584.3A CN112965950A (zh) | 2021-03-09 | 2021-03-09 | 一种实现流式数据写入对象存储的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110253584.3A CN112965950A (zh) | 2021-03-09 | 2021-03-09 | 一种实现流式数据写入对象存储的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112965950A true CN112965950A (zh) | 2021-06-15 |
Family
ID=76276919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110253584.3A Pending CN112965950A (zh) | 2021-03-09 | 2021-03-09 | 一种实现流式数据写入对象存储的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965950A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678181A (zh) * | 2013-12-10 | 2014-03-26 | 桂林长海科技有限责任公司 | 一种缓存数据的保护方法 |
US20170109364A1 (en) * | 2015-10-16 | 2017-04-20 | International Business Machines Corporation | File Management in a Storage System |
CN109977090A (zh) * | 2019-01-25 | 2019-07-05 | 福建天泉教育科技有限公司 | 一种向hdfs写入数据的方法及终端 |
CN110597766A (zh) * | 2019-08-16 | 2019-12-20 | 深圳市元征科技股份有限公司 | 一种数据传输方法及装置 |
CN111708738A (zh) * | 2020-05-29 | 2020-09-25 | 深圳市瑞驰信息技术有限公司 | 实现hadoop文件系统hdfs与对象存储s3数据互访方法及系统 |
CN111831618A (zh) * | 2020-07-21 | 2020-10-27 | 北京青云科技股份有限公司 | 数据写入方法、数据读取方法、装置、设备及存储介质 |
-
2021
- 2021-03-09 CN CN202110253584.3A patent/CN112965950A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678181A (zh) * | 2013-12-10 | 2014-03-26 | 桂林长海科技有限责任公司 | 一种缓存数据的保护方法 |
US20170109364A1 (en) * | 2015-10-16 | 2017-04-20 | International Business Machines Corporation | File Management in a Storage System |
CN109977090A (zh) * | 2019-01-25 | 2019-07-05 | 福建天泉教育科技有限公司 | 一种向hdfs写入数据的方法及终端 |
CN110597766A (zh) * | 2019-08-16 | 2019-12-20 | 深圳市元征科技股份有限公司 | 一种数据传输方法及装置 |
CN111708738A (zh) * | 2020-05-29 | 2020-09-25 | 深圳市瑞驰信息技术有限公司 | 实现hadoop文件系统hdfs与对象存储s3数据互访方法及系统 |
CN111831618A (zh) * | 2020-07-21 | 2020-10-27 | 北京青云科技股份有限公司 | 数据写入方法、数据读取方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130232495A1 (en) | Scheduling accelerator tasks on accelerators using graphs | |
US9128615B2 (en) | Storage systems that create snapshot queues | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
WO2013078583A1 (zh) | 优化数据访问的方法及装置、优化数据存储的方法及装置 | |
US10073648B2 (en) | Repartitioning data in a distributed computing system | |
WO2017161540A1 (zh) | 数据查询的方法、数据对象的存储方法和数据系统 | |
CN105353987A (zh) | 一种文件处理方法及装置 | |
WO2023040399A1 (zh) | 一种业务持久化方法及装置 | |
CN110851276A (zh) | 一种业务请求处理方法、装置、服务器和存储介质 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN105183854A (zh) | 一种数据库卸载数据的调度方法 | |
CN115470235A (zh) | 一种数据处理方法、装置以及设备 | |
US9311225B2 (en) | DMA channels | |
CN112965950A (zh) | 一种实现流式数据写入对象存储的方法 | |
CN109800184B (zh) | 针对小块输入的缓存方法、系统、装置及可存储介质 | |
US20170286442A1 (en) | File system support for file-level ghosting | |
CN103607451A (zh) | 支持并发的客户端与服务器端的文档操作同步方法 | |
US9659041B2 (en) | Model for capturing audit trail data with reduced probability of loss of critical data | |
CN113835613B (zh) | 一种文件读取方法、装置、电子设备和存储介质 | |
CN104063375A (zh) | 管道通讯的方法和装置 | |
JP2013186765A (ja) | バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム | |
CN111651438A (zh) | 基于MapDB的结构化数据去重方法、装置、设备及介质 | |
CN117520018B (zh) | 一种实现可持久化消息队列的方法 | |
CN101453386A (zh) | 网络的封包撷取方法 | |
CN110647493A (zh) | 一种数据传输方法、处理器和pcie系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210615 |
|
RJ01 | Rejection of invention patent application after publication |