Trafodion Trickle Load 之 odb Load/Extract/Copy命令用法

(注:以下只是初步介绍Trafodion odb工具的几个主要命令的基本用法,更多用法及适用场景请见下载官方文档点击打开链接查看详情)

 

Load

语法

 

-l src=[-]file:tgt=table[:map=mapfile][:fs=fieldsep][:rs=recsep][:soe]
[:skip=linestoskip][:ns=nullstring][:ec=eschar][:sq=stringqualifier]
[:pc=padchar][:em=embedchar][:errmax=#max_err][:commit=auto|end|#rows|x#rs]
[:rows=#rowset][:norb][:full][:max=#max_rec][:truncate][:show][:bpc=#][:bpwc=#]
[:nomark][:parallel=number][:iobuff=#size][:buffsz=#size]][:fieldtrunc=\{0-4}]
[:pre=\{@sqlfile}|\{[sqlcmd]}][:post=\{@sqlfile}|\{[sqlcmd]}][:ifempty]
[:direct][:bad=[+]badfile][:tpar=#tables][:maxlen=#bytes][:time]
[:xmltag=[+]element][:xmlord][:xmldump][:loadcmd=IN|UP|UL]

 

 

 

用例

(1)创建测试表

 

SQL>create table test_tbl(id int not null, name varchar(10));

--- SQL operation complete.

SQL>showddl test_tbl;


CREATE TABLE TRAFODION.SEABASE.TEST_TBL
  (
    ID                               INT NO DEFAULT NOT NULL NOT DROPPABLE
      SERIALIZED
  , NAME                             VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL SERIALIZED
  )
;

--- SQL operation complete.

(2)创建测试文件并编辑数据

 

 

[centos@cent-1 bin]$ cat test.file
1,liu
2,zhang
3,li
4,wu
5,feng

(3)Load文件到测试表

 

 

[centos@cent-1 bin]$ ./odb64luo -u trafodion -p traf123 -d traf -l src=test.file:tgt=trafodion.seabase.test_tbl\
> :fs=\,:rows=5:loadcmd=IN:truncate:parallel=2
odb [main(1354)] - Unknow option :fs=,:rows=5:loadcmd=IN:truncate:parallel=2. Ignored
odb [2016-09-26 09:15:51]: starting ODBC connection(s)... (1) 1 2
Connected to Trafodion
[0.0.0]--- 0 row(s) deleted in 0.687s (prep 0.006s, exec 0.681s, fetch 0.000s/0.000s)
[0] 5 records inserted [commit]
[0] odb version 1.1.0 Load(2) statistics:
        [0] Target table: TRAFODION.SEABASE.TEST_TBL
        [0] Source: test.file
        [0] Pre-loading time: 0.327 s (00:00:00.327)
        [0] Loading time: 0.146 s(00:00:00.146)
        [0] Total records read: 5
        [0] Total records inserted: 5
        [0] Total number of columns: 2
        [0] Total bytes read: 31
        [0] Average input row size: 6.2 B
        [0] ODBC row size: 21 B (data) + 16 B (len ind)
        [0] Rowset size: 100
        [0] Rowset buffer size: 3.61 KiB
        [0] Load throughput (real data): 0.207 KiB/s
        [0] Load throughput (ODBC): 0.702 KiB/s
odb [2016-09-26 09:15:51]: exiting. Session Elapsed time 0.479 seconds (00:00:00.479)

 

(4)检查Load是否成功

 

SQL>select * from seabase.test_tbl;

ID          NAME
----------- ----------
          1 liu
          2 zhang
          3 li
          4 wu
          5 feng

--- 5 row(s) selected.

 

 

 

 

 

Extract

语法

 

-e {src={table|-file}|sql=<customsql>}:tgt=[+]file[:pwhere=where_cond]
[:fs=fieldsep][:rs=recsep][:sq=stringqualifier][:ec=escape_char][:soe]
[:ns=nullstring][es=emptystring][:rows=#rowset][:nomark][:binary][:fwc]
[:max=#max_rec][:trim=[cCvVdt]][:rtrim][:cast][:multi][:efs=string]
[:parallel=number][:gzip][:gzpar=wb??][:uncommitted][:splitby=column]
[:pre={@sqlfile}|{[sqlcmd]}[:mpre=\{@sqlfile}|{[sqlcmd]}[:post={@sqlfile}|{[sqlcmd]}]
[tpar=#tables][:time][:nts][:cols=[-]columns]][:maxlen=#bytes][:xml]

 

 

 

用例

(1)继续使用上述测试表,当前测试表已经加载了5条数据,

 

SQL>select * from test_tbl;

ID          NAME
----------- ----------
          1 liu
          2 zhang
          3 li
          4 wu
          5 feng

--- 5 row(s) selected.


(2)Extract上表数据到指定文件

 

 

[centos@cent-1 bin]$ ./odb64luo -u trafodion -p traf123 -d traf -e src=trafodion.seabase.test_tbl:tgt=%t_%d%m:rows=m20:sq=\"
Connected to Trafodion
odb [2016-09-26 09:37:09]: starting ODBC connection(s)... 0
[0] 5 records extracted
[0] odb version 1.1.0 Extract statistics:
        [0] Source: TRAFODION.SEABASE.TEST_TBL
        [0] Target: %t_%d%m
        [0] Record buffer size: 23 bytes
        [0] Rowset size: 911,805
        [0] Rowset buffer size: 20,480.00 KiB
        [0] Pre-extract time: 0.125 s (00:00:00.125)
        [0] Extract time: 0.008 s (00:00:00.008)
        [0] Total records extracted: 5 (0.625 krec/s)
        [0] Total data bytes written: 41 (5.005 KiB/s)
odb [2016-09-26 09:37:09]: exiting. Session Elapsed time 0.138 seconds (00:00:00.138)


(3)查询文件内容

 

 

[centos@cent-1 bin]$ cat test_tbl_20160926093709
1,"liu"
2,"zhang"
3,"li"
4,"wu"
5,"feng

 

 

Copy

语法

 

-cp src={table|-file:tgt=schema[.table][pwhere=where_cond][:soe][:nts]
[:truncate][:rows=#rowset][:nomark][:max=#max_rec][:fwc][:bpwc=#]
[:parallel=number][errmax=#max_err][:commit=auto|end|#rows|x#rs][:time]
[:direct][:uncommitted][:norb][:splitby=column][:pre={@sqlfile}|{[sqlcmd]}]
[:post={@sqlfile}|{[sqlcmd]}][:mpre={@sqlfile}|{[sqlcmd]}][:ifempty]
[:loaders=#loaders][:tpar=#tables][:cols=[-]columns]
[sql={[sqlcmd]|@sqlfile|-file}[:bind=auto|char|cdef]
[tmpre={@sqlfile}|{[sqlcmd]}][seq=field#[,start]]

 

 

 

用例

(1)创建一个表和原测试结构一致

 

SQL>showddl test_tbl2;


CREATE TABLE TRAFODION.SEABASE.TEST_TBL2
  (
    ID                               INT NO DEFAULT NOT NULL NOT DROPPABLE
      SERIALIZED
  , NAME                             VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL SERIALIZED
  )
;

--- SQL operation complete.

(2)利用COPY命令把原测试表数据复制到新表

 

 

[centos@cent-1 bin]$ ./odb64luo -u trafodion:trafodion -p traf123:traf123 -d traf:traf -cp src=trafodion.seabase.test_tbl:tgt=trafodion.seabase.test_tbl2:rows=m2:truncate
Connected to Trafodion
odb [2016-09-26 09:51:51]: starting ODBC connection(s)... 0 >1 >2
Connected to Trafodion
[1.0.0]--- 0 row(s) deleted in 0.298s (prep 0.285s, exec 0.013s, fetch 0.000s/0.000s)
[1] 5 records copied [commit]
[0] odb version 1.1.0 Copy statistics:
        [0] Source: TRAFODION.SEABASE.TEST_TBL
        [0] Target: trafodion.seabase.test_tbl2
        [0] Total number of columns: 2
        [0] ODBC row size: 23 B (data) + 16 B (len ind)
        [0] Rowset size: 53,773
        [0] Rowset buffer size: 2,048.00 KiB
        [0] Pre-copy time: 0.677 s (00:00:00.677)
        [0] Copy time: 0.037 s (00:00:00.037)
        [0] Total records copied: 5 (0.135 krec/s)
        [0] Copy throughput (ODBC): 0.003 MiB/s  (0.010 GiB/h)
                [0] Total/Wait cycles: 1/0
                        [0>1] 5 records copied in 0.037 (00:00:00.037 s)
                        [0>2] 0 records copied in 0.037 (00:00:00.037 s)
odb [2016-09-26 09:51:52]: exiting. Session Elapsed time 0.733 seconds (00:00:00.733)


(3)检查数据是否复制成功

 

 

SQL>select * from test_tbl2;

ID          NAME
----------- ----------
          1 liu
          2 zhang
          3 li
          4 wu
          5 feng

--- 5 row(s) selected.

 

Transform

语法

Transform是Load的一种,Transform的意思是在Load的时候通过一个mapfile来实现一些功能,比如忽略输入文件的某些行、生产序列号、插入常量、日期格式转换、字符串截取和替换、生成随机数等等。

 

用例

(1)测试表继续用上述的test_tbl

(2)创建测试Input文件,内容如下

 

[centos@cent-1 bin]$ cat test_transform.file
aa,00,liu,one
bb,11,zhang,two
cc,22,li,three
dd,33,wu,four
ee,44,feng,five

(3)创建map文件,内容如下

 

 

[centos@cent-1 bin]$ cat m.map
# Map file to load data into trafodion.seabase.test_tbl
ID:seq:1        # Insert into ID starting from 1
NAME:2:REPLACE:liu:LIU  # Load field #3 into NAME and replace all liu to LIU

(4)根据map文件加载数据

 

 

[centos@cent-1 bin]$ ./odb64luo -u trafodion -p traf123 -d traf -l src=test_transform.file:tgt=trafodion.seabase.test_tbl:map=m.map:fs=,:truncate
odb [2016-09-26 10:28:49]: starting ODBC connection(s)... 0
Connected to Trafodion
[0.0.0]--- 5 row(s) deleted in 0.042s (prep 0.001s, exec 0.041s, fetch 0.000s/0.000s)
[0] 5 records inserted [commit]
[0] odb version 1.1.0 Load statistics:
        [0] Target table: TRAFODION.SEABASE.TEST_TBL
        [0] Source: test_transform.file
        [0] Pre-loading time: 0.165 s (00:00:00.165)
        [0] Loading time: 0.023 s(00:00:00.023)
        [0] Total records read: 5
        [0] Total records inserted: 5
        [0] Total number of columns: 2
        [0] Total bytes read: 75
        [0] Average input row size: 15.0 B
        [0] ODBC row size: 21 B (data) + 16 B (len ind)
        [0] Rowset size: 100
        [0] Rowset buffer size: 3.61 KiB
        [0] Load throughput (real data): 3.184 KiB/s
        [0] Load throughput (ODBC): 4.458 KiB/s
odb [2016-09-26 10:28:49]: exiting. Session Elapsed time 0.195 seconds (00:00:00.195)

 

(5)检查数据是否转换成功

 

SQL>select * from test_tbl;

ID          NAME
----------- ----------
          1 LIU
          2 zhang
          3 LIU
          4 wu
          5 feng

--- 5 row(s) selected.

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值