CN115544027A - 一种面向olap分析引擎的数据导入方法和系统 - Google Patents
一种面向olap分析引擎的数据导入方法和系统 Download PDFInfo
- Publication number
- CN115544027A CN115544027A CN202211545931.0A CN202211545931A CN115544027A CN 115544027 A CN115544027 A CN 115544027A CN 202211545931 A CN202211545931 A CN 202211545931A CN 115544027 A CN115544027 A CN 115544027A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- temporary table
- temporary
- import
- 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 60
- 230000008676 import Effects 0.000 title claims description 56
- 230000002159 abnormal effect Effects 0.000 claims abstract description 35
- 238000012544 monitoring process Methods 0.000 claims abstract description 30
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000013500 data storage Methods 0.000 claims abstract description 17
- 230000009471 action Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011056 performance test 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种面向OLAP分析引擎的数据导入方法和系统。所述数据导入方法包括:利用目标表建立文件对应数据存储临时表;通过plugin:local‑file关联本地数据文件把文件数据分批读入到临时表;通过联邦查询方式,用insert into select语法把临时表数据写入到目标表中;对所述临时表数据写入到目标表中总的全过程进行异常数据监测。所述系统包括与所述方法步骤对应的模块。
Description
技术领域
本发明提出了一种面向OLAP分析引擎的数据导入方法和系统,属于IT数据库技术领域。
背景技术
随着大数据的发展,市场对OLAP(联机分析处理)的需求越来越大。联邦查询可以实现多数据库的联合查询,P级数据的秒查询;但是针对数据载入方面还是有一定的缺失。现有的导入技术方式是利用insert into select 其他数据源进行导入。 这种方式存在的缺点是只能关联其他数据源进行导入,无法导入本地csv等文本文件。
发明内容
本发明提供了一种面向OLAP分析引擎的数据导入方法和系统,用以解决OLAP分析引擎本地csv等文本文件数据导入异常或无法导入的问题,以及,OLAP分析引擎原生导入大表性能慢的问题,所采取的技术方案如下:
一种面向OLAP分析引擎的数据导入方法,所述数据导入方法包括:
利用目标表建立文件对应数据存储临时表;
通过plugin:local-file关联本地数据文件把文件数据分批读入到临时表;
通过联邦查询方式,用insert into select语法把临时表数据写入到目标表中;
对所述临时表数据写入到目标表中总的全过程进行异常数据监测。
进一步地,所述临时表的结构和目标表的结构完全一致。
进一步地,当文件数据的数据量在1G以下时,采用单线程导入;当文件数据的数据量大于1G时,采用多线程并行导入。
进一步地,利用目标表建立文件对应数据存储临时表,包括:
启动OLAP引擎,对本地文件connecter进行加载;
用户执行导入本地文件数据sql;
通过insert into的目标表建立文件对应数据存储临时表。
进一步地,所述对所述临时表数据写入到目标表中总的全过程进行异常数据监测,包括:
实时监测临时表数据写入过程中是否出现异常数据;
当出现异常数据时,停止临时表数据写入动作,并将出现所述异常数据的实际情况记录到日志中;
在排除异常数据之后,按照最大尝试次数,重新尝试向所述目标表中写入监测临时表数据。其中,所述最大尝试次数为3次。
一种面向OLAP分析引擎的数据导入系统,所述数据导入系统包括:
临时表建立模块,用于利用目标表建立文件对应数据存储临时表;
读入模块,用于通过plugin:local-file关联本地数据文件把文件数据分批读入到临时表;
写入模块,用于通过联邦查询方式,用insert into select语法把临时表数据写入到目标表中;
监测模块,用于对所述临时表数据写入到目标表中总的全过程进行异常数据监测。
进一步地,所述临时表的结构和目标表的结构完全一致。
进一步地,当文件数据的数据量在1G以下时,采用单线程导入;当文件数据的数据量大于1G时,采用多线程并行导入。
进一步地,所述临时表建立模块包括:
启动模块,用于启动OLAP引擎,对本地文件connecter进行加载;
执行模块,用于用户执行导入本地文件数据sql;
存储临时表建立模块,用于通过insert into的目标表建立文件对应数据存储临时表。
进一步地,所述监测模块包括:
实时监测模块,用于实时监测临时表数据写入过程中是否出现异常数据;
写入停止模块,用于当出现异常数据时,停止临时表数据写入动作,并将出现所述异常数据的实际情况记录到日志中;
重新尝试模块,用于在排除异常数据之后,按照最大尝试次数,重新尝试向所述目标表中写入监测临时表数据。其中,所述最大尝试次数为3次。
本发明有益效果:
本发明提出的一种面向OLAP分析引擎的数据导入方法和系统可以用insert intotable select * from "file:path" delimiters '|';读取本地数据文件方式导入数据。并且,本发明提出的所述数据导入方法和系统后期可以根据实际需求不断扩展各种分隔符,支持多文件同时写入,支持单文件部分写入,支持更多文件格式等。本发明提出的一种面向OLAP分析引擎的数据导入方法和系统能够实现OLAP分析引擎本地csv等文本文件数据导入,同时,通过到线程大批量数据导入的方式有效提高OLAP分析引擎数据导入效率。
附图说明
图1为本发明所述方法的流程图;
图2为本发明所述系统的系统框图;
图3为本发明所述方法或系统对应的执行代码一;
图4为本发明所述方法或系统对应的执行代码二;
图5为本发明所述方法或系统对应的执行代码三;
图6为本发明所述方法或系统对应的执行代码四;
图7为本发明所述方法或系统对应的执行代码五。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明实施例提出了一种面向OLAP分析引擎的数据导入方法,在做tpcds-10T数据量性能测试时。采用自带联邦查询方式导入,280亿数据大表需要30多小时,并且导入过程中,很容易产生内存溢出等异常,导致本次导入失败,需要重新执行。由于tpcds连接器的无序性,也无法分批导入。急需一种便捷快速的导入工具。因此,本发明实施例提出了一种向OLAP分析引擎的数据导入方法,此导入方式可以把数据先生成到本地,然后分批量并发导入,有效提高了导入效率;
具体的,如图1所述,所述数据导入方法包括:
步骤1、利用目标表建立文件对应数据存储临时表;
步骤2、通过plugin:local-file关联本地数据文件把文件数据分批读入到临时表;
步骤3、通过联邦查询方式,用insert into select语法把临时表数据写入到目标表中;
步骤4、对所述临时表数据写入到目标表中总的全过程进行异常数据监测。
其中,所述临时表的结构和目标表的结构完全一致。当文件数据的数据量在1G以下时,采用单线程导入;当文件数据的数据量大于1G时,采用多线程并行导入。其中,多线程并行导入中所采纳的线程数量通过如下公式获取:
其中,N表示线程数量,m表示所述文件数据的数据量的整数部分对应的数值,例如,当所述文件数据的数据量为1.7G时,m=1,当所述文件数据的数据量为4.5G时,m=4。通过上述公式获取的线程数量能够根据实际数据量的大小进行线程数量的自动开启和关闭,在有效提高线程数量与数据量匹配的合理性,避免线程设置较多导致资源浪费,以及,线程设置较少导致数据导入效率降低的问题发生的同时,能够有效提高线程数量自动调整的灵活性和线程数量根据实际文件数据的数据量进行自动调整的自适应性。
其中,利用目标表建立文件对应数据存储临时表,包括:
步骤101、启动OLAP引擎,对本地文件connecter进行加载;
步骤102、用户执行导入本地文件数据sql;
步骤103、通过insert into的目标表建立文件对应数据存储临时表。
其中,所述对所述临时表数据写入到目标表中总的全过程进行异常数据监测,包括:
步骤401、实时监测临时表数据写入过程中是否出现异常数据;
步骤402、当出现异常数据时,停止临时表数据写入动作,并将出现所述异常数据的实际情况记录到日志中;
步骤403、在排除异常数据之后,按照最大尝试次数,重新尝试向所述目标表中写入监测临时表数据。其中,所述最大尝试次数为3次。
本实施例提出的一种面向OLAP分析引擎的数据导入方法可以用insert intotable select * from "file:path" delimiters '|';读取本地数据文件方式导入数据。并且,本实施例提出的所述数据导入方法后期可以根据实际需求不断扩展各种分隔符,支持多文件同时写入,支持单文件部分写入,支持更多文件格式等。本实施例提出的一种面向OLAP分析引擎的数据导入方法能够实现OLAP分析引擎本地csv等文本文件数据导入,同时,通过到线程大批量数据导入的方式有效提高OLAP分析引擎数据导入效率。
本发明实施例提出了一种面向OLAP分析引擎的数据导入系统,如图2所示,所述数据导入系统包括:
临时表建立模块,用于利用目标表建立文件对应数据存储临时表;
读入模块,用于通过plugin:local-file关联本地数据文件把文件数据分批读入到临时表;
写入模块,用于通过联邦查询方式,用insert into select语法把临时表数据写入到目标表中;
监测模块,用于对所述临时表数据写入到目标表中总的全过程进行异常数据监测。
其中,所述临时表的结构和目标表的结构完全一致。当文件数据的数据量在1G以下时,采用单线程导入;当文件数据的数据量大于1G时,采用多线程并行导入。其中,分批多线程读取文件,并对文件增加读取文件游标,具体的执行过程如图4所示。同时,建立线程池,通过多线程并发导入文件,有效提高导入效率,其线程池创建和多线程导入过程如图5所示;同时,多线程并行导入中所采纳的线程数量通过如下公式获取:
其中,N表示线程数量,m表示所述文件数据的数据量的整数部分对应的数值,例如,当所述文件数据的数据量为1.7G时,m=1,当所述文件数据的数据量为4.5G时,m=4。通过上述公式获取的线程数量能够根据实际数据量的大小进行线程数量的自动开启和关闭,在有效提高线程数量与数据量匹配的合理性,避免线程设置较多导致资源浪费,以及,线程设置较少导致数据导入效率降低的问题发生的同时,能够有效提高线程数量自动调整的灵活性和线程数量根据实际文件数据的数据量进行自动调整的自适应性。
其中,所述临时表建立模块包括:
启动模块,用于启动OLAP引擎,对本地文件connecter进行加载;
执行模块,用于用户执行导入本地文件数据sql;
存储临时表建立模块,用于通过insert into的目标表建立文件对应数据存储临时表。
其中,所述监测模块包括:
实时监测模块,用于实时监测临时表数据写入过程中是否出现异常数据;
写入停止模块,用于当出现异常数据时,停止临时表数据写入动作,并将出现所述异常数据的实际情况记录到日志中;
重新尝试模块,用于在排除异常数据之后,按照最大尝试次数,重新尝试向所述目标表中写入监测临时表数据。其中,所述最大尝试次数为3次。
本实施例提出的一种面向OLAP分析引擎的数据导入系统,能够通过insert intotable select * from "file:path" delimiters '|';的方式把本地文件数据导入数据库,通过多线程提高导入效率。其运行原理为:首先通过insert into的目标表,建立文件对应数据存储临时表。临时表结构和目标表完全一致,然后通过plugin:local-file关联本地数据文件,把文件数据分批读入到临时表。最后通过联邦查询方式,用insert into select语法把临时表数据载入到目标表中。对于1G以下小文件采用单线程导入。大文件采用多线程并行导入。用户可以通过配置每次读取数据库大小和读取并行度两个参数对导入过程进行调优。其中,加载本地文件的执行过程如图3所示。在所述数据导入系统执行过程中可以增加每次读取数据库大小和读取线程并行数两个参数,并给与默认值,其执行过程如图6所示。并且,所述数据导入系统持用户自定义导入文件数据分隔符,当用户自定义导入文件数据分隔符时,其执行操作如图7所示。
本实施例提出的一种面向OLAP分析引擎的数据导入方法可以用insert intotable select * from "file:path" delimiters '|';读取本地数据文件方式导入数据。并且,本实施例提出的所述数据导入方法后期可以根据实际需求不断扩展各种分隔符,支持多文件同时写入,支持单文件部分写入,支持更多文件格式等。本实施例提出的一种面向OLAP分析引擎的数据导入方法能够实现OLAP分析引擎本地csv等文本文件数据导入,同时,通过到线程大批量数据导入的方式有效提高OLAP分析引擎数据导入效率。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种面向OLAP分析引擎的数据导入方法,其特征在于,所述数据导入方法包括:
利用目标表建立文件对应数据存储临时表;
通过plugin:local-file关联本地数据文件把文件数据分批读入到临时表;
通过联邦查询方式,用insert into select语法把临时表数据写入到目标表中;
对所述临时表数据写入到目标表中总的全过程进行异常数据监测。
2.根据权利要求1所述数据导入方法,其特征在于,所述临时表的结构和目标表的结构完全一致。
3.根据权利要求1所述数据导入方法,其特征在于,当文件数据的数据量在1G以下时,采用单线程导入;当文件数据的数据量大于1G时,采用多线程并行导入。
4.根据权利要求1所述数据导入方法,其特征在于,利用目标表建立文件对应数据存储临时表,包括:
启动OLAP引擎,对本地文件connecter进行加载;
用户执行导入本地文件数据sql;
通过insert into的目标表建立文件对应数据存储临时表。
5.根据权利要求1所述数据导入方法,其特征在于,所述对所述临时表数据写入到目标表中总的全过程进行异常数据监测,包括:
实时监测临时表数据写入过程中是否出现异常数据;
当出现异常数据时,停止临时表数据写入动作,并将出现所述异常数据的实际情况记录到日志中;
在排除异常数据之后,按照最大尝试次数,重新尝试向所述目标表中写入监测临时表数据。
6.一种面向OLAP分析引擎的数据导入系统,其特征在于,所述数据导入系统包括:
临时表建立模块,用于利用目标表建立文件对应数据存储临时表;
读入模块,用于通过plugin:local-file关联本地数据文件把文件数据分批读入到临时表;
写入模块,用于通过联邦查询方式,用insert into select语法把临时表数据写入到目标表中;
监测模块,用于对所述临时表数据写入到目标表中总的全过程进行异常数据监测。
7.根据权利要求6所述数据导入系统,其特征在于,所述临时表的结构和目标表的结构完全一致。
8.根据权利要求6所述数据导入系统,其特征在于,当文件数据的数据量在1G以下时,采用单线程导入;当文件数据的数据量大于1G时,采用多线程并行导入。
9.根据权利要求6所述数据导入系统,其特征在于,所述临时表建立模块包括:
启动模块,用于启动OLAP引擎,对本地文件connecter进行加载;
执行模块,用于用户执行导入本地文件数据sql;
存储临时表建立模块,用于通过insert into的目标表建立文件对应数据存储临时表。
10.根据权利要求6所述数据导入系统,其特征在于,所述监测模块包括:
实时监测模块,用于实时监测临时表数据写入过程中是否出现异常数据;
写入停止模块,用于当出现异常数据时,停止临时表数据写入动作,并将出现所述异常数据的实际情况记录到日志中;
重新尝试模块,用于在排除异常数据之后,按照最大尝试次数,重新尝试向所述目标表中写入监测临时表数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211545931.0A CN115544027A (zh) | 2022-12-05 | 2022-12-05 | 一种面向olap分析引擎的数据导入方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211545931.0A CN115544027A (zh) | 2022-12-05 | 2022-12-05 | 一种面向olap分析引擎的数据导入方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115544027A true CN115544027A (zh) | 2022-12-30 |
Family
ID=84722655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211545931.0A Pending CN115544027A (zh) | 2022-12-05 | 2022-12-05 | 一种面向olap分析引擎的数据导入方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115544027A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10095759B1 (en) * | 2014-01-27 | 2018-10-09 | Microstrategy Incorporated | Data engine integration and data refinement |
CN109828964A (zh) * | 2019-02-19 | 2019-05-31 | 北京奇艺世纪科技有限公司 | 一种数据导入方法、装置及电子设备 |
CN110209662A (zh) * | 2018-02-13 | 2019-09-06 | 北京京东尚科信息技术有限公司 | 一种自动化加载数据的方法和装置 |
CN111581169A (zh) * | 2020-03-25 | 2020-08-25 | 中国平安人寿保险股份有限公司 | 数据导入方法、装置、计算机设备及存储介质 |
CN112597126A (zh) * | 2020-12-14 | 2021-04-02 | 中国建设银行股份有限公司 | 一种数据迁移方法和装置 |
CN113407587A (zh) * | 2021-07-19 | 2021-09-17 | 北京百度网讯科技有限公司 | 用于联机分析处理引擎的数据处理方法、装置、设备 |
CN115328865A (zh) * | 2022-06-30 | 2022-11-11 | 深圳市汉云科技有限公司 | 一种csv文件的批量导入方法和相关设备 |
-
2022
- 2022-12-05 CN CN202211545931.0A patent/CN115544027A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10095759B1 (en) * | 2014-01-27 | 2018-10-09 | Microstrategy Incorporated | Data engine integration and data refinement |
CN110209662A (zh) * | 2018-02-13 | 2019-09-06 | 北京京东尚科信息技术有限公司 | 一种自动化加载数据的方法和装置 |
CN109828964A (zh) * | 2019-02-19 | 2019-05-31 | 北京奇艺世纪科技有限公司 | 一种数据导入方法、装置及电子设备 |
CN111581169A (zh) * | 2020-03-25 | 2020-08-25 | 中国平安人寿保险股份有限公司 | 数据导入方法、装置、计算机设备及存储介质 |
CN112597126A (zh) * | 2020-12-14 | 2021-04-02 | 中国建设银行股份有限公司 | 一种数据迁移方法和装置 |
CN113407587A (zh) * | 2021-07-19 | 2021-09-17 | 北京百度网讯科技有限公司 | 用于联机分析处理引擎的数据处理方法、装置、设备 |
CN115328865A (zh) * | 2022-06-30 | 2022-11-11 | 深圳市汉云科技有限公司 | 一种csv文件的批量导入方法和相关设备 |
Non-Patent Citations (1)
Title |
---|
韩毅等: "面向OLAP的高效海量数据存储技术研究与实现", 《微电子学与计算机》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019148713A1 (zh) | Sql语句处理方法、装置、计算机设备和存储介质 | |
US20170083573A1 (en) | Multi-query optimization | |
CN104376082A (zh) | 一种把数据源文件中的数据导入到数据库中的方法 | |
CN112988782B (zh) | Hive支持交互式查询的方法、装置及存储介质 | |
CN113626464B (zh) | 基于ClickHouse数据库内存数据的查询支持方法及系统 | |
CN103577310A (zh) | 记录软件调试日志的方法以及装置 | |
CN106055618A (zh) | 一种基于网络爬虫与结构化存储的数据处理方法 | |
CN102063449A (zh) | 提高数据库中数据对象统计信息可靠性的方法及装置 | |
CN111367991B (zh) | 一种基于消息队列的MongoDB数据实时同步方法及系统 | |
WO2024174305A1 (zh) | 一种基于预计算场景的查询处理方法及其装置 | |
CN111914013B (zh) | 基于pandas库与InfluxDB数据库的数据管理方法、系统、终端及介质 | |
CN111858730A (zh) | 一种图数据库的数据导入导出装置、方法、设备及介质 | |
CN106708972B (zh) | 一种基于hana数据库利用slt组件对abap程序优化的方法 | |
KR102453425B1 (ko) | 이종 데이터 통합 관리 방법 및 장치 | |
CN113553295A (zh) | 一种支持多种文件格式的数据预处理系统 | |
CN114297204A (zh) | 一种异构数据源的数据存储、检索方法及装置 | |
CN111930862B (zh) | 一种基于大数据平台的sql交互式分析方法及系统 | |
CN115544027A (zh) | 一种面向olap分析引擎的数据导入方法和系统 | |
CN111159117A (zh) | 一种低开销的文件操作日志采集方法 | |
CN112347097B (zh) | 支持多版本Hive表分区的数据加载、查询方法及电子装置 | |
CN108388589A (zh) | 一种数据库sql查询语句自动生成的装置 | |
CN114895850A (zh) | 一种数据湖优化写的方法 | |
CN115774745A (zh) | 一种针对大容量Excel文件数据的抽取方法及系统 | |
Liu et al. | Design of embedded data acquisition and management system based on sqlite database | |
CN112711659B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221230 |