试想一下,如果一个文件5G、10G甚至更大。如何将它迅速地加载到数据库指定的表呢?我们看看Sybase IQ是如何迅速地将表的数据加载到数据库的。

数据文件格式:

1440,2011-01-09 00:00:00,1,珠海,1,C网,8612345678222,221943,1,12175,1,12,14426467,1191632,9,
1440,2011-01-09 00:00:00,1,珠海,1,C网,8612345678222,968852,1,82077,1,7,2430696,134921,5,
1440,2011-01-09 00:00:00,1,珠海,1,C网,8612345678222,936862,3,10847,1,5,4585323,362630,5,
1440,2011-01-09 00:00:00,1,珠海,1,C网,8612345678222,308796,2,5614,2,12,14401931,1202200,11,
1440,2011-01-09 00:00:00,1,珠海,2,固网,861234567000,11058523,6,984391,3,19,12789576,1113565,19,

据以“,”分割。并以“,”结尾。

commit;
lock table iqloadtest in write mode wait '00:05:00';
Set temporary option conversion_error='off';
Set temporary option escape_character='on';
Set temporary option load_memory_mb=256;
Set temporary option timestamp_format='YYYY-MM-DD HH:mm:ss';--解决时间格式问题
LOAD TABLE iqloadtest
(
col1 ',',
col2 ',',
col3 ',',
col4 ',',
col5 ',',
col6 ',',
col7 ',',
col8 ',',
col9 ',',
col10 ',',
col11 ',',
col12 ',',
col13 ',',
col14 ',',
col15 ',\x0a',--最后一个字段顺便过滤掉换行符0a
 filler(1)--在此例子中加了此条语句最后一行数据不被加载
)
FROM '/home/test/test.load'
ESCAPES OFF
QUOTES OFF
IGNORE CONSTRAINT ALL 0
MESSAGE LOG '/home/test/iqMsg.log'
ROW LOG '/home/test/iqRow.log'
ONLY LOG ALL
Notify 50000
WITH CHECKPOINT ON;
commit;

结论:如果行结束符后面带了分隔符的话必须用此种方式。否则无法加载。
如果行结束符后面不带分隔符的话可以用filler(1)这种方式

IQLoad 会遇到的问题。
1、 ODBC 与 JDBC 的默认设置不一样。 JDBC 需要加上
Set temporary option escape_character='on';

2、当数据中存在null时的解决方法

commit;
lock table iqloadtest in write mode wait '00:05:00';
Set temporary option conversion_error='off';
Set temporary option escape_character='on';
Set temporary option load_memory_mb=256;
Set temporary option timestamp_format='YYYY-MM-DD HH:mm:ss';
LOAD TABLE iqloadtest
(
字段1 '分隔符' null('NULL'),
字段2 '分隔符' null('NULL'),
col15 '分隔符\x0a' null('NULL'),
 filler(1)--在此例子中加了此条语句最后一行数据不被加载
)
FROM '/home/test/test.load'
ESCAPES OFF
QUOTES OFF
IGNORE CONSTRAINT ALL 0
MESSAGE LOG '/home/test/iqMsg.log'
ROW LOG '/home/test/iqRow.log'
ONLY LOG ALL
Notify 50000
WITH CHECKPOINT ON;
commit;

Sybase IQ如何将大文件数据迅速加载到数据库的更多相关文章

  1. Java实现http大文件流读取并批量插入数据库

    1.概述 请求远程大文本,使用流的方式进行返回.需要设置http链接的超时时间 循环插入到List中,使用mybatis-plus批量插入到mysql中 2.需求 两台服务器 大文件放到其中一台服务器 ...

  2. [Python]-pandas模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载文件

    <Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...

  3. Unity3d通用工具类之数据配置加载类

    今天,我们来讲讲游戏中的数据配置加载. 什么是游戏数据加载呢?一般来说游戏中会有场景地图. 按照国际惯例,先贴一张游戏场景的地图: 在这张地图上,我们可以看到有很多正六边形,正六边形上有树木.岩石等. ...

  4. class文件简介及加载

    Java编译器编译好Java文件之后,产生.class 文件在磁盘中.这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码.JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中, ...

  5. mysql 5.6 后热数据的加载

    mysql 5.6 后热数据的加载 转自:http://blog.itpub.net/20892230/viewspace-2127469/ 故障现象:在数据库重启后,碰巧遇到业务高峰期,连接数满,导 ...

  6. Spark在处理数据的时候,会将数据都加载到内存再做处理吗?

    对于Spark的初学者,往往会有一个疑问:Spark(如SparkRDD.SparkSQL)在处理数据的时候,会将数据都加载到内存再做处理吗? 很显然,答案是否定的! 对该问题产生疑问的根源还是对Sp ...

  7. Arc Engine下数据的加载处理

    1.加载Shapefile数据 IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; IFeatureLa ...

  8. 如何使用 require.js ,实现js文件的异步加载,避免网页失去响应,管理模块之间的依赖性,便于代码的编写和维护。

    一.为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载.下面的网页代 ...

  9. WinForm ListView虚拟模式加载数据 提高加载速度

    将VirtualMode 属性设置为 true 会将 ListView 置于虚拟模式.控件不再使用Collection.Add()这种方式来添加数据,取而代之的是使用RetrieveVirtualIt ...

随机推荐

  1. 在CentOS上安装SQLServer

    Install SQL Server on Red Hat Enterprise Linux 参考上面这篇文章即可,需要注意的是内容大于3.25G,然后设置Sa密码的时候需要至少一个大写字母.一个小写 ...

  2. Java基础-CGLIB动态代理

    JDK的动态代理机制只能代理实现了接口的类,而不能实现接口的类就不能实现JDK的动态代理,cglib是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,但因为采用的是继 ...

  3. Oracle分页查询语句

    SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM (此处添加你要分页的表)) A WHERE ROWNUM <= 14000)WH ...

  4. 【poj1962】 Corporative Network

    http://poj.org/problem?id=1962 (题目链接) 时隔多年又一次写带权并查集. 题意 n个节点,若干次询问,I x y表示从x连一条边到y,权值为|x-y|%1000:E x ...

  5. 排序算法(一)(时间复杂度均为O(n*n))

    对于一个int数组,请编写一个选择排序算法,对数组元素排序. 给定一个int数组A及数组的大小n,请返回排序后的数组. 测试样例: [1,2,3,5,2,3],6 [1,2,2,3,3,5] 冒泡排序 ...

  6. urllib2.URLError: <urlopen error [Errno 10061] >

    今天来运行以前的python脚本,结果报这个错:urllib2.URLError: <urlopen error [Errno 10061] > 原来是因为 解决方法:打开IE浏览器,依次 ...

  7. mysql 插入中文时出现ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'usern ame' at row 1

    1 环境: MySQL Server 6.0  命令行工具 2 问题 :  插入中文字符数据出现如下错误: ERROR 1366 (HY000): Incorrect string value: '\ ...

  8. jquery------提供灵活的方法参数

    index.jsp <h1 >再次重逢的世界</h1> my.js $(document).ready(function(){ (function($){ $.fn.shado ...

  9. java WebSocket Demo

    1.IDEA创建Module,结构如图(Tomcat8.0) 2.引入jar包:javax.websocket-api.jar 3.新建WebSocketTest类 import javax.webs ...

  10. 使用 PHP 和 Apache Solr 实现企业搜索

    原文链接:http://www.ibm.com/developerworks/cn/opensource/os-php-apachesolr/   http://blog.csdn.net/hzcyc ...