odb是Trafodion提供的一款平台无关的,多线程的,基于ODBC的命令行工具,Trafodion数据库可以使用odb工具做数据的ETL,如数据的导入导出,数据库之间的迁移等等。关于odb的详细介绍,可参考Trafodion官网的odb User Guide,链接http://trafodion.incubator.apache.org/docs/odb/index.html
在前面的文章中,我们介绍了如何安装odb工具,详情请参考博客http://blog.csdn.net/post_yuan/article/details/54631881
odb的安装主要包括以下几个步骤:
1 安装unixODBC
2 安装Trafodion ODBC驱动
3 安装odb(注:Trafodion服务端自带odb工具,路径为$MY_SQROOT/export/bin64)
4 配置odbc连接Trafodion
5 使用odb
这里假设我们已经完成以上步骤,这可以通过以下两条命令检测odb安装成功并可以成功连接指定的Trafodion数据库。
./odb64luo -lsdrv
./odb64luo -u trafodion -p traf1234 -d traf -i
配置成功的示例如下,
[trafodion@cdh1 bin64]cd $MY_SQROOT/export/bin64
[trafodion@cdh1 bin64]$ ./odb64luo -lsdrv
PostgreSQL - Description=ODBC for PostgreSQL
MySQL - Description=ODBC for MySQL
Trafodion - Description=ODBC for Trafodion
[trafodion@cdh1 bin64]$ ./odb64luo -u trafodion -p traf1234 -d traf -i
odb [2017-11-10 16:53:13]: starting ODBC connection(s)... 0
[odb version 1.1.0]
Build: linux, amd64, gcc generic m64, uodbc, mreadline, dynamic gzip, dynamic libhdfs, dynamic libxml2 [Sep 23 2017 00:33:36]
DBMS product name (SQL_DBMS_NAME) : Trafodion
DBMS product version (SQL_DBMS_VER) : 02.02.0003
Database name (SQL_DATABASE_NAME) : TRAFODION
Server name (SQL_SERVER_NAME) : cdh3($Z020E9C){TCP:172.16.16.202/23402:ODBC}
Data source name (SQL_DATA_SOURCE_NAME) : traf
Data source RO (SQL_DATA_SOURCE_READ_ONLY) : N
ODBC Driver name (SQL_DRIVER_NAME) : libtrafodbc64.so
ODBC Driver version (SQL_DRIVER_VER) : 03.00.0000
ODBC Driver level (SQL_DRIVER_ODBC_VER) : 03.51
ODBC Driver Manager version (SQL_DM_VER) : 03.52.0002.0003
ODBC Driver Manager level (SQL_ODBC_VER) : 03.52
Connection Packet Size (SQL_ATTR_PACKET_SIZE): 0
odb [2017-11-10 16:53:14]: exiting. Session Elapsed time 0.571 seconds (00:00:00.571)
现在我们就可以使用配置好的odb工具来实现我们想要实现的功能了,Trafodion odb的主要命令包括load/extract/copy,具体用法可参考官网介绍,也可参考我的另外一篇博客:http://blog.csdn.net/post_yuan/article/details/52671874
这里我们试验如何导出表为指定的文件,指定的是extract命令,关于odb extract的详细用法,请参考http://trafodion.incubator.apache.org/docs/odb/index.html#_extract_tables
示例命令如下,
./odb64luo -u trafodion -p traf1234 -d traf -e src=TRAFODION.CDH.TEST%:tgt=/home/trafodion/ext_%t.csv.gz:rows=m10:fs=\|:trim:gzip
上述命令的含义表示:导出TRAFODION.CDH.TEST这张表的所有数据,导出文件为gzip,目录在/home/trafodion/下,名称为ext_trafodion.cdh.test.csv.gz,字段的分隔为|,buffer的大小为10MB。
上述命令的输出大致如下,
./odb64luo -u trafodion -p traf1234 -d traf -e src=TRAFODION.CDH.TEST%:tgt=/home/trafodion/ext_%t.csv.gz:rows=m10:fs=\|:trim:gzip
...
[0] 57,045,988 records extracted
[0] odb version 1.1.0 Extract statistics:
[0] Source: TRAFODION.CDH.TEST
[0] Target: /home/trafodion/ext_%t.csv.gz
[0] Record buffer size: 804 bytes
[0] Rowset size: 13,041
[0] Rowset buffer size: 10,239.22 KiB
[0] Pre-extract time: 1.565 s (00:00:01.565)
[0] Extract time: 582.386 s (00:09:42.386)
[0] Total records extracted: 57,045,988 (97.952 krec/s)
[0] Total data bytes written: 915,580,950 (1,535.274 KiB/s)