`
caohuan346
  • 浏览: 23358 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ORACLE导入大数据的两种方式比较

阅读更多

1. 采用sqlplus导入*.sql文件

(以10W条数据测试)

1.1. 生成sql脚本

写个简单的JAVA程序如下:

    public class GenerateSQLFile {

    public static void main(String[] args) throws Exception {

// 要操作的文件

    File file = new File("d:" + File.separator + "demo.sql");  OutputStream out = null// 声明字节输出流

    out = new FileOutputStream(file, true); // 通过子类实例化

    for (int i = 1; i <= 100000; i++) {

        String str = "insert into t_test(id,name) values(" + i

        ",'hello world" + i + "');\r\n"// 要输出的信息

        byte b[] = str.getBytes(); // 将String变为byte数组

        out.write(b); // 写入数据

    }

out.close(); // 关闭

}

}

 

执行程序,生成的sql脚本如下所示:

insert into t_test(id,name) values(1,'hello world1');

insert into t_test(id,name) values(2,'hello world2');

insert into t_test(id,name) values(3,'hello world3');

... ...

 

1.2. 新建表,导入数据

scott/tiger登录sqlplus;

新建t_test表:create table t_test(id int,name varchar2(255));

创建成功后执行:@D:\demo.sql,逐行插入数据。

 

1.3. 测试结果

sqlplus执行sql脚本导入10W条数据的时间大约是5分钟。

 

2. sql loader 工具导入

(以100W条测试数据)

2.1. 新建test.csv数据文件

格式如下:

1,hello1

2,hello2

3,hello3

... ...

 

十万条数据的csv文件同样由java小程序生成:

    File file = new File("d:" + File.separator + "demo.txt"); // 要操作的文件

    OutputStream out = null// 声明字节输出流

    out = new FileOutputStream(file, true); // 通过子类实例化

    for (int i = 1; i <= 100000; i++) {

        String str = i+","+"hello"+i+"\r\n"// 要输出的信息

        byte b[] = str.getBytes(); // 将String变为byte数组

        out.write(b); // 写入数据

    }

out.close(); // 关闭

 

2.2. 建立表格

create table test(id varchar2(255),name varchar2(255));

 

2.3. 建立控制文件test.ctl

load data

infile demo.csv

into table test     

(

id char terminated by ',',

name char terminated by whitespace

)

 

PS: infile 指数据源文件 这里我们省略了默认的 discardfile   result.dsc   badfile   result.bad  
 
       into   table   test 默认是INSERT,也可以into   table   resultxt   APPEND为追加方式,或
REPLACE  
 
       terminated   by   ',' 指用逗号分隔
  
 
       terminated   by   whitespace 结尾以空白分隔
  

其它参数参考:d:\>sqlldr  

 

2.4. 导入数据

ctl文件和csv文件放置在D盘根目录下,命令行中运行:

 D:\>sqlldr   userid=scott/tiger  control=test.ctl  

2.5. 测试结果

急速,10W条数据转眼导入结束,100W条数据耗时10s

<!--EndFragment-->

分享到:
评论
1 楼 wangcl011 2014-09-18  
Oracle通过数据泵网络导入另一个数据库,不生成DMP文件,参考文章:http://www.itdatum.net/db/oracle/2014/09/7948.shtml
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    批量导入数据,大数据导入

    在IT行业中,批量导入数据和大数据导入是两个关键任务,特别是在数据分析、数据库管理和大数据处理领域。这些操作对于高效地处理海量信息至关重要。本篇将详细阐述这两个知识点。 首先,批量导入数据是指一次性处理...

    ORACLE中对大数据量表的处理方法 (1).pdf

    针对大数据量表的处理策略主要包括两种方法:分区处理和分表处理。 1. **分表处理**:此方法将大数据量表分为工作表和历史表。工作表用于存储当前年度的数据,而历史表则存放过去的数据。每年进行年度转结后,将...

    大数据ETL技术方案

    无论采用哪种方式,都需要确保安装了Java运行环境(JRE 1.4及以上版本)。 ##### 运行Spoon - **DataEngine平台**:直接通过xshell后台运行Kettle启动。 - **非DataEngine平台**:在Windows平台使用Spoon.bat,在...

    oracle中的BLOB(照片)转换到mysql中

    Oracle数据库系统支持多种复杂的数据类型,其中包括BLOB(Binary Large Object),用于存储非结构化的大数据,如图片、音频或视频文件。而MySQL同样提供了BLOB类型,用于相似的用途。本篇将详细讲解如何在Oracle与...

    Hadoop与 Oracle 数据库集成.pdf

    它利用MapReduce框架来高效地处理大规模数据集,并支持在线和离线两种加载模式。 - **在线模式**:在这种模式下,数据直接从Reducer节点加载到Oracle数据库中。该过程包括读取目标表元数据、执行分区、排序和数据...

    oracle导出数据的几种方法

    本文将介绍两种 Oracle 数据导出的方法,适用于不同数据量规模的情况。 首先,我们来看一种适合小数据量导出的方法,通常这种方法会将数据先存储到内存中的集合容器,如 ArrayList,然后再通过 HTTP 响应(Response...

    大数据运维技术第9章 Sqoop组件安装配置.pptx

    大数据领域在处理海量数据时,常常涉及到与传统关系型数据库(如MySQL、Oracle)的交互。Sqoop作为Hadoop生态系统中的一个重要工具,填补了这一空缺,实现了Hadoop与关系型数据库之间的数据高效传输。在企业中,由于...

    大数据应用解决方案.doc

    综上所述,大数据不仅仅是一种技术,更是一种改变各行各业的方式,它通过深入挖掘数据价值,帮助企业和社会实现更智能、更高效的运营和决策。随着技术的不断进步,大数据的应用将更加广泛和深入,为我们的生活带来更...

    hadoop大数据平台技术与应用--第7章数据迁移工具Sqoop.pdf

    Sqoop支持多种导入方式,包括导入单个表、导入数据库中所有表以及导入大型机上的数据集。在数据导出方面,Sqoop支持将数据从HDFS导出到关系数据库的指定表中。 ### 总结 Sqoop作为一款数据迁移工具,在Hadoop大数据...

    大数据课程分类.docx

    - **MySQL基础**和**Oracle基础**:掌握两种主流的关系型数据库管理系统,用于数据存储和管理。 - **MongoDB**和**Redis**:学习NoSQL数据库,理解非关系型数据库在大数据场景中的优势。 **Hadoop相关阶段** - **...

    load blob clob

    在Oracle数据库系统中,Blob和Clob是两种特殊的数据类型,用于存储大对象(Large Object)。Blob主要用于存储二进制数据,如图片、视频或文档,而Clob则用于存储字符型的大数据,如长篇文本或XML文件。本篇文章将...

    SMImport控件实现数据挖掘的数据导入开发.pdf

    通常采用ETL工具或直接使用Oracle数据库底层技术进行数据导入,但这两种方式都有明显的缺陷。ETL工具虽然方便,但数据导入功能固化,缺乏灵活性,不适应数据格式多样化的情况。直接使用数据库底层技术虽然导入速度快...

    大数据科学与工程系列课件.pptx

    此外,HBase、Hive、Zookeeper、Avro、Pig和Sqoop等工具分别在列数据库、数据仓库、分布式协调服务、数据序列化、数据流分析和数据导入导出等方面发挥作用,共同构建了大数据的完整生态系统。 三、大数据的关键技术...

    oracle spatial for oracle database 11g

    随着大数据和云计算技术的发展,Oracle Spatial 将继续在其功能和性能上进行优化升级,更好地满足日益增长的空间数据分析需求。同时,随着物联网(IoT)设备的普及,Oracle Spatial 在实时位置服务方面的应用也将更加...

    阿里云大数据专业认证学习笔记

    MaxCompute的表格分两种类型:外部表及内部表。对于内部表,所有的数据都被存储在MaxCompute中。表中的列可以是MaxCompute支持的任意种数据类型(Bigint,Double,String,Boolean,Datetime)。对于外部表,...

    大数据处理的三大流程以及大数据的价值.doc

    大数据处理的三大流程主要包括数据采集、统计分析和数据挖掘,每个阶段都有其特定的目标...总的来说,大数据不仅仅是一种技术,更是推动社会进步和创新的关键力量,它将改变我们生活和工作的方式,带来前所未有的机遇。

    Oracle与HDFS的桥梁_Sqoop

    通常,增量导入分为两种模式:lastmodified(基于最后修改时间戳)和 append(基于主键范围)。 在实际应用中,Sqoop 还支持与 Hive 和 HBase 的集成,可以将数据直接导入到 Hive 表或 HBase 表中,简化数据处理...

    基于Greenplum Hadoop- 分布式平台的大数据解决方案25 - 查询数据(2).zip

    Greenplum和Hadoop是两种非常流行的分布式数据处理框架,它们在处理大规模数据集时展现出了强大的性能。本篇将重点探讨如何在基于Greenplum和Hadoop的分布式平台上进行高效的数据查询。 首先,Greenplum是一个高度...

    创建导入导出Oracle分区表数据[参照].pdf

    Oracle数据库中的分区表是一种高效的数据管理技术,特别适用于大数据量的场景。分区表将一个大表按照特定的规则划分为多个较小的、独立的物理部分,每个部分称为一个分区。这样可以提高查询性能,简化管理和维护,...

Global site tag (gtag.js) - Google Analytics