CN101706779B - 基于oracle的伞状数据导入导出方法 - Google Patents
基于oracle的伞状数据导入导出方法 Download PDFInfo
- Publication number
- CN101706779B CN101706779B CN2009100362637A CN200910036263A CN101706779B CN 101706779 B CN101706779 B CN 101706779B CN 2009100362637 A CN2009100362637 A CN 2009100362637A CN 200910036263 A CN200910036263 A CN 200910036263A CN 101706779 B CN101706779 B CN 101706779B
- Authority
- CN
- China
- Prior art keywords
- data
- api
- umbrella
- memory array
- temporary table
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000008676 import Effects 0.000 title claims abstract description 25
- 230000006870 function Effects 0.000 claims abstract description 23
- 239000006185 dispersion Substances 0.000 claims abstract description 10
- 238000005538 encapsulation Methods 0.000 claims description 11
- 238000009795 derivation Methods 0.000 claims description 8
- 238000004140 cleaning Methods 0.000 claims description 4
- 238000013404 process transfer Methods 0.000 claims description 4
- 238000003491 array Methods 0.000 abstract 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012856 packing 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
基于ORACLE的伞状数据导入导出方法,数据导入时主进程(程序)将外部数据批量以内存数组的形式读入到内存,调用封装后的OCI数据交换接口批量解析内存数组,将解析后的内存数组导入事务特有临时表;外部数据导入到事务特有临时表后通过调用基于事务特有临时表的伞状导入API,基于事务特有临时表的伞状导入API将自定义的ORACLE函数或过程作为参数执行,将外部数据分散到自定义的多张实体表中,自定义的ORACLE函数或过程定义了事务特有临时表的数据分散度;内部数据批量导出数据:导出时调用封装后的OCI数据交换接口将内部数据以内存数组的形式读入到内存,批量导出内存数组;内部数据导出到内存数组后,通过调用基于多维内存片的伞状导出API,伞状导出API将自定义的ORACLE函数指针作为参数执行,将内部数据分散导出到多个文件。
Description
技术领域
本发明涉及ORACLE的数据导入导出技术,特别是一种数据一点导入到多点或一点导出到多点的伞状数据导入导出方法。
背景技术
目前数据的导入导出技术主要有两类,第一类是数据备份和恢复,第二类是外部数据导入到库表或内部数据导出到数据文件,本发明主要属于第二类范畴即外部数据导入到库表或内部数据导出到数据文件。第二类数据导入导出方法目前有SQL*Loader、spool等,这些工具和方法大多在导入导出成本、大批量执行的效率上下功夫,但目前这些工具都只支持数据按原信息点对点的进行导入导出操作,不支持数据的分散导入导出操作,也不支持可编程的数据导入导出接口。
发明内容
本发明的目的是:提出一种基于事务特有临时表和多维内存片的伞状数据导入导出方法,本发明是针对现有数据导入导出工具不能将外部数据一点导入到多点或将内部数据一点导出到多点而提出的。
本发明的技术解决方案是:基于ORACLE的伞状数据导入导出方法。数据导入时主进程将外部数据批量以内存数组的形式读入到内存,调用封装后的OCI数据交换接口批量解析内存数组,将解析后的内存数组导入事务特有临时表;外部数据导入到事务特有临时表后通过调用基于事务特有临时表的伞状导入API,基于事务特有临时表的伞状导入API将自定义的ORACLE函数或过程作为函数参数执行,将外部数据分散到自定义的多张实体表中,自定义的ORACLE函数或过程定义了事务特有临时表的数据分散度。数据的分散度和多维统计粒度完全取决于API的实参,可提供很大的自由度和灵活性。
内部数据批量导出文件:导出时调用封装后的OCI数据交换接口将内部数据以内存数组的形式读入到内存,批量导出内存数组;内部数据导出到内存数组后,通过调用基于多维内存片的伞状导出API,伞状导出API将自定义的ORACLE函数指针作为参数执行,将内部数据分散导出到多个文件。数据的分散度和多维统计粒度完全取决于API的函数实参,可提供很大的自由度和灵活性。伞状导入导出API为基于事务特有临时表的伞状导入API(应用程序编程接口)和基于多维内存片的伞状导出API。
本发明采用基于OCI的可编程接口封装方法:采用OCI可编程接口,将复杂的API封装在一起,完成内存数组的批量解析、SQL解析、SQL执行、数据导入、数据导出、回退、提交等多个原子操作,通过这些原子操作控制数据的线性导入和线性导出。
本发明基于以下几个部件组成:
1)基于OCI的数据交换接口,OCI是ORACLE调用接口(Oracle Call Interface),亦称数据交换接口,提供了一组可对ORACLE数据库进行存取的接口子例程(函数);
2)基于事务特有临时表的伞状导入API(应用程序编程接口);
3)基于多维内存片的伞状导出API。
本发明的有益效果是:1)利用OCI封装数据交换部件,减少SQL的解析和执行次数,大大提高数据导入导出效率。SQL是结构化查询语言是一种数据库查询和程序语言。2)采用基于事务特有临时表和开放式的伞状导入API,可将导入数据以多维方式分散到数据库的各个实体表中。3)采用内存数组和开放式的伞状导出API,可将导出数据以多维方式分散导出到多个文件中。
与现有导入导出方法相比的优势:现有导入导出技术只能将外部数据导入到内部一点或将内部数据导出到外部一点,且不能对数据根据具体需求做多维的导入或导出。本发明可以将数据多维分散导入或导出,可支持复杂的数据中间层或多通道数据输出。
附图说明
图1是本发明的各部件结构示意图
图2是本发明的数据导入时序图
图3是本发明的数据导出时序图
具体的实施方式
可编程伞状导入API:进程通过调用封装后的OCI数据交换接口,将外部数据导入到事务特有临时表后,进程调用伞状导入API,API以自定义ORACLE函数或过程作为实参来分析临时表数据,并将临时表数据按多维方式分散导入到多张实体表中,数据的分散度和多维统计粒度完全取决于API的实参,可提供很大的自由度和灵和性。
可编程伞状导出API:进程通过调用封装后的OCI数据交换接口,将内部数据导出到内存数组,进程调用伞状导出API,API以自定义的函数指针作为参数执行,将内存数组中的数据分散导出到多个数据文件中,数据的分散度和多维统计粒度完全取决于API的实参,可提供很大的自由度和灵和性。
(一).数据导入的处理过程
1.进程将外部数据文件读入内存数组;
2.调用封装后的OCI数据交换接口批量解析内存数组,分多次执行SQL将内存数组导入到事务特有临时表;
3.进程调用伞状导入API,API以自定义的ORACLE过程或函数作为实参分析事务特有临时表,将临时表中的数据分散到多张实体表中;
4.进程做提交,清理内存数组,ORACLE自动清理临时表,提交分散后的各实体表,释放***资源。
(二).数据导出的处理过程
1.进程通过调用封装后的OCI数据交换接口将内部数据导出到内存数组;
2.调用伞状导出API,API以自定义的函数指针作为实参执行,自定义函数分析内存数组,将内存数组以多维方式导出到多个文件;
1、若未提供自定义的函数指针作为API实参,则按原表结构导出数据文件。
2、进程做提交,清理内存数组,释放***资源
Claims (1)
1.基于ORACLE的伞状数据导入导出方法,其特征是
1)、数据导入时主程序将外部数据批量以内存数组的形式读入到内存,调用封装后的OCI数据交换接口批量解析内存数组,将解析后的内存数组导入事务特有临时表;外部数据导入到事务特有临时表后通过调用基于事务特有临时表的伞状导入API,基于事务特有临时表的伞状导入API将自定义的ORACLE函数或过程作为参数执行,将外部数据分散到自定义的多张实体表中,自定义的ORACLE函数或过程定义事务特有临时表的数据分散度;
数据的分散度和多维统计粒度完全取决于API的实参,提供自由度和灵活性;
2)内部数据批量导出数据:导出时调用封装后的OCI数据交换接口将内部数据以内存数组的形式读入到内存,批量导出内存数组;内部数据导出到内存数组后,通过调用基于多维内存片的伞状导出API,伞状导出API将自定义的ORACLE函数指针作为参数执行,将内部数据分散导出到多个文件;数据的分散度和多维统计粒度完全取决于API的函数实参;伞状导入导出API为基于事务特有临时表的伞状导入API和基于多维内存片的伞状导出API;
采用OCI可编程接口,将复杂的API封装在一起,完成内存数组的批量解析、SQL解析、SQL执行、数据导入、数据导出、回退、提交多个原子操作,通过这些原子操作控制数据的线性导入和线性导出;
数据导入的处理过程
1)进程将外部数据文件读入内存数组;
2)调用封装后的OCI数据交换接口批量解析内存数组,分多次执行SQL将内存数组导入到事务特有临时表;
3)进程调用伞状导入API,API以自定义的ORACLE过程或函数作为实参分析事务特有临时表,将临时表中的数据分散到多张实体表中;
4)进程做提交,清理内存数组,ORACLE自动清理临时表,提交分散后的各实体表,释放***资源;
数据导出的处理过程
1)进程通过调用封装后的OCI数据交换接口将内部数据导出到内存数组;
2)调用伞状导出API,API以自定义的函数指针作为实参执行,自定义函数分析内存数组,将内存数组以多维方式导出到多个文件;
3)若未提供自定义的函数指针作为API实参,则按原表结构导出数据文件;
4)进程做提交,清理内存数组,释放***资源。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100362637A CN101706779B (zh) | 2009-10-12 | 2009-10-12 | 基于oracle的伞状数据导入导出方法 |
US12/901,833 US20110087714A1 (en) | 2009-10-12 | 2010-10-11 | Methodology Based on Oracle's Umbel Data Import and Export |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100362637A CN101706779B (zh) | 2009-10-12 | 2009-10-12 | 基于oracle的伞状数据导入导出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101706779A CN101706779A (zh) | 2010-05-12 |
CN101706779B true CN101706779B (zh) | 2013-05-08 |
Family
ID=42377005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100362637A Expired - Fee Related CN101706779B (zh) | 2009-10-12 | 2009-10-12 | 基于oracle的伞状数据导入导出方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110087714A1 (zh) |
CN (1) | CN101706779B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929951B (zh) * | 2012-10-08 | 2015-04-01 | 深圳市博瑞得科技有限公司 | 一种数据绑定批量入库方法和装置 |
CN104199732B (zh) * | 2014-08-28 | 2017-12-05 | 上海新炬网络技术有限公司 | 一种pga内存溢出智能处理方法 |
CN106326321B (zh) * | 2015-07-10 | 2022-01-28 | 中兴通讯股份有限公司 | 大数据交换方法及装置 |
GB2540970B (en) * | 2015-07-31 | 2018-08-15 | Advanced Risc Mach Ltd | Executing Groups of Instructions Atomically |
CN105260485B (zh) * | 2015-11-20 | 2019-05-31 | 杭州数梦工场科技有限公司 | 一种数据加载的方法和装置 |
CN110502562A (zh) * | 2019-08-16 | 2019-11-26 | 深圳证券交易所 | 数据导入方法及装置、可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1504925A (zh) * | 2002-11-27 | 2004-06-16 | 用于导入和导出分层结构化数据的方法和计算机可读介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8522205B2 (en) * | 2004-05-18 | 2013-08-27 | Oracle International Corporation | Packaging multiple groups of read-only files of an application's components into multiple shared libraries |
US7877370B2 (en) * | 2006-05-15 | 2011-01-25 | Algebraix Data Corporation | Systems and methods for data storage and retrieval using algebraic relations composed from query language statements |
US8261270B2 (en) * | 2006-06-20 | 2012-09-04 | Google Inc. | Systems and methods for generating reference results using a parallel-processing computer system |
-
2009
- 2009-10-12 CN CN2009100362637A patent/CN101706779B/zh not_active Expired - Fee Related
-
2010
- 2010-10-11 US US12/901,833 patent/US20110087714A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1504925A (zh) * | 2002-11-27 | 2004-06-16 | 用于导入和导出分层结构化数据的方法和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
US20110087714A1 (en) | 2011-04-14 |
CN101706779A (zh) | 2010-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101706779B (zh) | 基于oracle的伞状数据导入导出方法 | |
CN102521254B (zh) | 异构数据库的统一访问方法 | |
CN111078702B (zh) | 一种sql语句分类管理及统一查询方法和装置 | |
CN103699620A (zh) | 面向对象中利用orm框架实现数据库操作的方法及*** | |
US11693912B2 (en) | Adapting database queries for data virtualization over combined database stores | |
CN106777108A (zh) | 一种基于混合存储架构的数据查询方法和装置 | |
CN101008952A (zh) | 一种持久层生成方法及装置 | |
CN107679071B (zh) | 一种面向关系数据库的通用数据服务定制化封装方法 | |
US20190188302A1 (en) | Group-by-time operations with returned time context | |
CN107665216A (zh) | 一种数据库访问方法及中间件 | |
CN109145055B (zh) | 一种基于Flink的数据同步方法和*** | |
CN101236554A (zh) | 一种数据库海量数据比对的方法 | |
CN104317864A (zh) | 一种基于iec61850逻辑节点的信息模型自动识别的方法 | |
CN107977446A (zh) | 一种基于数据分区的内存网格数据加载方法 | |
CN104462351A (zh) | 一种面向MapReduce范型的数据查询模型与方法 | |
CN105279269A (zh) | 一种支持表自由关联的sql生成方法和*** | |
CN111914013A (zh) | 基于pandas库与InfluxDB数据库的数据管理方法、***、终端及介质 | |
CN105335482A (zh) | 面向海量分布式数据库的批量***方法 | |
CN115221143A (zh) | 一种跨类型迁移的算子化多源大数据处理方法 | |
CN110704430A (zh) | 通用树结构数据查询方法及装置 | |
CN112905642B (zh) | 基于csv映射文件将iec61850报告数据存入关系数据库的方法 | |
CN108920547A (zh) | 基于全业务统一数据中心异构数据库之间数据库字段类型映射提升方法 | |
CN112749157A (zh) | 数据表的处理方法、装置、存储介质和设备 | |
CN109783476A (zh) | 基于数据库的多维度数据的矩阵分析方法和*** | |
CN112084191B (zh) | 一种基于Spark SQL的OpenTsdb时序数据查询方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130508 |
|
CF01 | Termination of patent right due to non-payment of annual fee |