CN107679088A - 用户行为数据的文件式存储方法及装置 - Google Patents
用户行为数据的文件式存储方法及装置 Download PDFInfo
- Publication number
- CN107679088A CN107679088A CN201710787696.0A CN201710787696A CN107679088A CN 107679088 A CN107679088 A CN 107679088A CN 201710787696 A CN201710787696 A CN 201710787696A CN 107679088 A CN107679088 A CN 107679088A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- user behavior
- behavior data
- save location
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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/13—File access structures, e.g. distributed indices
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种用户行为数据的文件式存储方法及装置,其中的所述方法包括:在以单线程读取用户日志数据的同时,获取符合条件的用户行为数据;将所述用户行为数据写入内存;当所述用户日志数据所在的整个文件读取完成之后,将所述内存中保存的每一所述用户行为数据通过多线程的方式写入数据库。本发明的有益效果为:从磁盘读取用户日志数据的同时获取对应的用户行为数据,将用户行为数据加载写入内存,读取和写入可以同时进行并通过一个线程完成,当对一个用户日志数据的文件分析完成后,最大限度地多开线程并利用多线程将内存中的用户行为数据保存至存储块。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种用户行为数据的文件式存储方法及装置。
背景技术
在数据库***中,日志模块包括日志管理模块以及日志文件模块,在对日志进行读写操作时,日志文件模块现有作法是将每一条日志的日志数据记录到日志,数据块一般被直接写入到磁盘位置,这样可以保存文件***结构,防止崩溃。
目前存在的问题是,写入服务器的磁盘位置的日志文件,其一个文件中可能包含数万件用户日志数据,服务器从磁盘中读取这些日志文件,需要一条条地读取,在读取的同时获取需要的用户行为数据写入内存,这过程用一个线程进行。
在这个过程中,文件过程中对所述磁盘输入输出接口的限制,使得对所述文件的写入或读取操作受到限制,这些服务器的CPU利用率较低,如何提升在日志文件的读写时的CPU的利用率使得资源利用最大化是目前还没有任何一种方式或装置能够解决的问题。
发明内容
为了克服相关技术中存在的问题,本发明提供一种用户行为数据的文件式存储方法及装置,以实现在读取日志数据时的行为数据的读取和保存通过不同数量的线程进行以使资源利用最大化并提高效率。
第一方面,本发明实施例提供了一种用户行为数据的文件式存储方法,所述方法包括:
在以单线程读取用户日志数据的同时,获取符合条件的用户行为数据;
将所述用户行为数据写入内存;
当所述用户日志数据所在的整个文件读取完成之后,将所述内存中保存的每一所述用户行为数据通过多线程的方式写入数据库。
结合另一方面,在另一方面的一种可能的实施方式中,所述方法还包括:
获取所述数据库的第一保存位置以及所述用户日志数据的第二保存位置;
检测所述第一保存位置和所述第二保存位置是否相同;
当所述第一保存位置和所述第二保存位置相同时,在一不同于所述第一保存位置的第三保存位置创建所述数据库以保存所述用户行为数据;
当所述第一保存位置和所述第二保存位置不相同时,在所述第二保存位置创建所述数据库以保存所述用户行为数据。
结合另一方面,在另一方面的一种可能的实施方式中,在将所述内存中保存的每一所述用户行为数据通过多线程的方式写入数据库时,还包括:
暂停读取用户日志数据的操作,同时暂停对用户日志数据所在保存位置的磁盘中的文件进行分析;
将从所述内存中保存每一所述用户行为数据的多线程的数量提升至极限数量;
通过该极限数量的多线程快速地将所述用户行为数据写入数据库。
结合另一方面,在另一方面的一种可能的实施方式中,所述方法还包括:
在所述用户行为数据写入数据库之后,对所述数据库进行备份;
当各备份到达预设周期之后,对到达预设周期的各备份进行删除操作。
结合另一方面,在另一方面的一种可能的实施方式中,所述用户日志数据以文件为单位保存于服务器的磁盘,每一文件由多条用户日志数据组成,在读取用户日志数据时,以单线程的方式每次读取一条所述用户日志数据。
第二方面,本发明还提供了一种用户行为数据的文件式存储装置,所述装置包括:
获取模块,用于在以单线程读取用户日志数据的同时,获取符合条件的用户行为数据;
写入模块,用于将所述用户行为数据写入内存;
保存模块,用于当所述用户日志数据所在的整个文件读取完成之后,将所述内存中保存的每一所述用户行为数据通过多线程的方式写入数据库。
上述的装置,所述装置还包括:
保存位置获取模块,获取所述数据库的第一保存位置以及所述用户日志数据的第二保存位置;
检测模块,用于检测所述第一保存位置和所述第二保存位置是否相同;
第一创建模块,用于当所述第一保存位置和所述第二保存位置相同时,在一不同于所述第一保存位置的第三保存位置创建所述数据库以保存所述用户行为数据;
第二创建模块,用于当所述第一保存位置和所述第二保存位置不相同时,在所述第二保存位置创建所述数据库以保存所述用户行为数据。
上述的装置,所述保存模块包括:
暂停模块,用于暂停读取用户日志数据的操作,同时暂停对用户日志数据所在保存位置的磁盘中的文件进行分析;
线程增加模块,用于将从所述内存中保存每一所述用户行为数据的多线程的数量提升至极限数量;
所述保存模块还包括:
快速写入子模块,用于通过该极限数量的多线程快速地将所述用户行为数据写入数据库。
上述的装置,所述装置还包括:
备份模块,用于在所述用户行为数据写入数据库之后,对所述数据库进行备份;
删除模块,用于当各备份到达预设周期之后,对到达预设周期的各备份进行删除操作。
上述的装置,所述用户日志数据以文件为单位保存于服务器的磁盘,每一文件由多条用户日志数据组成,在读取用户日志数据时,以单线程的方式每次读取一条所述用户日志数据。
本发明的方法,用户日志数据以文件的方式写入服务器的磁盘,一个文件可能包括几万以至几十万条的用户日志数据,当本发明的执行主体从磁盘读取用户日志数据的同时,获取对应的用户行为数据,用户行为数据加载写入内存,读取和写入可以同时进行并通过一个线程完成,而当一个文件读取完成后,该文件包含的用户日志数据所对应的用户行为数据全部保存于所述内存,此时,最大限度地多开线程,并利用多线程将内存中的用户行为数据保存至存储块,如此,在读取时通过单线程的方式可以保证用户行为数据与用户日志数据一一对应地读取且整个过程不出错,而在一个文件分析完成之后则通过多线程对内存中的用户行为数据进行快速保存,最大限度地利用CPU资源,减少了资源浪费。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种用户行为数据的文件式存储方法的流程图。
图2是根据一示例性实施例示出的保存位置检测时的流程图。
图3是根据一示例性实施例示出的日志读取暂停时的流程图。
图4是根据一示例性实施例示出的一种用户行为数据的文件式存储装置的框图。
图5是根据一示例性实施例示出的保存位置检测时的框图。
图6是根据一示例性实施例示出的日志读取暂停时的框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图中将各步骤描述成顺序的处理,但是其中的许多步骤可以并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排,当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图内的其它步骤。处理可以对应于方法、函数、规程、子例程、子程序等。
本发明涉及一种用户行为数据的文件式存储方法及装置,其主要运用于服务器中的用户日志数据需要读取且用户行为数据需要保存的场景中,其基本思想是:从磁盘读取用户日志数据的同时获取对应的用户行为数据,将用户行为数据加载写入内存,读取和写入可以同时进行并通过一个线程完成,当对一个用户日志数据的文件分析完成后,最大限度地多开线程并利用多线程将内存中的用户行为数据保存至存储块,不仅可以使在读取时通过单线程的方式可以保证用户行为数据与用户日志数据一一对应地读取且整个过程不出错,而且在一个文件分析完成之后则通过多线程对内存中的用户行为数据进行快速保存,最大限度地利用CPU资源。
本实施例可适用于带有用户数据分析模块的服务器中以进行用户行为数据存储的情况中,该方法可以由服务器的中心控制装置来执行,其中该装置可以由软件和/或硬件来实现,一般地可集成于服务器中,如图1所示,为本发明实施例提供的用户行为数据的文件式存储方法的流程图,所述方法具体包括如下步骤:
在步骤110中,在以单线程读取用户日志数据的同时,获取符合条件的用户行为数据;
本发明的方法,所述用户日志数据以文件为单位写入服务器的存储介质,每一文件可包括数万以及数十万条及以上的用户日志数据,服务器从其存储介质中一条条地读取用户日志数据,在读取的同时获取每一用户日志数据对应的用户行为数据,至少每一条所述用户日志数据对应地保存有一条用户行为数据,甚至几十条以至上百条以上的用户日志数据才对应有保存有一条用户行为数据,因此,用户日志数据与用户行为数据之间的关系可不为一一对应。
所述用户日志数据以文件为单位保存于服务器的存储介质,该存储介质可以为磁盘,磁盘与服务器的中控单元之间受IO(input-output,输入输出接口)的限制,因此,在对用户日志数据的读取较佳地以单线程的方式读取,每一文件由多条用户日志数据组成,在读取用户日志数据时,以单线程的方式每次读取一条所述用户日志数据。
在步骤120中,将所述用户行为数据写入内存;
所述内存用于服务器中的暂时存放中央控制单元的运算数据,并及时与存储介质如硬盘等外部存储器作数据交换。
将获取的用户行为数据写入内存,可以避免服务器的中央处理单元一次次地将读取到的一条条用户行为数据分别存储到外部存储器的数据库中。
在步骤130中,当所述用户日志数据所在的整个文件读取完成之后,将所述内存中保存的每一所述用户行为数据通过多线程的方式写入数据库。
一个文件的全部用户日志数据全部读取完毕,则此时可以最大限度地利用服务器的中央处理单元以多线程的方式将内存中保存的所有用户行为数据保存至外部存储器,实现一次性地将一个文件对应的用户日志数据获取的所有用户行为数据以文件的方式保存到外部存储器。
本发明的方法,通过用户日志数据以文件的方式写入服务器的磁盘,一个文件可能包括几万以至几十万条的用户日志数据,当本发明的执行主体从磁盘读取用户日志数据的同时,获取对应的用户行为数据,用户行为数据加载写入内存,读取和写入可以同时进行并通过一个线程完成,而当一个文件读取完成后,该文件包含的用户日志数据所对应的用户行为数据全部保存于所述内存,此时,最大限度地多开线程,并利用多线程将内存中的用户行为数据保存至存储块,如此,在读取时通过单线程的方式可以保证用户行为数据与用户日志数据一一对应地读取且整个过程不出错,而在一个文件分析完成之后则通过多线程对内存中的用户行为数据进行快速保存,最大限度地利用CPU资源,减少了资源浪费。
在本发明示例性实施例的另一种实施场景中,所述方法还包括对所述用户日志数据以及用户行为数据保存于不同位置以避免过多地对同一个磁盘进行擦写造成的硬件故障的情形发生,如图2所示,这一过程可包括如下步骤:
在步骤210中,获取所述数据库的第一保存位置以及所述用户日志数据的第二保存位置;
所述数据库的第一保存位置,可以为一外部存储器1,所述用户日志数据的第二保存位置,其可以为外部存储器2,当所述外部存储器为一机械式硬盘时,所述外部存储器1与所述外部存储器2可以是该机械式硬盘的不同分区、不同扇区,其也可以是不同的机械式硬盘之间的存储,且所述外部存储器还可以是其它类型的存储介质,诸如(ROM例如CDROM或者半导体ROM)或者磁记录介质(例如软盘或者硬盘)。进一步地,存储介质还可以是可传输的载体,诸如电学或者光学信号,其可以经由电缆或者光缆,或者通过无线电或者其它手段传递。当程序具体化为这样的信号时,载体可以由这样的线缆或者装置组成。
在步骤220中,检测所述第一保存位置和所述第二保存位置是否相同;
在步骤230中,当所述第一保存位置和所述第二保存位置相同时,在一不同于所述第一保存位置的第三保存位置创建所述数据库以保存所述用户行为数据;
例如,当所述用户日志数据所在的磁盘1中与所述用户行为数据的设置的保存位置均为磁盘1时,此时,所述服务器的中央处理单元将重新选定一新的保存位置,例如用外部存储器CDROM等保存所述用户行为数据。
在步骤240中,当所述第一保存位置和所述第二保存位置不相同时,在所述第二保存位置创建所述数据库以保存所述用户行为数据。
当用户日志数据的保存位置与用户行为数据的保存位置不同时,则可以在该第一保存位置保存所述用于存储用户行为数据的数据库。
本发明的方法,通过对所述用户日志数据以及用户行为数据的保存位置的检测,使得用户日志数据的读取磁盘以及用户行为数据的保存磁盘保存于不同的存储介质或存储介质的不同区域,使得本避免在同一个磁盘中工作造成的磁盘过热等影响数据读取或保存的情形的发生,利用对用户行为数据的存储。
在本发明示例性实施例的另一种实施场景中,在将所述内存中保存的每一所述用户行为数据通过多线程的方式写入数据库时,还包括暂停操作,如图3所示,这一过程可包括如下步骤:
在步骤310中,暂停读取用户日志数据的操作,同时暂停对用户日志数据所在保存位置的磁盘中的文件进行分析;
在步骤320中,将从所述内存中保存每一所述用户行为数据的多线程的数量提升至极限数量;
在步骤330中,通过该极限数量的多线程快速地将所述用户行为数据写入数据库。
例如,当服务器的中央处理单元最高支持8线程的处理极限量,此时,将开启8线程同时对所述内存中的用户行为数据进行写入的操作。
本发明的方法,通过对所述内存中的用户行为数据以极限线程的多线程写入数据库所在的存储介质,使得整个写入过程快速准确无失误,并且对整个存储过程的时间的缩短起到了很大的作用。
在本发明示例性实施例的另一种实施场景中,所述方法还包括备份以及删除删除,以防止用户行为数据的丢失,这一过程可包括:在所述用户行为数据写入数据库之后,对所述数据库进行备份;当各备份到达预设周期之后,对到达预设周期的各备份进行删除操作。
当用户行为数据写入到存储介质中并保存完成之后,可对所述用户行为数据的文件或数据库进行备份,备份文件可由用户自由选择保存位置,该保存位置可以是外部存储器,也可以是云存储空间,以便于用户当保存用户行为数据的数据库或文件丢失之后可以从备份数据中找回。
当备份数据达到一定期间或确定备份数据属于已过期数据、无用数据之后,可以选择将对应的备份数据从外部存储器或云存储空间中删除,以减小该备份数据占用的存储空间。
本发明的方法,通过备份数据以及删除数据的操作使得用户行为数据在丢失的情形下还可以通过备份找回,并且对过期的备份数据按照日期的远近选择性地自动删除或者当存储空间用尽之后自动覆盖最先存储的备份数据,用户行为数据的存储的安全性大幅提升。
图4为本发明实施例提供的一种用户行为数据的文件式存储装置的信令流程图/结构示意图,该装置可由软件和/或硬件实现,一般地集成于服务器中,可通过用户行为数据的文件式存储方法来实现。如图所示,本实施例可以以上述实施例为基础,提供了一种用户行为数据的文件式存储装置,其主要包括了获取模块410、写入模块420以及保存模块430。
其中的获取模块410,用于在以单线程读取用户日志数据的同时,获取符合条件的用户行为数据;
其中的写入模块420,用于将所述用户行为数据写入内存;
其中的保存模块430,用于当所述用户日志数据所在的整个文件读取完成之后,将所述内存中保存的每一所述用户行为数据通过多线程的方式写入数据库。
在本发明示例性实施例的另一种实施场景中,如图5所示,所述装置还包括:
保存位置获取模块510,获取所述数据库的第一保存位置以及所述用户日志数据的第二保存位置;
检测模块520,用于检测所述第一保存位置和所述第二保存位置是否相同;
第一创建模块530,用于当所述第一保存位置和所述第二保存位置相同时,在一不同于所述第一保存位置的第三保存位置创建所述数据库以保存所述用户行为数据;
第二创建模块540,用于当所述第一保存位置和所述第二保存位置不相同时,在所述第二保存位置创建所述数据库以保存所述用户行为数据。
在本发明示例性实施例的另一种实施场景中,如图6所示,所述保存模块430包括:
暂停模块431,用于暂停读取用户日志数据的操作,同时暂停对用户日志数据所在保存位置的磁盘中的文件进行分析;
线程增加模块432,用于将从所述内存中保存每一所述用户行为数据的多线程的数量提升至极限数量;
所述保存模块430还包括:
快速写入子模块433,用于通过该极限数量的多线程快速地将所述用户行为数据写入数据库。
在本发明示例性实施例的另一种实施场景中,所述装置还包括:
备份模块,用于在所述用户行为数据写入数据库之后,对所述数据库进行备份;
删除模块,用于当各备份到达预设周期之后,对到达预设周期的各备份进行删除操作。
在本发明示例性实施例的另一种实施场景中,所述用户日志数据以文件为单位保存于服务器的磁盘,每一文件由多条用户日志数据组成,在读取用户日志数据时,以单线程的方式每次读取一条所述用户日志数据。
上述实施例中提供各模块两两之间均可实现通讯连接,且各模块均可与平台的中心控制装置通讯连接,上述实施例中提供的用户行为数据的文件式存储装置可执行本发明中任意实施例中所提供的用户行为数据的文件式存储方法,具备执行该方法相应的功能模块和有益效果,未在上述实施例中详细描述的技术细节,可参见本发明任意实施例中所提供的用户行为数据的文件式存储方法。
将意识到的是,本发明也扩展到适合于将本发明付诸实践的计算机程序,特别是载体上或者载体中的计算机程序。程序可以以源代码、目标代码、代码中间源和诸如部分编译的形式的目标代码的形式,或者以任何其它适合在按照本发明的方法的实现中使用的形式。也将注意的是,这样的程序可能具有许多不同的构架设计。例如,实现按照本发明的方法或者***的功能性的程序代码可能被再分为一个或者多个子例程。
用于在这些子例程中间分布功能性的许多不同方式将对技术人员而言是明显的。子例程可以一起存储在一个可执行文件中,从而形成自含式的程序。这样的可执行文件可以包括计算机可执行指令,例如处理器指令和/或解释器指令(例如,Java解释器指令)。可替换地,子例程的一个或者多个或者所有子例程都可以存储在至少一个外部库文件中,并且与主程序静态地或者动态地(例如在运行时间)链接。主程序含有对子例程中的至少一个的至少一个调用。子例程也可以包括对彼此的函数调用。涉及计算机程序产品的实施例包括对应于所阐明方法中至少一种方法的处理步骤的每一步骤的计算机可执行指令。这些指令可以被再分成子例程和/或被存储在一个或者多个可能静态或者动态链接的文件中。
另一个涉及计算机程序产品的实施例包括对应于所阐明的***和/或产品中至少一个的装置中每个装置的计算机可执行指令。这些指令可以被再分成子例程和/或被存储在一个或者多个可能静态或者动态链接的文件中。
应该留意的是,上文提到的实施例是举例说明本发明,而不是限制本发明,并且本领域的技术人员将能够设计许多可替换的实施例,而不会偏离所附权利要求的范围。在权利要求中,任何放置在圆括号之间的参考符号不应被解读为是对权利要求的限制。动词“包括”和其词形变化的使用不排除除了在权利要求中记载的那些之外的元素或者步骤的存在。在元素之前的冠词“一”或者“一个”不排除复数个这样的元素的存在。本发明可以通过包括几个明显不同的组件的硬件,以及通过适当编程的计算机而实现。在列举几种装置的装置权利要求中,这些装置中的几种可以通过硬件的同一项来体现。在相互不同的从属权利要求中陈述某些措施的单纯事实并不表明这些措施的组合不能被用来获益。
如果期望的话,这里所讨论的不同功能可以以不同顺序执行和/或彼此同时执行。此外,如果期望的话,以上所描述的一个或多个功能可以是可选的或者可以进行组合。
如果期望的话,上文所讨论的各步骤并不限于各实施例中的执行顺序,不同步骤可以以不同顺序执行和/或彼此同时执行。此外,在其他实施例中,以上所描述的一个或多个步骤可以是可选的或者可以进行组合。
虽然本发明的各个方面在独立权利要求中给出,但是本发明的其它方面包括来自所描述实施方式的特征和/或具有独立权利要求的特征的从属权利要求的组合,而并非仅是权利要求中所明确给出的组合。
这里所要注意的是,虽然以上描述了本发明的示例实施方式,但是这些描述并不应当以限制的含义进行理解。相反,可以进行若干种变化和修改而并不背离如所附权利要求中所限定的本发明的范围。
本领域普通技术人员应该明白,本发明实施例的装置中的各模块可以用通用的计算装置来实现,各模块可以集中在单个计算装置或者计算装置组成的网络组中,本发明实施例中的装置对应于前述实施例中的方法,其可以通过可执行的程序代码实现,也可以通过集成电路组合的方式来实现,因此本发明并不局限于特定的硬件或者软件及其结合。
本领域普通技术人员应该明白,本发明实施例的装置中的各模块可以用通用的移动终端来实现,各模块可以集中在单个移动终端或者移动终端组成的装置组合中,本发明实施例中的装置对应于前述实施例中的方法,其可以通过编辑可执行的程序代码实现,也可以通过集成电路组合的方式来实现,因此本发明并不局限于特定的硬件或者软件及其结合。
注意,上述仅为本发明的示例性实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种用户行为数据的文件式存储方法,其特征在于,所述方法包括:
在以单线程读取用户日志数据的同时,获取符合条件的用户行为数据;
将所述用户行为数据写入内存;
当所述用户日志数据所在的整个文件读取完成之后,将所述内存中保存的每一所述用户行为数据通过多线程的方式写入数据库。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述数据库的第一保存位置以及所述用户日志数据的第二保存位置;
检测所述第一保存位置和所述第二保存位置是否相同;
当所述第一保存位置和所述第二保存位置相同时,在一不同于所述第一保存位置的第三保存位置创建所述数据库以保存所述用户行为数据;
当所述第一保存位置和所述第二保存位置不相同时,在所述第二保存位置创建所述数据库以保存所述用户行为数据。
3.根据权利要求1或2所述的方法,其特征在于,在将所述内存中保存的每一所述用户行为数据通过多线程的方式写入数据库时,还包括:
暂停读取用户日志数据的操作,同时暂停对用户日志数据所在保存位置的磁盘中的文件进行分析;
将从所述内存中保存每一所述用户行为数据的多线程的数量提升至极限数量;
通过该极限数量的多线程快速地将所述用户行为数据写入数据库。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述用户行为数据写入数据库之后,对所述数据库进行备份;
当各备份到达预设周期之后,对到达预设周期的各备份进行删除操作。
5.根据权利要求1所述的方法,其特征在于,所述用户日志数据以文件为单位保存于服务器的磁盘,每一文件由多条用户日志数据组成,在读取用户日志数据时,以单线程的方式每次读取一条所述用户日志数据。
6.一种用户行为数据的文件式存储装置,其特征在于,所述装置包括:
获取模块,用于在以单线程读取用户日志数据的同时,获取符合条件的用户行为数据;
写入模块,用于将所述用户行为数据写入内存;
保存模块,用于当所述用户日志数据所在的整个文件读取完成之后,将所述内存中保存的每一所述用户行为数据通过多线程的方式写入数据库。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
保存位置获取模块,获取所述数据库的第一保存位置以及所述用户日志数据的第二保存位置;
检测模块,用于检测所述第一保存位置和所述第二保存位置是否相同;
第一创建模块,用于当所述第一保存位置和所述第二保存位置相同时,在一不同于所述第一保存位置的第三保存位置创建所述数据库以保存所述用户行为数据;
第二创建模块,用于当所述第一保存位置和所述第二保存位置不相同时,在所述第二保存位置创建所述数据库以保存所述用户行为数据。
8.根据权利要求6或7所述的装置,其特征在于,所述保存模块包括:
暂停模块,用于暂停读取用户日志数据的操作,同时暂停对用户日志数据所在保存位置的磁盘中的文件进行分析;
线程增加模块,用于将从所述内存中保存每一所述用户行为数据的多线程的数量提升至极限数量;
所述保存模块还包括:
快速写入子模块,用于通过该极限数量的多线程快速地将所述用户行为数据写入数据库。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
备份模块,用于在所述用户行为数据写入数据库之后,对所述数据库进行备份;
删除模块,用于当各备份到达预设周期之后,对到达预设周期的各备份进行删除操作。
10.根据权利要求6所述的装置,其特征在于,所述用户日志数据以文件为单位保存于服务器的磁盘,每一文件由多条用户日志数据组成,在读取用户日志数据时,以单线程的方式每次读取一条所述用户日志数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710787696.0A CN107679088A (zh) | 2017-09-04 | 2017-09-04 | 用户行为数据的文件式存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710787696.0A CN107679088A (zh) | 2017-09-04 | 2017-09-04 | 用户行为数据的文件式存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107679088A true CN107679088A (zh) | 2018-02-09 |
Family
ID=61134721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710787696.0A Pending CN107679088A (zh) | 2017-09-04 | 2017-09-04 | 用户行为数据的文件式存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107679088A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061690A (zh) * | 2019-11-22 | 2020-04-24 | 武汉达梦数据库有限公司 | 一种基于rac的数据库日志文件读取方法和装置 |
CN112631733A (zh) * | 2020-12-31 | 2021-04-09 | 中电长城网际安全技术研究院(北京)有限公司 | 数据采集方法及装置 |
CN115329391A (zh) * | 2022-10-18 | 2022-11-11 | 成都卫士通信息产业股份有限公司 | 一种文本数据库的防护方法、装置、设备及介质 |
-
2017
- 2017-09-04 CN CN201710787696.0A patent/CN107679088A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061690A (zh) * | 2019-11-22 | 2020-04-24 | 武汉达梦数据库有限公司 | 一种基于rac的数据库日志文件读取方法和装置 |
CN111061690B (zh) * | 2019-11-22 | 2023-08-22 | 武汉达梦数据库股份有限公司 | 一种基于rac的数据库日志文件读取方法和装置 |
CN112631733A (zh) * | 2020-12-31 | 2021-04-09 | 中电长城网际安全技术研究院(北京)有限公司 | 数据采集方法及装置 |
CN112631733B (zh) * | 2020-12-31 | 2024-01-02 | 中电长城网际安全技术研究院(北京)有限公司 | 数据采集方法及装置 |
CN115329391A (zh) * | 2022-10-18 | 2022-11-11 | 成都卫士通信息产业股份有限公司 | 一种文本数据库的防护方法、装置、设备及介质 |
CN115329391B (zh) * | 2022-10-18 | 2023-01-24 | 成都卫士通信息产业股份有限公司 | 一种文本数据库的防护方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625452A (zh) | 流量回放方法和*** | |
KR101903926B1 (ko) | 칼럼형 데이터베이스의 히스토그램을 이용한 효율적인 질의 처리 | |
US20090293073A1 (en) | Automating asynchronous programming in single threaded systems | |
JP2010541080A (ja) | サービス指向型パイプライン構造 | |
CN108459962A (zh) | 代码规范性检测方法、装置、终端设备及存储介质 | |
US9824000B1 (en) | Testing calling code dynamically with random error injection based on user-specified configuration | |
CN107679088A (zh) | 用户行为数据的文件式存储方法及装置 | |
CN110716714B (zh) | 组件创建方法、装置、计算机***和计算机可读存储介质 | |
WO2019047442A1 (zh) | 一种ios应用中绕过函数调用链检测的方法及*** | |
CN115686932B (zh) | 备份集文件恢复方法、装置和计算机设备 | |
CN111459948B (zh) | 一种基于中心化块链式账本的交易完整性验证方法 | |
CN105094811A (zh) | 一种事件处理的方法和装置 | |
CN108536822A (zh) | 数据迁移方法、装置、***及存储介质 | |
CN104536892B (zh) | 一种软件在线调试方法和*** | |
CN112035156A (zh) | 一种电商平台对接装置、方法、设备及介质 | |
CN105630526B (zh) | 脚本的加载控制方法及装置 | |
US9262304B2 (en) | Methods and systems for testing interactions between mobile applications | |
CN115757639A (zh) | 数据源同步方法、装置、电子设备及存储介质 | |
US9990274B2 (en) | Testing integrated business systems | |
CN106610833B (zh) | 一种触发重叠html元素鼠标事件的方法及装置 | |
CN114691496A (zh) | 单元测试方法、装置、计算设备及介质 | |
CN110221952B (zh) | 业务数据的处理方法及装置、业务数据处理*** | |
Yamane et al. | Systematic analysis of micro dynamics in agent based simulation | |
CN106227839A (zh) | 一种lustre文件***的扩容方法及装置 | |
CN105279122A (zh) | 一种基于xml的数据交换*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180209 |