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-->
分享到:
相关推荐
在IT行业中,批量导入数据和大数据导入是两个关键任务,特别是在数据分析、数据库管理和大数据处理领域。这些操作对于高效地处理海量信息至关重要。本篇将详细阐述这两个知识点。 首先,批量导入数据是指一次性处理...
针对大数据量表的处理策略主要包括两种方法:分区处理和分表处理。 1. **分表处理**:此方法将大数据量表分为工作表和历史表。工作表用于存储当前年度的数据,而历史表则存放过去的数据。每年进行年度转结后,将...
无论采用哪种方式,都需要确保安装了Java运行环境(JRE 1.4及以上版本)。 ##### 运行Spoon - **DataEngine平台**:直接通过xshell后台运行Kettle启动。 - **非DataEngine平台**:在Windows平台使用Spoon.bat,在...
Oracle数据库系统支持多种复杂的数据类型,其中包括BLOB(Binary Large Object),用于存储非结构化的大数据,如图片、音频或视频文件。而MySQL同样提供了BLOB类型,用于相似的用途。本篇将详细讲解如何在Oracle与...
它利用MapReduce框架来高效地处理大规模数据集,并支持在线和离线两种加载模式。 - **在线模式**:在这种模式下,数据直接从Reducer节点加载到Oracle数据库中。该过程包括读取目标表元数据、执行分区、排序和数据...
本文将介绍两种 Oracle 数据导出的方法,适用于不同数据量规模的情况。 首先,我们来看一种适合小数据量导出的方法,通常这种方法会将数据先存储到内存中的集合容器,如 ArrayList,然后再通过 HTTP 响应(Response...
大数据领域在处理海量数据时,常常涉及到与传统关系型数据库(如MySQL、Oracle)的交互。Sqoop作为Hadoop生态系统中的一个重要工具,填补了这一空缺,实现了Hadoop与关系型数据库之间的数据高效传输。在企业中,由于...
综上所述,大数据不仅仅是一种技术,更是一种改变各行各业的方式,它通过深入挖掘数据价值,帮助企业和社会实现更智能、更高效的运营和决策。随着技术的不断进步,大数据的应用将更加广泛和深入,为我们的生活带来更...
Sqoop支持多种导入方式,包括导入单个表、导入数据库中所有表以及导入大型机上的数据集。在数据导出方面,Sqoop支持将数据从HDFS导出到关系数据库的指定表中。 ### 总结 Sqoop作为一款数据迁移工具,在Hadoop大数据...
- **MySQL基础**和**Oracle基础**:掌握两种主流的关系型数据库管理系统,用于数据存储和管理。 - **MongoDB**和**Redis**:学习NoSQL数据库,理解非关系型数据库在大数据场景中的优势。 **Hadoop相关阶段** - **...
在Oracle数据库系统中,Blob和Clob是两种特殊的数据类型,用于存储大对象(Large Object)。Blob主要用于存储二进制数据,如图片、视频或文档,而Clob则用于存储字符型的大数据,如长篇文本或XML文件。本篇文章将...
通常采用ETL工具或直接使用Oracle数据库底层技术进行数据导入,但这两种方式都有明显的缺陷。ETL工具虽然方便,但数据导入功能固化,缺乏灵活性,不适应数据格式多样化的情况。直接使用数据库底层技术虽然导入速度快...
此外,HBase、Hive、Zookeeper、Avro、Pig和Sqoop等工具分别在列数据库、数据仓库、分布式协调服务、数据序列化、数据流分析和数据导入导出等方面发挥作用,共同构建了大数据的完整生态系统。 三、大数据的关键技术...
随着大数据和云计算技术的发展,Oracle Spatial 将继续在其功能和性能上进行优化升级,更好地满足日益增长的空间数据分析需求。同时,随着物联网(IoT)设备的普及,Oracle Spatial 在实时位置服务方面的应用也将更加...
MaxCompute的表格分两种类型:外部表及内部表。对于内部表,所有的数据都被存储在MaxCompute中。表中的列可以是MaxCompute支持的任意种数据类型(Bigint,Double,String,Boolean,Datetime)。对于外部表,...
大数据处理的三大流程主要包括数据采集、统计分析和数据挖掘,每个阶段都有其特定的目标...总的来说,大数据不仅仅是一种技术,更是推动社会进步和创新的关键力量,它将改变我们生活和工作的方式,带来前所未有的机遇。
通常,增量导入分为两种模式:lastmodified(基于最后修改时间戳)和 append(基于主键范围)。 在实际应用中,Sqoop 还支持与 Hive 和 HBase 的集成,可以将数据直接导入到 Hive 表或 HBase 表中,简化数据处理...
Greenplum和Hadoop是两种非常流行的分布式数据处理框架,它们在处理大规模数据集时展现出了强大的性能。本篇将重点探讨如何在基于Greenplum和Hadoop的分布式平台上进行高效的数据查询。 首先,Greenplum是一个高度...
Oracle数据库中的分区表是一种高效的数据管理技术,特别适用于大数据量的场景。分区表将一个大表按照特定的规则划分为多个较小的、独立的物理部分,每个部分称为一个分区。这样可以提高查询性能,简化管理和维护,...