CN101706779A - 基于oracle的伞状数据导入导出方法 - Google Patents
基于oracle的伞状数据导入导出方法 Download PDFInfo
- Publication number
- CN101706779A CN101706779A CN200910036263A CN200910036263A CN101706779A CN 101706779 A CN101706779 A CN 101706779A CN 200910036263 A CN200910036263 A CN 200910036263A CN 200910036263 A CN200910036263 A CN 200910036263A CN 101706779 A CN101706779 A CN 101706779A
- Authority
- CN
- China
- Prior art keywords
- data
- umbrella
- api
- temporary table
- memory array
- 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.)
- Granted
Links
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 (2)
1.基于ORACLE的伞状数据导入导出方法,其特征是1)、数据导入时主程序将外部数据批量以内存数组的形式读入到内存,调用封装后的OCI数据交换接口批量解析内存数组,将解析后的内存数组导入事务特有临时表;外部数据导入到事务特有临时表后通过调用基于事务特有临时表的伞状导入API,基于事务特有临时表的伞状导入API将自定义的ORACLE函数或过程作为参数执行,将外部数据分散到自定义的多张实体表中,自定义的ORACLE函数或过程定义事务特有临时表的数据分散度;
2)内部数据批量导出数据:导出时调用封装后的OCI数据交换接口将内部数据以内存数组的形式读入到内存,批量导出内存数组;内部数据导出到内存数组后,通过调用基于多维内存片的伞状导出API,伞状导出API将自定义的ORACLE函数指针作为参数执行,将内部数据分散导出到多个文件;数据的分散度和多维统计粒度完全取决于API的函数实参;伞状导入导出API为基于事务特有临时表的伞状导入API和基于多维内存片的伞状导出API。
2.采用基于OCI的可编程接口封装方法:采用OCI可编程接口,将复杂的API封装在一起,完成内存数组的批量解析、SQL解析、SQL执行、数据导入、数据导出、回退、提交等多个原子操作,通过这些原子操作控制数据的线性导入和线性导出。
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 true CN101706779A (zh) | 2010-05-12 |
CN101706779B CN101706779B (zh) | 2013-05-08 |
Family
ID=42377005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100362637A Active CN101706779B (zh) | 2009-10-12 | 2009-10-12 | 基于oracle的伞状数据导入导出方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110087714A1 (zh) |
CN (1) | CN101706779B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929951A (zh) * | 2012-10-08 | 2013-02-13 | 深圳市博瑞得科技有限公司 | 一种数据绑定批量入库方法和装置 |
CN104199732A (zh) * | 2014-08-28 | 2014-12-10 | 上海新炬网络技术有限公司 | 一种pga内存溢出智能处理方法 |
CN105260485A (zh) * | 2015-11-20 | 2016-01-20 | 杭州数梦工场科技有限公司 | 一种数据加载的方法和装置 |
CN107851027A (zh) * | 2015-07-31 | 2018-03-27 | Arm有限公司 | 数据处理系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326321B (zh) * | 2015-07-10 | 2022-01-28 | 中兴通讯股份有限公司 | 大数据交换方法及装置 |
CN110502562A (zh) * | 2019-08-16 | 2019-11-26 | 深圳证券交易所 | 数据导入方法及装置、可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7191186B1 (en) * | 2002-11-27 | 2007-03-13 | Microsoft Corporation | Method and computer-readable medium for importing and exporting hierarchically structured data |
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 active Active
-
2010
- 2010-10-11 US US12/901,833 patent/US20110087714A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929951A (zh) * | 2012-10-08 | 2013-02-13 | 深圳市博瑞得科技有限公司 | 一种数据绑定批量入库方法和装置 |
CN102929951B (zh) * | 2012-10-08 | 2015-04-01 | 深圳市博瑞得科技有限公司 | 一种数据绑定批量入库方法和装置 |
CN104199732A (zh) * | 2014-08-28 | 2014-12-10 | 上海新炬网络技术有限公司 | 一种pga内存溢出智能处理方法 |
CN107851027A (zh) * | 2015-07-31 | 2018-03-27 | Arm有限公司 | 数据处理系统 |
CN107851027B (zh) * | 2015-07-31 | 2022-02-11 | Arm有限公司 | 图形处理单元的可编程执行单元、数据处理系统、操作方法 |
CN105260485A (zh) * | 2015-11-20 | 2016-01-20 | 杭州数梦工场科技有限公司 | 一种数据加载的方法和装置 |
CN105260485B (zh) * | 2015-11-20 | 2019-05-31 | 杭州数梦工场科技有限公司 | 一种数据加载的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20110087714A1 (en) | 2011-04-14 |
CN101706779B (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101706779B (zh) | 基于oracle的伞状数据导入导出方法 | |
CN104123374B (zh) | 分布式数据库中聚合查询的方法及装置 | |
CN111078702B (zh) | 一种sql语句分类管理及统一查询方法和装置 | |
CN103699620A (zh) | 面向对象中利用orm框架实现数据库操作的方法及系统 | |
CN101382957B (zh) | 建立查询模型的系统及建立方法 | |
CN104317864B (zh) | 一种基于iec61850逻辑节点的信息模型自动识别的方法 | |
CN105373469A (zh) | 一种基于接口的软件自动化测试方法 | |
US20140032588A1 (en) | Systems And Methods For Providing A Simplified Application Programming Interface For Converting From Two-Dimensional Query Languages Into Multi-Dimensional Query Languages To Query Multi-Dimensional Data Sources And MDX Servers | |
CN104462269A (zh) | 一种异构数据库数据交换方法及系统 | |
CN104035754A (zh) | 一种基于xml的自定义代码生成方法及生成器 | |
CN106776962A (zh) | 一种通用的Excel数据导入多个数据库物理表方法 | |
US20190188302A1 (en) | Group-by-time operations with returned time context | |
CN104615713A (zh) | 一种基于多数据库类型的sql执行方法和装置 | |
CN105279269A (zh) | 一种支持表自由关联的sql生成方法和系统 | |
CN115469941A (zh) | 基于FlinkSQL的风控指标计算开发的自动配置处理方法及系统 | |
CN105335482B (zh) | 面向海量分布式数据库的批量插入方法 | |
CN105630986A (zh) | 一种从数据库中获取多维度数据网格化展示的方法 | |
CN106919697A (zh) | 一种将数据同时导入多个Hadoop组件的方法 | |
CN111914013A (zh) | 基于pandas库与InfluxDB数据库的数据管理方法、系统、终端及介质 | |
CN115221143A (zh) | 一种跨类型迁移的算子化多源大数据处理方法 | |
CN114594937A (zh) | 一种程序组态方法和系统 | |
CN112905642B (zh) | 基于csv映射文件将iec61850报告数据存入关系数据库的方法 | |
CN112667598B (zh) | 基于业务需求变化的数据模型快速构建系统 | |
CN112749157A (zh) | 数据表的处理方法、装置、存储介质和设备 | |
CN113535758B (zh) | 一种把传统数据库脚本批量转换上云的大数据系统和方法 |
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 |