一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向OLAP分析引擎的数据导入方法和系统与流程

2023-01-06 03:22:04 来源:中国专利 TAG:
一种面向olap分析引擎的数据导入方法和系统
技术领域
:1.本发明提出了一种面向olap分析引擎的数据导入方法和系统,属于it数据库
技术领域
:。
背景技术
::2.随着大数据的发展,市场对olap(联机分析处理)的需求越来越大。联邦查询可以实现多数据库的联合查询,p级数据的秒查询;但是针对数据载入方面还是有一定的缺失。现有的导入技术方式是利用insertintoselect其他数据源进行导入。这种方式存在的缺点是只能关联其他数据源进行导入,无法导入本地csv等文本文件。技术实现要素:3.本发明提供了一种面向olap分析引擎的数据导入方法和系统,用以解决olap分析引擎本地csv等文本文件数据导入异常或无法导入的问题,以及,olap分析引擎原生导入大表性能慢的问题,所采取的技术方案如下:一种面向olap分析引擎的数据导入方法,所述数据导入方法包括:利用目标表建立文件对应数据存储临时表;通过plugin:local-file关联本地数据文件把文件数据分批读入到临时表;通过联邦查询方式,用insertintoselect语法把临时表数据写入到目标表中;对所述临时表数据写入到目标表中总的全过程进行异常数据监测。4.进一步地,所述临时表的结构和目标表的结构完全一致。5.进一步地,当文件数据的数据量在1g以下时,采用单线程导入;当文件数据的数据量大于1g时,采用多线程并行导入。6.进一步地,利用目标表建立文件对应数据存储临时表,包括:启动olap引擎,对本地文件connecter进行加载;用户执行导入本地文件数据sql;通过insertinto的目标表建立文件对应数据存储临时表。7.进一步地,所述对所述临时表数据写入到目标表中总的全过程进行异常数据监测,包括:实时监测临时表数据写入过程中是否出现异常数据;当出现异常数据时,停止临时表数据写入动作,并将出现所述异常数据的实际情况记录到日志中;在排除异常数据之后,按照最大尝试次数,重新尝试向所述目标表中写入监测临时表数据。其中,所述最大尝试次数为3次。8.一种面向olap分析引擎的数据导入系统,所述数据导入系统包括:临时表建立模块,用于利用目标表建立文件对应数据存储临时表;读入模块,用于通过plugin:local-file关联本地数据文件把文件数据分批读入到临时表;写入模块,用于通过联邦查询方式,用insertintoselect语法把临时表数据写入到目标表中;监测模块,用于对所述临时表数据写入到目标表中总的全过程进行异常数据监测。9.进一步地,所述临时表的结构和目标表的结构完全一致。10.进一步地,当文件数据的数据量在1g以下时,采用单线程导入;当文件数据的数据量大于1g时,采用多线程并行导入。11.进一步地,所述临时表建立模块包括:启动模块,用于启动olap引擎,对本地文件connecter进行加载;执行模块,用于用户执行导入本地文件数据sql;存储临时表建立模块,用于通过insertinto的目标表建立文件对应数据存储临时表。12.进一步地,所述监测模块包括:实时监测模块,用于实时监测临时表数据写入过程中是否出现异常数据;写入停止模块,用于当出现异常数据时,停止临时表数据写入动作,并将出现所述异常数据的实际情况记录到日志中;重新尝试模块,用于在排除异常数据之后,按照最大尝试次数,重新尝试向所述目标表中写入监测临时表数据。其中,所述最大尝试次数为3次。13.本发明有益效果:本发明提出的一种面向olap分析引擎的数据导入方法和系统可以用insertintotableselect*from"file:path"delimiters'|';读取本地数据文件方式导入数据。并且,本发明提出的所述数据导入方法和系统后期可以根据实际需求不断扩展各种分隔符,支持多文件同时写入,支持单文件部分写入,支持更多文件格式等。本发明提出的一种面向olap分析引擎的数据导入方法和系统能够实现olap分析引擎本地csv等文本文件数据导入,同时,通过到线程大批量数据导入的方式有效提高olap分析引擎数据导入效率。附图说明14.图1为本发明所述方法的流程图;图2为本发明所述系统的系统框图;图3为本发明所述方法或系统对应的执行代码一;图4为本发明所述方法或系统对应的执行代码二;图5为本发明所述方法或系统对应的执行代码三;图6为本发明所述方法或系统对应的执行代码四;图7为本发明所述方法或系统对应的执行代码五。具体实施方式15.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。tableselect*from"file:path"delimiters'|';读取本地数据文件方式导入数据。并且,本实施例提出的所述数据导入方法后期可以根据实际需求不断扩展各种分隔符,支持多文件同时写入,支持单文件部分写入,支持更多文件格式等。本实施例提出的一种面向olap分析引擎的数据导入方法能够实现olap分析引擎本地csv等文本文件数据导入,同时,通过到线程大批量数据导入的方式有效提高olap分析引擎数据导入效率。21.本发明实施例提出了一种面向olap分析引擎的数据导入系统,如图2所示,所述数据导入系统包括:临时表建立模块,用于利用目标表建立文件对应数据存储临时表;读入模块,用于通过plugin:local-file关联本地数据文件把文件数据分批读入到临时表;写入模块,用于通过联邦查询方式,用insertintoselect语法把临时表数据写入到目标表中;监测模块,用于对所述临时表数据写入到目标表中总的全过程进行异常数据监测。22.其中,所述临时表的结构和目标表的结构完全一致。当文件数据的数据量在1g以下时,采用单线程导入;当文件数据的数据量大于1g时,采用多线程并行导入。其中,分批多线程读取文件,并对文件增加读取文件游标,具体的执行过程如图4所示。同时,建立线程池,通过多线程并发导入文件,有效提高导入效率,其线程池创建和多线程导入过程如图5所示;同时,多线程并行导入中所采纳的线程数量通过如下公式获取:其中,n表示线程数量,m表示所述文件数据的数据量的整数部分对应的数值,例如,当所述文件数据的数据量为1.7g时,m=1,当所述文件数据的数据量为4.5g时,m=4。通过上述公式获取的线程数量能够根据实际数据量的大小进行线程数量的自动开启和关闭,在有效提高线程数量与数据量匹配的合理性,避免线程设置较多导致资源浪费,以及,线程设置较少导致数据导入效率降低的问题发生的同时,能够有效提高线程数量自动调整的灵活性和线程数量根据实际文件数据的数据量进行自动调整的自适应性。23.其中,所述临时表建立模块包括:启动模块,用于启动olap引擎,对本地文件connecter进行加载;执行模块,用于用户执行导入本地文件数据sql;存储临时表建立模块,用于通过insertinto的目标表建立文件对应数据存储临时表。24.其中,所述监测模块包括:实时监测模块,用于实时监测临时表数据写入过程中是否出现异常数据;写入停止模块,用于当出现异常数据时,停止临时表数据写入动作,并将出现所述异常数据的实际情况记录到日志中;重新尝试模块,用于在排除异常数据之后,按照最大尝试次数,重新尝试向所述目标表中写入监测临时表数据。其中,所述最大尝试次数为3次。25.本实施例提出的一种面向olap分析引擎的数据导入系统,能够通过insertintotableselect*from"file:path"delimiters'|';的方式把本地文件数据导入数据库,通过多线程提高导入效率。其运行原理为:首先通过insertinto的目标表,建立文件对应数据存储临时表。临时表结构和目标表完全一致,然后通过plugin:local-file关联本地数据文件,把文件数据分批读入到临时表。最后通过联邦查询方式,用insertintoselect语法把临时表数据载入到目标表中。对于1g以下小文件采用单线程导入。大文件采用多线程并行导入。用户可以通过配置每次读取数据库大小和读取并行度两个参数对导入过程进行调优。其中,加载本地文件的执行过程如图3所示。在所述数据导入系统执行过程中可以增加每次读取数据库大小和读取线程并行数两个参数,并给与默认值,其执行过程如图6所示。并且,所述数据导入系统持用户自定义导入文件数据分隔符,当用户自定义导入文件数据分隔符时,其执行操作如图7所示。26.本实施例提出的一种面向olap分析引擎的数据导入方法可以用insertintotableselect*from"file:path"delimiters'|';读取本地数据文件方式导入数据。并且,本实施例提出的所述数据导入方法后期可以根据实际需求不断扩展各种分隔符,支持多文件同时写入,支持单文件部分写入,支持更多文件格式等。本实施例提出的一种面向olap分析引擎的数据导入方法能够实现olap分析引擎本地csv等文本文件数据导入,同时,通过到线程大批量数据导入的方式有效提高olap分析引擎数据导入效率。27.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献