用于数据加载的方法、装置及计算机可读介质与流程

文档序号:13482801阅读:281来源:国知局

本发明涉及数据库信息处理领域,具体而言,涉及一种用于数据加载的方法、装置及计算机可读介质。



背景技术:

数据加载(etl,extract-transform-load),是用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。在实际情况中,用户从数据源抽取出所需的数据,经过数据清洗处理,最终按照预先定义好的数据仓库模型,将数据导入到数据仓库中去,整个过程,即为数据加载过程。

在现有技术中,有许多已经成熟的数据处理转换工具,市场上已经成熟的转换工具对比而言,目前大多数工具已经很完善,功能已经很强大,能支持各种数据库的导入。但是在文件导入到数据库,从内存分配角度上来考察这些工具的话,对于一些文件,特别是大文件而言,一旦获取文件数据,现有工具中就会为该文件分配固定的内存进行处理,因此,现阶段etl数据加载环境下普遍存在抽取效率慢,内存占用大的情况。并且,由于对于不同的待处理文件来说,由于每个文件的数据量是不同的,因此,也存在内存分配不合理的情况,而且文件数据导入到数据后有时还会存在有很多内存残留遗迹的问题。

因此,需要一种新的用于数据加载的方法、装置及计算机可读介质。

在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

有鉴于此,本发明提供一种用于数据加载的方法、装置及计算机可读介质,能够优化内存占用情况,自动分配内存,大大地降低了内存的占用,科学合理地分配了每次导入所需要的内存占有。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的一方面,提出一种用于数据加载的方法,该方法包括:将待处理文件导入本地磁盘,所述待处理文件包括至少一个子文件;对所述待处理文件进行预处理,生成分页数据;通过字符串快速操作池对所述分页数据进行数据转换处理,以获取转换数据,其中,在数据转换处理过程中,通过内存拦截器自动分配内存;将所述转换数据发送至目标数据库。

在本公开的一种示例性实施例中,还包括:判断待处理文件中的子文件是否全部存在;在所述待处理文件中的子文件全部存在后,通过多线程进行数据导入。

在本公开的一种示例性实施例中,所述将待处理文件导入本地磁盘,包括:将每一个所述子文件分别映射为一个内核对象;以及将每一个所述子文件的文件句柄储存到内存中。

在本公开的一种示例性实施例中,所述对所述待处理文件进行预处理,生成分页数据,包括:以字节为单位获取所述待处理文件中预定长度的数据,生成所述分页数据。

在本公开的一种示例性实施例中,所述对所述待处理文件进行预处理,生成分页数据,还包括:设置内存映射文件指针指向所述文件句柄。

在本公开的一种示例性实施例中,所述通过字符串快速操作池对所述分页数据进行数据转换处理,以获取转换数据,包括:获取所述分页数据的数据量;以及根据所述分页数据的数据量获取预定空间,并重新分配空间所述字符串快速操作池的空间。

在本公开的一种示例性实施例中,所述通过字符串快速操作池对所述分页数据进行数据转换处理,还包括:在数据转换处理完成后释放所述字符串快速操作池中被占用的空间以及内存锁。

在本公开的一种示例性实施例中,所述在所述数据转换处理过程中,通过内存拦截器自动分配内存,包括:设定内存拦截器为全局独立监听服务线程;以及通过所述内存拦截器监控所述字符串快速操作池中内存资源。

在本公开的一种示例性实施例中,所述在所述数据转换处理过程中,通过内存拦截器自动分配内存,包括:判断当前内存是否满足所述数据转换的需求;以及如果当前内存满足所述数据转换的需求,则将所述转换数据储存在所述字符串快速操作池中,并锁定内存占用空间。

在本公开的一种示例性实施例中,所述在所述数据转换处理过程中,通过内存拦截器自动分配内存,还包括:如果当前内存不满足所述数据转换的需求,则逐次增加预定空间的缓冲区块至满足所述数据转换的需求;以及在所述字符串快速操作池锁定所述预定空间。

根据本发明的一方面,提出一种用于数据加载的装置,该装置包括:导入模块,用于将待处理文件导入本地磁盘,所述待处理文件包括至少一个子文件;预处理模块,用于对所述待处理文件进行预处理,生成分页数据;转换模块,用于通过字符串快速操作池对所述分页数据进行数据转换处理,以获取转换数据,其中,在数据转换处理过程中,通过内存拦截器自动分配内存;发送模块,用于将所述转换数据发送至目标数据库。

在本公开的一种示例性实施例中,还包括:判断模块,用于判断待处理文件中的子文件是否全部存在;在所述待处理文件中的子文件全部存在后,通过多线程进行数据导入。

根据本发明的一方面,提出一种计算机可读介质,其上存储有计算机程序,其特征在于,程序被处理器执行时实现如上文中的方法。

根据本发明的用于数据加载的方法、装置及计算机可读介质,能够优化内存占用情况,自动分配内存,大大地降低了内存的占用,科学合理地分配了每次导入所需要的内存占有。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据一示例性实施例示出的一种用于数据加载的方法的流程图。

图2是根据一示例性实施例示出的一种用于数据加载的方法的示意图。

图3是根据另一示例性实施例示出的一种用于数据加载的方法的示意图。

图4是根据一示例性实施例示出的一种用于数据加载的装置的框图。

图5是根据一示例性实施例示出的一种计算机可读介质示意图。

具体实施例

现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。

本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。

下面结合附图对本公开示例实施方式进行详细说明。

图1是根据一示例性实施例示出的一种用于数据加载的方法的流程图。

如图1所示,在s102中,将待处理文件导入本地磁盘,所述待处理文件包括至少一个子文件。在本实施例中,待处理的文件可为任意数据类型的文件,待处理文件可包括多个子文件,每个子文件可例如为文档,图片,视频等数据,本发明不以此为限。还可例如包括:将每一个所述子文件分别映射为一个内核对象;以及将每一个所述子文件的文件句柄储存到内存中。可例如,数据加载主程序开启多线程将大文件导入到数据库,每个线程映射打开要导入的大文件,映射到本地磁盘,一个文件映射一个内核对象,文件句柄保存到内存中。在本实施例中,大文件可例如为超过一定数据量的文件,大文件的衡量阈值可例如通过历史数据或经验数据确定。由于内存映射文件的物理存储器实际上是本地磁盘上的一个文件,而不是从系统中分配内存,所以不分配进程的地址空间,不占用内存空间。一旦该文件被映射,就可以访问它,就像整个文件已经加载内存一样,从而可以不必对文件执行i/o操作,这对大数据量文件来说存取效率较高。

在s104中,对所述待处理文件进行预处理,生成分页数据。包括:以字节为单位获取所述待处理文件中预定长度的数据,生成所述分页数据。还包括:设置内存映射文件指针指向所述文件句柄。可例如,设置内存映射文件视图指针,该指针指向系统所开辟的内存中存储的文件句柄,在使用内存映射文件进行读取处理时,系统对数据的传输按页面来进行。通过内存映射文件视图指针分批次读取部分数据,每执行完一段数据,该内存映射文件视图指针就往后移动,读取在系统所开辟的内存中的存储的文件句柄,直到读完数据。由此,可通过文件句柄访问映射在磁盘上的文件,把磁盘上的文件当做虚拟内存的大数据处理。指针每次获取的数据就是分页数据。

在s106中,通过字符串快速操作池对所述分页数据进行数据转换处理,以获取转换数据,其中,在数据转换处理过程中,通过内存拦截器自动分配内存。可例如,设定内存拦截器为全局独立监听服务线程;以及通过所述内存拦截器监控所述字符串快速操作池中内存资源。内存拦截器,一旦接收到通知事件脉冲就调用接口执行自动分配内存功能,其实际作用为通过提供接口的形式监控每次运行的单个转换处理线程。可例如,在数据处理程序启动时首先加载这个线程,将这些线程设置为全局变量,从而可以实时访问,同时该内存拦截校验器自带拦截内存接口,该接口主要用于判断现有字符串操作池已经被虚拟分配占用的内存,并计算本次调用大致需要的内存,分配所需内存。

将待转换处理数据存放在字符串快速操作池中。内存池开辟的空间可例如存在空间限制,可例如为最多64k大小,并根据数据量自动调整,在字符串快速操作池中把分页数据当做固定字符串,用指针处理。

在s108中,将所述转换数据发送至目标数据库。可例如,将经过转换处理后的数据传入数据库通讯组件;数据库通讯组件类似于数据库客户端,直接发送给目标数据库服务端,即将数据加载到了目标数据库中。

根据本发明的用于数据加载的方法,将待处理数据转换为分页数据,进而通过带有内存拦截器的字符串快速操作池对所述分页数据进行数据转换处理的方式,能够优化内存占用情况,自动分配内存,大大地降低了内存的占用,科学合理地分配了每次导入所需要的内存占有。

应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施例。

在本公开的一种示例性实施例中,还包括:判断待处理文件中的子文件是否全部存在;在所述待处理文件中的子文件全部存在后,通过多线程进行数据导入。

可例如,首先对预导入文件路径进行配置,指定程序所需导入文件。文件名称在配置时支持预定的迭代方式设置,如文件名称可以是:数据导入_$$yyyymmdd$$.txt,其中$$yyyymmdd$$为实际需要替换的迭代内容,此处为日期格式。

然后,在程序启动导入过程中,判断是否存在文件,如果单次导入过程依赖多个导入文件,则当所有依赖的导入文件都存在时,再启动数据导入步骤。此项判断可例如设置开始判断时间和结束判断时间,并设置对应的判断间隔。在预设的时间范围内对文件存在状态进行多次判断,直至判断为全部文件都存在后,开始调用数据导入过程,实现数据导入自动化。

最后,当文件存在时,数据加载主程序开启多线程开始将大文件导入到数据库。

在本公开的一种示例性实施例中,对所述待处理文件进行预处理,生成分页数据。包括:以字节为单位获取所述待处理文件中预定长度的数据,生成所述分页数据。还包括:设置内存映射文件指针指向所述文件句柄。可例如进行如下示例性操作步骤。

(1)需对要导入的大文件进行转换处理,此时,需要读取文件。在此,设置内存映射文件视图指针,该指针指向系统所开辟的内存中存储的文件句柄,在使用内存映射文件进行读取处理时,系统对数据的传输按页面来进行。通过内存映射文件视图指针分批次读取部分数据,每执行完一段数据,该内存映射文件视图指针就往后移动,读取在系统所开辟的内存中的存储的文件句柄,直到读完数据。由此,可通过文件句柄访问映射在磁盘上的文件,把磁盘上的文件当做虚拟内存的大数据处理。指针每次获取的数据就是分页数据。

(2)对待转换数据进行分页计算,待分页数据以字节为单位获取,每次获取指定长度的字节数作为一个分页单元。

(3)对步骤(2)中的分页单元中最后一个字节类型进行判断,如遇到分页单元中最后一个字节为双字节编码格式文件的前字节,则内存映射文件视图指针向后退一个,以保证读取到的是一个特定编码方式下完整定义的字符。

(4)调用数据处理模块将每批次获取到的分页数据进行数据转换处理,将待转换处理数据存放在字符串快速操作池中。内存池开辟的空间最多64k大小,并根据数据量自动调整,在内存池中把分页数据当做固定字符串,用指针处理。

根据本发明的用于数据加载的方法,通过对待处理数据进行为分页处理,生成分页数据的方式,能够辅助解决数据导入时的大文件占用内存大的问题。

图2是根据一示例性实施例示出的一种用于数据加载的方法的示意图。图2是对内存拦截器的示例性描述。

在本公开的一种示例性实施例中,所述通过字符串快速操作池对所述分页数据进行数据转换处理,以获取转换数据,包括:获取所述分页数据的数据量;以及根据所述分页数据的数据量获取预定空间,并重新分配空间所述字符串快速操作池的空间。还包括:在数据转换处理完成后释放所述字符串快速操作池中被占用的空间以及内存锁。

如图2所示,字符快速操作池的大小可例如通过如下方式来确定的:内存管理模块先获取分页数据的数据量,判断该分页数据的大小,并根据数据分页大小获取所需最小空间,并对字符快速操作池重新分配大小,进一步降低内存占用。一般一个分页的数据量是64*1024字节,64k,末尾页不足64k也当做一个分页数据处理。每次获取一个分页数据量,把这个数据量当做一个完整数据包调用快速操作池的接口,触发快速操作池的内存拦截器,内存拦截器检索快速操作池的现有内存大小,内存管理模块对快速操作池进行重分配。可例如:在系统是单线程的情况下,加载首页分页数据,快速操作池会打开2*1024个字节的内存空间,判断是否满足当前分页数据量,如果不满足则再增加256个字节去检索是否满足当前分页数据量,直到一个分页数据的数据全部满足为止。如果首页刚好是64k的大小则最大分配64*1024/256个单位的bufferblock,如果文件大小不足64k,则首页既是尾页,提交文件所有字节到内存快速操作池中按照上述处理。而在快速操作池中则每接收到1个单位的bufferblock则立即处理这个数据块,处理完成释放bufferblock,所以很有可能还没等一个分页数据64k全部加载到快速操作池中,快速操作池就已经处理掉其中的bufferblock,比如只占用了2048个字节。在性能良好的情况下下最理想的状态是:当第一个256字节的bufferblock加载完成后,正准备加载第二个bufferblock时,刚好第一个bufferblock已经或者提前处理数据并释放资源,第三个数据块加载时第二个已经或者处理完,最终一个分页数据很有可能只是占用了256个字节在操作。一般状态是:先加载先处理先释放,以bufferblock数据块为单位各自快速操作。

对于内存管理模块,其首先将内存池默认分配为2*1024个字节,同时设置其单个线程最大分配空间为64k。当数据转换程序以多线程方式运行时,将该多个线程都注册到一个名为内存拦截校验器的全局独立监听服务线程中,由这个内存拦截校验器监控每个转换线程运行时对字符串快速操作池的内存占用情况,并检测字符串快速操作池实际所需内存大小,对内存进行动态管理。可例如,当有3个文件即3个线程并发处理文本数据,每个线程都装载在分页数据中,第一个线程的数据处理逻辑效率快,在快速操作池中体现成256个字节处理,第二个线程处理适中,在快速操作池中是2*1024个字节在处理,第三个线程处理较慢,在快速操作池中是10*1024字节处理,那么在检测内存占用的时候,三个线程最终体现12.5*1024个字节占用内存。如果没有快速操作池的内存拦截器和快速操作池,使用虚拟内存的分页处理也会开辟3*64*1024个字节的内存。

对于内存拦截校验器,一旦接收到通知事件脉冲就调用接口执行自动分配内存功能,其实际作用为通过提供接口的形式监控每次运行的单个转换处理线程。在程序启动时首先加载这个线程,将这些线程设置为全局变量,从而可以实时访问,同时该内存拦截校验器自带拦截内存接口,该接口主要用于判断现有字符串操作池已经被虚拟分配占用的内存,并计算本次调用大致需要的内存,分配所需内存。计算原理:根据步骤h获得首页分页进行bufferblock处理数据时,首次默认用2*1024个字节的大小,如果首页达不到2*1024个字节则减少内存,计算多少个bufferblaock能够满足,并释放多于的内存;如果首页分页数据量超过2*1024个字节,第一次调用需要256个字节,当前满足情况下无须开辟;如果在加载第二个bufferblock时第一个已经释放,则释放原先开辟的多于的2m内存只留下256k;如果在加载前面8个bufferblock后第一次开辟的2m内存已经全部使用完还是处理完,准备加载第9个bufferblock时调整内存大小,再开辟一个256个字节的bufferblock,依次类推后面的数据块直到全部家在处理完。每次加载一个bufferblock每次锁住这块内存,防止其他线程或者数据块使用,处理完这个数据块会自动打开锁,释放资源,所以内存块的操作是安全的。同时,在程序关闭后,即释放该线程,从而可以与程序共存消亡,由此,在内存销毁时不容易产生内存碎片。

在本公开的一种示例性实施例中,所述在所述数据转换处理过程中,通过内存拦截器自动分配内存,包括:判断当前内存是否满足所述数据转换的需求;以及如果当前内存满足所述数据转换的需求,则将所述转换数据储存在所述字符串快速操作池中,并锁定内存占用空间。还包括:如果当前内存不满足所述数据转换的需求,则逐次增加预定空间的缓冲区块至满足所述数据转换的需求;以及在所述字符串快速操作池锁定所述预定空间。可例如,运行程序数据转换处理时,每个线程一旦执行到调用字符串快速操作池内存接口,就会触发内存拦截器运行自动分配内存机制。在自动分配内存时,首先判断当前内存大小是否满足数据需求,如果满足大小就将数据直接存储在操作池中,并锁定内存占用空间;如果内存当前大小不满足,就逐次增加单位大小为256字节的bufferblock,直达能装下所需数据为止。在数据转换操作完成直接释放占用操作池的空间,并释放内存锁,所有之前申请占用的内存都会全部清空,由此,可以实时清理内存残留痕迹。

根据本发明的用于数据加载的方法,对数据的处理全部在字符集快速操作池中进行,所有的内存创建、运行、销毁都在一个动态平衡系统中以自我调节的方式管理实现,与一般的内存分配方法相比,在内存销毁时不容易产生内存碎片,而且内存占用之间互不干扰,每次使用锁定占用资源,使用完毕自动释放资源并清理内存残留,通过前述技术特点,可以最终实现一个具有如下特定的etl数据加载方案,使得部署门槛低,维护方便,仅通过一台服务器就可以进行部署。

图3是根据另一示例性实施例示出的一种用于数据加载的方法的示意图。图3示例性的描述了数据加载方法。

在s302中,数据转换主程序启动。

在s304中,通过多线程获取分页数据。

在s306中,通过字符集快速操作池中处理数据。

在s308中,通过数据库通讯组件将处理后的数据传送到数据库服务端。

根据本发明的用于数据加载的方法,在文件到数据库的数据抽取过程中,无论是从读取文件还是到获取文件数据导入到数据库上都进行了智能的检索,自动分配内存,大大地降低了内存的占用,科学合理地分配了每次导入所需要的内存占有。用尽可能低的内存来进行数据加载,并克服内存分配不合理的问题。

本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由cpu执行的计算机程序。在该计算机程序被cpu执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。

此外,需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。

图4是根据一示例性实施例示出的一种用于数据加载的装置的框图。

导入模块402用于将待处理文件导入本地磁盘,所述待处理文件包括至少一个子文件。

预处理模块404用于对所述待处理文件进行预处理,生成分页数据。

转换模块406用于通过字符串快速操作池对所述分页数据进行数据转换处理,以获取转换数据,其中,在数据转换处理过程中,通过内存拦截器自动分配内存。

发送模块408用于将所述转换数据发送至目标数据库。

在本公开的一种示例性实施例中,还包括:判断模块(图中未示出),用于判断待处理文件中的子文件是否全部存在;在所述待处理文件中的子文件全部存在后,通过多线程进行数据导入。

图5是根据一示例性实施例示出的一种计算机可读介质示意图。

参考图5所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品400,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:将待处理文件导入本地磁盘,所述待处理文件包括至少一个子文件;对所述待处理文件进行预处理,生成分页数据;通过字符串快速操作池对所述分页数据进行数据转换处理,以获取转换数据,其中,在数据转换处理过程中,通过内存拦截器自动分配内存;将所述转换数据发送至目标数据库。

本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施例的方法。

通过以上的详细描述,本领域的技术人员易于理解,根据本发明实施例的用于数据加载的方法、装置及计算机可读介质具有以下优点中的一个或多个。

根据一些实施例,本发明的用于数据加载的方法,将待处理数据转换为分页数据,进而通过带有内存拦截器的字符串快速操作池对所述分页数据进行数据转换处理的方式,能够优化内存占用情况,自动分配内存,大大地降低了内存的占用,科学合理地分配了每次导入所需要的内存占有。

根据另一些实施例,本发明的用于数据加载的方法,对数据的处理全部在字符集快速操作池中进行,所有的内存创建、运行、销毁都在一个动态平衡系统中以自我调节的方式管理实现,与一般的内存分配方法相比,在内存销毁时不容易产生内存碎片,而且内存占用之间互不干扰,每次使用锁定占用资源,使用完毕自动释放资源并清理内存残留,通过前述技术特点,可以最终实现一个具有如下特定的etl数据加载方案,使得部署门槛低,维护方便,仅通过一台服务器就可以进行部署。

以上具体地示出和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

此外,本说明书说明书附图所示出的结构、比例、大小等,均仅用以配合说明书所公开的内容,以供本领域技术人员了解与阅读,并非用以限定本公开可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本公开所能产生的技术效果及所能实现的目的下,均应仍落在本公开所公开的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“第一”、“第二”及“一”等的用语,也仅为便于叙述的明了,而非用以限定本公开可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当也视为本发明可实施的范畴。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1