ULL,
XactSequence bigint DEFAULT NULL,
hashcodebigint DEFAULT NULL,
filtertinyint DEFAULT NULL
)
CREATE TABLE sbtest (
idint NOT NULL,
kint NOT NULL DEFAULT '0',
cchar(120) NOT NULL DEFAULT '',
padchar(60) NOT NULL DEFAULT '',
PRIMARYKEY (id)
);
注意:vertica不支持vertica不支持MySQL中的``、int(N)、comment、text类型、unsigned、AUTO_INCREMENT、KEY k(k)
两个测试文本:
sbtest.txt-17G-包含如下格式的数据2亿行(数据来自于sysbench自动创建)
1*2000*"aaaaaaaaaaabbbbbbbbbbccccccccccdddddddddd"*"ddddddddddccccccccccbbbbbbbbbbaaaaaaaaaa"
trace_order_less.txt-20G-包含如下格式的数据3千万行(数据来自与真实的生产环境)
"SELECT costrate FROM FltOrderDB..O_Flight(nolock) WHERE OrderID=1030812255"*0*"VMS01760"*".NetSqlClient DataProvider"*"uws_W_AppleOrder"*172*0*"2014-05-1500:00:00"*"2014-05-1500:00:00"*4*0*0*0*""*0*0*""*"FltOrderDB"*""*1*0*3384460570715180659*1
4.2 单节点vertica与infobright数据载入测试
单点的社区版vertica
copy public.sbtest from '/tmp/sbtest.txt'DELIMITER '*' ENCLOSED BY '"'DIRECT;
Time: First fetch (1 row): 438790.789 ms. Allrows formatted: 438790.838 ms
数据被压缩为3.8G
copy public.trace_htlorder from'/data/tmp/trace_order_less.txt' DELIMITER '*' ENCLOSED BY '"' DIRECT;
Time: First fetch (1 row): 3926331.365 ms. All rowsformatted: 3926331.419 ms
数据被压缩为1.4G
数据载入过程中vertica会使用到比原始数据文件大得多的磁盘空间, 20G的数据文件LOAD过程中最多的时候会占用到40G的空间
copy 命令三个参数
AUTO 将数据载入WOS,WOS满后直接载入到ROS。适用于<100MB的文件
DIRECT 将数据直接载入到ROS。适用于100MB以上的数据
TRICKLE 适用于增量式的批量插入数据,直接把数据载入到WOS,WOS满后报错,整个载入过程回滚。
社区版infobright
创建数据库和表
create database testInfobright;
use testInfobright;
CREATE TABLE `trace_htlorder` (
`TextData` text,
`TransactionID` bigint(20) DEFAULT NULL,
`HostName` varchar(256) DEFAULT NULL COMMENT 'lookup',
`ApplicationName` varchar(256) DEFAULT NULL,
`LoginName` varchar(256) DEFAULT NULL COMMENT 'lookup',
`SPID`int(11) DEFAULT NULL,
`Duration` bigint(20) DEFAULT NULL,
`StartTime` datetime DEFAULT NULL,
`EndTime`datetime DEFAULT NULL,
`Reads`bigint(20) DEFAULT NULL,
`Writes`bigint(20) DEFAULT NULL,
`CPU`int(11) DEFAULT NULL,
`Success`int(11) DEFAULT NULL,
`ServerName` varchar(256) DEFAULT NULL COMMENT 'lookup',
`EventClass` int(11) DEFAULT NULL,
`Error`int(11) DEFAULT NULL,
`ObjectName` varchar(256) DEFAULT NULL COMMENT 'lookup',
`DatabaseName` varchar(256) DEFAULT NULL COMMENT 'lookup',
`DBUserName` varchar(256) DEFAULT NULL,
`RowCounts` bigint(20) DEFAULT NULL,
`XactSequence` bigint(20) DEFAULT NULL,
`hashcode`bigint(20) DEFAULT NULL,
`filter`tinyint(4) DEFAULT NULL
) ENGINE=BRIGHTHOUSE DEFAULT CHARSET=utf8
CREATE TABLE `sbtest` (
`id`bigint(10) NOT NULL,
`k`int(10) NOT NULL DEFAULT '0',
`c`char(120) NOT NULL DEFAULT '',
`pad`char(60) NOT NULL DEFAULT ''
)
同样的两个数据文件sbtest.txt、trace_order_less.txt
load data infile '/data/tmp/sbtest.txt' intotable testInfobright.sbtest FIELDS TERMINATED BY '*' OPTIONALLY ENCLOSED BY'"' ;
Query OK, 200000000 rows affected (40 min 38.89sec)
数据被压缩为2.8G
load data infile '/data/tmp/trace_order_less.txt'into table testInfobright.trace_htlorder FIELDS TERMINATED BY '*' OPTIONALLYENCLOSED BY '"' ;
Query OK, 30000000 rows affected (11 min 13.68sec)
数据被压缩为0.45G
结论:
| |
Infobright |
Vertica |
Infobright |
Vertica |
| 导入文件类型 |
sysbench压测工具生成的格式化数据,每行的文本内容具有基本相同的长度和内容 |
生产环境DB实际产生的trace信息,包含各种不同的调用语句,文本长度和内容都各异 |
| 原始文件大小(GB) |
17 |
20 |
| 导入后大小(GB) |
2.8 |
3.8 |
0.45 |
1.4 |
| 压缩比 |
83% |
77% |