CN106919574B - 一种实时处理远程同步文件的方法 - Google Patents

一种实时处理远程同步文件的方法 Download PDF

Info

Publication number
CN106919574B
CN106919574B CN201510988052.9A CN201510988052A CN106919574B CN 106919574 B CN106919574 B CN 106919574B CN 201510988052 A CN201510988052 A CN 201510988052A CN 106919574 B CN106919574 B CN 106919574B
Authority
CN
China
Prior art keywords
file
message
processing
target folder
synchronizing
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
CN201510988052.9A
Other languages
English (en)
Other versions
CN106919574A (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.)
Hangzhou Zhongke Advanced Technology Development Co ltd
Original Assignee
Hangzhou Zhongke Advanced Technology Research Institute 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 Hangzhou Zhongke Advanced Technology Research Institute Co ltd filed Critical Hangzhou Zhongke Advanced Technology Research Institute Co ltd
Priority to CN201510988052.9A priority Critical patent/CN106919574B/zh
Publication of CN106919574A publication Critical patent/CN106919574A/zh
Application granted granted Critical
Publication of CN106919574B publication Critical patent/CN106919574B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1787Details of non-transparently synchronising file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种实时处理远程同步文件的方法,所述方法包括如下步骤:从远程主机同步文件到指定目标文件夹;对所述目标文件夹进行文件操作监控;对目标监控行为进行检查,如检查出***作文件符合要求的,将文件路径作为消息发送到消息***;多个文件处理实例从消息***获取消息,所述消息包括:文件路径,执行具体的文件处理操作。本发明提供的技术方案具有较高地效率完成了消息分发和文件处理的任务的优点。

Description

一种实时处理远程同步文件的方法
技术领域
本发明涉及通信领域,尤其涉及一种实时处理远程同步文件的方法及***。
背景技术
为了分析用户偏好以进行营销等,需要使用大量的用户行为数据,目前在公交车、购物中心、广场等公共场所一般安装WIFI设备,提供免费上网入口,从而得到用户行为数据。尽管单台移动上网设备接入到WIFI设备产生的数据量不大,但在人流量大的公共场所,接入的移动上网设备多,导致需要处理的数据量也日益增加。因为WIFI设备不仅要为接入的移动上网设备提供上网冲浪服务,还要上传用户行为日志记录,如果将WIFI设备采集到的数据直接上传到服务器,会对WIFI设备的网络带宽有很高的要求,对于使用移动网络提供上网服务的WIFI设备而言,可用的带宽资源就更加窘迫,为了能够减少数据传输所需的带宽和消耗的流量,提高数据上传的速度,一般会在数据上传之前对数据进行压缩打包处理。对数据压缩打包解决了数据传输的问题,但引来了新的问题。为了使用这些数据,需要对压缩文件进行解压以及相关的预处理,而为了提高数据的实时性,一般数据压缩上传的间隔设定比较短,如5分钟,使得产生了大量需要待处理的压缩文件。
现有的常用方案是等待当天文件传输完毕后,启动离线批处理的程序对全部文件进行一次性解压,这种方法简单,且无需做其他的特殊处理,但受到网络的限制,等待文件同步完成常需要较长的时间,而这个时间点不可预知。等待所有文件传输完毕才能执行操作,这使得数据利用有较大的时延;另一种方法是每间隔一段时间查找获得当前目录下的文件列表,对比上一时间扫描得到的文件列表,对新增的文件进行解压,当文件数量较少时,该方法可以做到接近实时,设置的关键在于间隔时长,但随时间推移,文件数量增加,扫描的时间增长,对比需要花费的时间也随之增加,使得检测新增文件消耗不少资源。
目前现有技术提供的方法是等待文件传输完毕执行离线批处理或者通过间断扫描目标目录对检测到的新文件进行处理。前者是一种较为直接的方法,但只适合于对实时需求不高,且离线批处理性能较优时使用。后者提供了一个接近实时的处理方法,但其伴随产生了额外不断增长的资源消耗。
发明内容
提供一种实时处理远程同步文件的方法,其解决了现有技术的无法实时处理文件以及增加额外的资源消耗的缺点。
一方面,提供一种实时处理远程同步文件的方法,所述方法包括如下步骤:
从远程主机同步文件到指定目标文件夹;
对所述目标文件夹进行文件操作监控;
对目标监控行为进行检查,如检查出***作文件符合要求的,将文件路径作为消息发送到消息***;
多个文件处理实例从消息***获取消息,所述消息包括:文件路径,执行具体的文件处理操作。
可选的,所述从远程主机同步到指定目标文件夹具体,包括:
使用Linux***上的远程同步命令rsync将所述远程主机同步到指定目标文件夹。
可选的,所述对所述目标文件夹进行文件操作监控具体,包括:
使用基于Linux***上inotify功能开发的python库pyinotify对所述目标文件进行操作监控。
可选的,所述从远程主机同步到指定目标文件夹具体,包括:
将每天的数据分别同步到对应的指定目标文件夹。
可选的,所述方法还包括:将日期作为主题,将该主题划分成多个分块。
可选的,所述多个文件处理实例从消息***获取消息具体,包括:
使用多个进程从所述消息***的一个主题的不同分块获取消息。
可选的,所述对目标监控行为进行检查,如检查出***作文件符合要求的,将文件路径作为消息发送到消息***具体,包括:
实时将被监控文件夹内的文件操作进行条件判断,将符合目标要求的操作记录的文件路径发送到消息***。
可选的,所述执行具体的文件处理操作具体,包括:
使用并行算法执行具体的文件处理操作。
本发明具体实施方式提供的技术方案从数据流架构上实现了数据流的隔离划分、从多个层次提高数据处理的并行化、解决数据处理速度慢导致消息队列溢出的问题,以较高地效率完成了消息分发和文件处理的任务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种实时处理远程同步文件的方法的流程图;
图2为本发明提供的文件操作的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,图1为本发明第一较佳实施方式提供的一种实时处理远程同步文件的方法,该方法由数据处理服务器完成,该数据处理服务器可以为如计算机、服务器等具有逻辑处理功能的设备,该方法如图1所示,包括如下步骤:
步骤S101、从远程主机同步到指定目标文件夹;
步骤S101的实现方法具体可以包括:使用Linux***上的远程同步命令rsync实现数据接收服务器(即远程主机)和数据处理服务器的文件同步功能。
参照图2,在同步过程中,rsync的文件操作的方法如图2所示,包括如下步骤:
步骤S201、创建临时文件;
步骤S202、打开临时文件;
步骤S203、向临时文件写入;
步骤S204、关闭临时文件;
步骤S205、修改临时文件属性;
步骤S206、重命名临时文件(即移动临时文件)。
上述图2中各个步骤的实现方法可以参见Linux***上远程同步命令rsync的介绍,这里不再赘述。
步骤S102、对目标文件夹进行文件操作监控;
上述步骤S103的实现方法具体可以为:
文件监控功能使用基于Linux***上inotify功能开发的python库pyinotify,根据如图2所示的描述,单个文件同步完成的标志是文件移动(临时文件重命名为目标文件)指定监控的文件夹后,对于文件的移动操作会触发自定义的函数,对文件进行处理,对于文件夹同步,可以实现自动将子目录下的文件夹自动添加到监控文件夹列表中。由于文件处理速度一般比文件同步速度慢,随着时间的推移,待处理的文件队列很快就会溢出,因此本发明在处理函数中并不执行实质的处理操作,而是将文件路径发送到消息***。
S103、对目标监控行为进行检查,如检查出***作文件符合要求的,将文件路径作为消息发送到消息***。
上述步骤S103的实现方法具体可以为,消息***功能使用Kafka作为文件路径的缓存,对远程同步文件夹进行文件操作监控。具体为,文件监控功能使用基于Linux***上inotify功能开发的python库pyinotify,根据所述S101中的描述,单个文件同步完成的标志是文件移动(临时文件重命名为目标文件)。指定监控的文件夹后,对于文件的移动操作会触发自定义的函数,对文件进行处理。对于文件夹同步,可以实现自动将子目录下的文件夹自动添加到监控文件夹列表中。由于文件处理速度一般比文件同步速度慢,随着时间的推移,待处理的文件队列很快就会溢出,因此本发明在处理函数中并不执行实质的处理操作,而是将文件路径发送到消息***。Kafka有主题、分块、生产者、消费者等概念:一个主题是消息发布到的一个类别或订阅名称;一个主题可以划分为多个分区,每个分区是一个不断被追加的有序的消息序列;生产者负责将消息发布到自定义的主题中,包括选择哪个消息分配给话题内的哪个分区;消费者负责从指定的主题和分块获取消息。
为了便于维护和解除数据的耦合,以日期作为话题,文件监控模块作为生产者,每天对监控到的文件路径发布到消息***,提供作为消费者的程序获取。为了提高文件的处理速度,考虑到Python的多线程的限制,本发明使用多进程对文件流处理,为此在消息***中提高了话题的分块数量,每个处理文件的进程对接话题的一个分块。
步骤S104、多个文件处理实例从消息***获取消息(即待处理文件的路径),执行具体处理操作。
上述步骤S104的实现方法具体可以为,文件处理的具体功能依照实际应用需求,本发明实际应用的一个例子是对压缩文件解压,同时在解压出的文本的行末添加文件名信息,并根据数据的类型分类,由于对文件的处理流程一致,在Python实现时可根据需要调用multiprocessing模块,提高文件处理的并行度。
本发明具体实施方式提供的技术方案从数据流架构上实现了数据流的隔离划分、从多个层次提高数据处理的并行化、解决数据处理速度慢导致消息队列溢出的问题,以较高地效率完成了消息分发和文件处理的任务。
可选的,上述从远程主机同步到指定目标文件夹具体,包括:
将每天的数据分别同步到对应的指定目标文件夹。即以日期划分,每天的数据分别同步到指定的目标文件夹,这样能降低数据的耦合度,便于调试和应对故障恢复。
可选的,上述方法还包括:将日期作为主题,将该主题划分成多个分块。
可选的,上述多个文件处理实例从消息***获取消息具体,包括:
使用多个进程从所述消息***的一个主题的不同分块获取消息。
可选的,上述对目标监控行为进行检查,如检查出***作文件符合要求的,将文件路径作为消息发送到消息***具体,包括:
实时将被监控文件夹内的文件操作进行条件判断,将符合目标要求的操作记录的文件路径发送到消息***。
可选的,上述执行具体的文件处理操作具体,包括:
使用并行算法执行具体的文件处理操作。使得上述方案实现多级并行化,提高处理效率的机制。
需要说明的是,对于前述的各方法实施方式或实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为根据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述实施方式或实施例均属于优选实施例,所涉及的动作和单元并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。本领域的技术人员可以将本说明书中描述的不同实施例以及不同实施例的特征进行结合或组合。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(Digital Subscriber Line,DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种实时处理远程同步文件的方法,其特征在于,所述方法包括如下步骤:
从远程主机同步文件到指定目标文件夹;
对所述目标文件夹进行文件操作监控;
实时将被监控文件夹内的文件操作进行条件判断,将符合目标要求的操作记录的文件路径发送到消息***;
多个文件处理实例从消息***获取消息,所述消息包括:文件路径,执行具体的文件处理操作;
所述从远程主机同步文件到指定目标文件夹,具体包括:
将每天的数据分别同步到对应的指定目标文件夹;
所述多个文件处理实例从消息***获取消息,具体包括:
使用多个进程从所述消息***的一个主题的不同分块获取消息。
2.根据权利要求1所述的方法,其特征在于,所述从远程主机同步文件到指定目标文件夹具体,包括:
使用Linux***上的远程同步命令rsync将所述远程主机文件同步到指定目标文件夹。
3.根据权利要求1所述的方法,其特征在于,所述对所述目标文件夹进行文件操作监控具体,包括:
使用基于Linux***上inotify功能开发的python库pyinotify对所述目标文件夹 进行文件操作监控。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:将日期作为主题,将该主题划分成多个分块。
5.根据权利要求1所述的方法,其特征在于,所述执行具体的文件处理操作具体,包括:
使用并行算法执行具体的文件处理操作。
CN201510988052.9A 2015-12-24 2015-12-24 一种实时处理远程同步文件的方法 Active CN106919574B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510988052.9A CN106919574B (zh) 2015-12-24 2015-12-24 一种实时处理远程同步文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510988052.9A CN106919574B (zh) 2015-12-24 2015-12-24 一种实时处理远程同步文件的方法

Publications (2)

Publication Number Publication Date
CN106919574A CN106919574A (zh) 2017-07-04
CN106919574B true CN106919574B (zh) 2021-06-15

Family

ID=59456650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510988052.9A Active CN106919574B (zh) 2015-12-24 2015-12-24 一种实时处理远程同步文件的方法

Country Status (1)

Country Link
CN (1) CN106919574B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762986A (zh) * 2018-05-24 2018-11-06 四川斐讯信息技术有限公司 一种防止异常断电导致配置丢失的方法及***
CN110120983B (zh) * 2019-06-14 2022-06-14 浪潮软件集团有限公司 基于inotify和rsync自动化安装部署实现SVN实时同步备份的方法和***
CN114756628B (zh) * 2022-06-16 2022-10-28 天津七一二移动通信有限公司 一种高复用可扩展的数据及文件同步的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223378A (zh) * 2011-06-28 2011-10-19 北京新媒传信科技有限公司 一种文件同步方法和***
CN102609333A (zh) * 2011-11-25 2012-07-25 无锡华御信息技术有限公司 一种加密环境中保证文件备份完整性的***及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223378A (zh) * 2011-06-28 2011-10-19 北京新媒传信科技有限公司 一种文件同步方法和***
CN102609333A (zh) * 2011-11-25 2012-07-25 无锡华御信息技术有限公司 一种加密环境中保证文件备份完整性的***及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于Linux的文件实时备份***设计与实现;刘斌;《中国优秀硕士学位论文全文数据库信息科技辑》;20150315;第I138-1488页 *
基于Rsync算法的远程文件同步***的设计与实现;李贞;《中国优秀硕士学位论文全文数据库信息科技辑》;20110315;第I138-712页 *

Also Published As

Publication number Publication date
CN106919574A (zh) 2017-07-04

Similar Documents

Publication Publication Date Title
US10803016B2 (en) Predictive models of file access patterns by application and file type
CN107391629B (zh) 集群间数据迁移方法、***、服务器及计算机存储介质
US8682903B2 (en) System and method for synchronized content directories on cluster devices
CN111258978B (zh) 一种数据存储的方法
US20170031948A1 (en) File synchronization method, server, and terminal
CN104980486A (zh) 使用等同匹配网络名称的集合同步
CN105303456A (zh) 电力传输设备监控数据处理方法
CN106462575A (zh) 群集内存数据库的设计及实现
CN104537076A (zh) 一种文件读写方法及装置
CN105095364A (zh) 一种数据同步***和方法
CN105824846B (zh) 数据迁移方法及装置
CN110347651A (zh) 基于云存储的数据同步方法、装置、设备及存储介质
CN105530272A (zh) 一种应用数据的同步方法和装置
US20130325932A1 (en) Electronic device and method for storing distributed documents
CN113485962B (zh) 日志文件的存储方法、装置、设备和存储介质
CN104584524A (zh) 聚合中介***中的数据
CN106919574B (zh) 一种实时处理远程同步文件的方法
CN103716384A (zh) 跨数据中心实现云存储数据同步的方法和装置
CN104270605A (zh) 一种视频监控数据的处理方法及装置
CN113220235B (zh) 读写请求的处理方法、装置、设备及存储介质
US10135926B2 (en) Shuffle embedded distributed storage system supporting virtual merge and method thereof
CN104063377A (zh) 信息处理方法和使用其的电子设备
CN106570152B (zh) 一种手机号码的海量提取方法及***
CN110866068B (zh) 一种基于hdfs的公告数据存储方法及其装置
CN112115206A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200131

Address after: Office building of Shenzhen Institute of advanced technology A-207 518000 in Guangdong city of Shenzhen province Nanshan District City Road No. 1068 Chinese Academy of Shenzhen University Academy of Sciences

Applicant after: Shenzhen advanced science and technology Cci Capital Ltd.

Address before: 1068 No. 518055 Guangdong city in Shenzhen Province, Nanshan District City Xili University School Avenue

Applicant before: SHENZHEN INSTITUTES OF ADVANCED TECHNOLOGY CHINESE ACADEMY OF SCIENCES

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200715

Address after: 12 / F, building 5, Haiju center, Qiantang New District, Hangzhou City, Zhejiang Province

Applicant after: HANGZHOU ZHONGKE ADVANCED TECHNOLOGY RESEARCH INSTITUTE Co.,Ltd.

Address before: Office building of Shenzhen Institute of advanced technology A-207 518000 in Guangdong city of Shenzhen province Nanshan District City Road No. 1068 Chinese Academy of Shenzhen University Academy of Sciences

Applicant before: Shenzhen advanced science and technology Cci Capital Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310018 Room 501, Building 9, No. 20, Kejiyuan Road, Baiyang Street, Hangzhou Economic and Technological Development Zone, Zhejiang Province

Patentee after: Hangzhou Zhongke advanced technology development Co.,Ltd.

Country or region after: China

Address before: 12 / F, building 5, Haiju center, Qiantang New District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU ZHONGKE ADVANCED TECHNOLOGY RESEARCH INSTITUTE Co.,Ltd.

Country or region before: China