CN101706779B - 基于oracle的伞状数据导入导出方法 - Google Patents

基于oracle的伞状数据导入导出方法 Download PDF

Info

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.)
Active
Application number
CN2009100362637A
Other languages
English (en)
Other versions
CN101706779A (zh
Inventor
何毅
陆如华
邓建强
王金松
余志刚
邵九松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd
Original Assignee
NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd filed Critical NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd
Priority to CN2009100362637A priority Critical patent/CN101706779B/zh
Publication of CN101706779A publication Critical patent/CN101706779A/zh
Priority to US12/901,833 priority patent/US20110087714A1/en
Application granted granted Critical
Publication of CN101706779B publication Critical patent/CN101706779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-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的伞状数据导入导出方法
技术领域
本发明涉及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)进程做提交,清理内存数组,释放系统资源。
CN2009100362637A 2009-10-12 2009-10-12 基于oracle的伞状数据导入导出方法 Active CN101706779B (zh)

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 Active 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1504925A (zh) * 2002-11-27 2004-06-16 用于导入和导出分层结构化数据的方法和计算机可读介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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的伞状数据导入导出方法
CN105260403B (zh) 通用跨数据库访问方法
CN111078702B (zh) 一种sql语句分类管理及统一查询方法和装置
CN103699620A (zh) 面向对象中利用orm框架实现数据库操作的方法及系统
CN101236554B (zh) 一种数据库海量数据比对的方法
US20210256079A1 (en) Adapting database queries for data virtualization over combined database stores
CN104462269A (zh) 一种异构数据库数据交换方法及系统
CN106777108A (zh) 一种基于混合存储架构的数据查询方法和装置
CN101008952A (zh) 一种持久层生成方法及装置
CN107679071B (zh) 一种面向关系数据库的通用数据服务定制化封装方法
US20190188302A1 (en) Group-by-time operations with returned time context
CN104317864A (zh) 一种基于iec61850逻辑节点的信息模型自动识别的方法
CN107977446A (zh) 一种基于数据分区的内存网格数据加载方法
CN104615713A (zh) 一种基于多数据库类型的sql执行方法和装置
CN104462351A (zh) 一种面向MapReduce范型的数据查询模型与方法
CN111914013B (zh) 基于pandas库与InfluxDB数据库的数据管理方法、系统、终端及介质
CN115577028A (zh) 一种基于模块可编程扩展的etl工具构建方法
CN105279269A (zh) 一种支持表自由关联的sql生成方法和系统
CN104615490A (zh) 一种数据转换的方法及装置
CN105335482A (zh) 面向海量分布式数据库的批量插入方法
CN110704430A (zh) 通用树结构数据查询方法及装置
CN112905642B (zh) 基于csv映射文件将iec61850报告数据存入关系数据库的方法
CN108920547A (zh) 基于全业务统一数据中心异构数据库之间数据库字段类型映射提升方法
CN112084191B (zh) 一种基于Spark SQL的OpenTsdb时序数据查询方法
Zhang et al. Unified SQL query middleware for heterogeneous databases

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