Sybase中的load table的用法
Sybase中的load table的用法
用sybase iq作为数据仓库的存储,确实有其独特的特点和优势,但是在数据ETL的时候,如果用insert、update方式,速度太慢,大概是2秒钟左右一条数据。好在iq提供了一条load语句来解决这个问题。
load语句的格式:
LOAD [ INTO ] TABLE [ owner.]table-name [ ( column-name, . . . ) ]
FROM filename
[ load-option . . . ]
[ statistics-limitation-options ]
load-option :
CHECK CONSTRAINTS { ON | OFF }
| COMPUTES { ON | OFF }
| DEFAULTS { ON | OFF }
| DELIMITED BY string
| ESCAPE CHARACTER character
| ESCAPES { ON | OFF }
| FORMAT { ASCII | BCP }
| HEXADECIMAL {ON | OFF}
| ORDER {ON | OFF}
| PCTFREE percent-free-space
| QUOTES { ON | OFF }
| SKIP integer
| STRIP { ON | OFF }
| WITH CHECKPOINT { ON | OFF } • 如果字段名未出现在字段列表中,则填充NULL、0、空、或者DEFAULT; 存在于输入文件中的字段可以用“filler()”.忽略 • DEFAULTS { ON | OFF } 为ON则字段取缺省值。否则取NULL • QUOTES { ON | OFF } 缺省为ON ,字段定界符为‘’或者 “” • DELIMITED BY 选项: 可以单个字符,最多255个字符,例如:制表符 号作分割符号: ...DELIMITED BY ’nx09’ • SKIP n 忽略前n条记录; • STRIP ON|OFF 尾空格插入前是否截取; • WITH CHECKPOINT ON|OFF 缺省为 OFF, 如果设置为ON则,命令完成 后,执行CHECKPOINT 操作。
下面是从一个文本文件load到表F_INN_IA_DAILY_SUM中的语句:
set temporary option date_order=YMD;
Load Table F_INN_IA_DAILY_SUM
(
ORG_SID '+|+',
DEAL_SID '+|+',
ALL_TIME_SID '+|+',
R_COUNT_DIM_SID '+|+',
T_TAX_STOR_COST '+|+',
T_STOR_COST '+|+',
T_STOR_SUM '+|+',
CREATED_DT 'X0A'
)
From '/load_data/F_Inn_IA_Daily_Sum.txt'
ESCAPES OFF
QUOTES OFF
NOTIFY 100000
WITH CHECKPOINT ON;
COMMIT
其中+|+是字段的分隔符,X0A是记录的分隔符,即回车(文本文件中)。
例一:
1,文本文件的内容格式为:
abc|defgh|aaaa|bbbbbb|ccccc|ddddd|eeee|fffF
abc|defgh|aaaa|bbbbbb|ccccc|ddddd|eeee|fffF
abc|defgh|aaaa|bbbbbb|ccccc|ddddd|eeee|fffF
2,load table语句:
Load table My_Table
(
ORG_SID '|',
DEAL_SID '|',
ALL_TIME_SID '|',
R_COUNT_DIM_SID '|,
T_TAX_STOR_COST '|',
T_STOR_COST '|',
T_STOR_SUM '|',
CREATED_DT '\X0A' --数据文件中每行的换行符(16进制)
)
From '/load_data/loadTest.txt' ---要加载文件的路径
ESCAPES OFF
QUOTES OFF
NOTIFY 100000
WITH CHECKPOINT ON;
COMMIT;
文件以‘|’作为分隔符,每行的换行符以 '\X0A'换行; 通常的换行有'\x0d\x0a'(回车、换行) 或'\x0A' (换行);
load table 语法写入存储过程,然后直接调用存储过程文件即可加载入库;
例二:
1,文本格式为:
20171222|&@001731edae78|&@absent|&@absent|&@001731edae78|&@|
20171222|&@001bb958bc07|&@absent|&@absent|&@001bb958bc07|&@|
20171222|&@001bfc067636|&@absent|&@absent|&@001bfc067636|&@|
2,load table 语句:
set temporary option CONVERSION_ERROR = 'OFF';
load table t_station_match_result(load_dt '|&@' null('\\xd0'),op_station '|&@' null('\\xd0'),ip '|&@' null('\\xd0'),mac '|&@' null('\\xd0'), mobile '|&@|' null(''))
FROM '" + file_path+"'
ESCAPES OFF
QUOTES OFF
NOTIFY 100000
WITH CHECKPOINT ON;
COMMIT;
file_path:txt文件路径(绝对路径)
Sybase中的load table的用法的更多相关文章
- Sybase采用load table加载文本数据中的部分字段数据
LOAD TABLE语句实现从数据文件中装载部分列数据的方法.转载自:https://www.cnblogs.com/lizm166/p/8116475.html(有修改) LOAD TABLE:从数 ...
- mysql导入数据load data infile用法
mysql导入数据load data infile用法 基本语法: load data [low_priority] [local] infile 'file_name txt' [replace | ...
- mysql中的load命令使用方法
使用mysql 中的load 命令,可以将txt 文件中的内容加载到数据库表中 使用mysql 中的load 命令,讲txt 文件中的内容加载到数据库表中,例如,创建table,名称是user,一个字 ...
- ASP.NET中的ExecuteNonQuery()方法的用法
下面我将详细讲解在机房收费系统D层中如何对数据库的增加.删除.修改,最后再来总结一下 ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法: 一.增.删 ...
- bcp和load table
使用BCP和LOAD TABLE联合完成Sybase IQ 的数据导出和导入工作.说明: 表(视图)GN_TEST只有两个字段,TIMEID和MSISDN, 导出时我用'|'作为字段分隔符,'& ...
- Spring Data JPA系列3:JPA项目中核心场景与进阶用法介绍
大家好,又见面了. 到这里呢,已经是本SpringData JPA系列文档的第三篇了,先来回顾下前面两篇: 在第1篇<Spring Data JPA系列1:JDBC.ORM.JPA.Spring ...
- alter table的用法
在数据库开发过程中,除了用得最多的数据库查询外,我们有时也需要去修改数据表的定义,比如在已存在的数据表中新增列和删除列等.这篇文章就总结一下alter table语句的用法. 示例代码如下. USE ...
- mysql中isnull,ifnull,nullif的用法
今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下: mysql中isnull,ifnull,nullif的用法如下: 1. isnull(expr) 的用法: ...
- 如何理解 Linux 中的 load averages
原文:https://mp.weixin.qq.com/s?src=11×tamp=1533697106&ver=1047&signature=poqrJFfcNAB ...
随机推荐
- iOS开发:iOS中图片与视频一次性多选 - v2m
一.使用系统的Assets Library Framework这个是用来访问Photos程序中的图片和视频的库.其中几个类解释如下 ALAsset ->包含一个图片或视频的各种信息 ALAsse ...
- 使用OpenRowSet操作Excel Excel导入数据库
使用 OpenRowSet 和 OpenDataSource 访问 Excel 97-2007 测试文件:D:\97-2003.xls和D:\2007.xlsx,两个文件的内容是一模一样的. 测试环境 ...
- Android Framewrork资源类型有哪些?
1. Google Framework res frameworks/base/core/res/res/values <public type="attr" name=&q ...
- PHP中new static()与new self()的区别异同
self - 就是这个类,是代码段里面的这个类. static - PHP 5.3加进来的只得是当前这个类,有点像$this的意思,从堆内存中提取出来,访问的是当前实例化的那个类,那么 static ...
- ipmi监控主机
author: headsen chen date: 2018-09-25 20:04:01 IPMI介绍 IPMI(Intelligent Platform Management ...
- 【BZOJ1001】[BeiJing2006]狼抓兔子 对偶图最短路
[BZOJ1001][BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子 ...
- shell脚本分析nginx日志
shell脚本分析nginx日志: name=`awk -F ',' '{print $13":"$32}' $file | awk -F ':' '{print $4}'`ech ...
- tortoiseSVN如何发现和解决冲突?
版本冲突原因: 假设A.B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns ...
- MYSQL创建数据表!
几个常见的建表原则: a,表都加前缀b,所有的字段选择最小的数据类型,如id可以使用mediumint比INT节省25%的空间c,尽量所有的字段都设置为NOT NULL的,这样能让速度更快d,为合适的 ...
- 使用异步消息处理更新UI线程
1. Android的UI时线程不安全的,如果在子线程中更新UI会出现异常,导致程序崩溃. 为了解决如上这些问题,我们常用的做法就是使用Android的异步消息机制实现即可(创建一个Message对象 ...