TcaplusDB Client - dump命令
TcaplusDB Client的使用方法参见文档。
1. 功能说明
原理:dump命令实际是通过全表扫描接口,将数据读取到本地,再按指定形式和格式输出。
全量导出表格中的数据,提供打印到控制台/输出到文件两种方式。 注:3.55版本后支持where+任意字段过滤导出,但本质上还是走的全表扫描
请注意,保存结果的文件名不能以数字开头。
2. 性能说明
数据导出由单线程执行,导出效率与数据量成负相关,当单记录数据比较大时,导出耗时比较长。
如果只是需要部分字段,建议使用部分字段导出,此时只会读取数据的部分字段,而不会读取整条数据,可以在一定程度上提高导出速度。
3. 启始版本
3.40.0
4. 命令语法
dump key1, key2, value1, value2 [into result.csv] from table [where ...] limit 10 offset 100 shardid 10 [\M];
##导出部分字段
dump key1, key2, value1, value2 [into result.csv] from table [where ...] limit 10;
注:pb表指定字段导出(3.55版本支持)
enable delta result;
dump key1, key2, key3, value1, value2 [into result.xml] from table;
##按xml格式导出
dump * [into 文件名] from table [where ...] limit 10 using tdr;
##按csv格式导出
dump * [into 文件名] from table [where ...] limit 10 [encode] [\T];
参数说明:
参数 | 版本说明 | 当源表为PB表时 | 当源表为TDR表时 | 必填项 |
---|---|---|---|---|
table | 表格的名字 | 表格的名字 | 是 | |
key | 主键字段名,必须填入所有Key字段的值 | 主键字段名,必须填入所有Key字段的值 | 否 | |
value | 非主键字段名 | 非主键字段名 | 否 | |
where | 3.55.0版本起支持 | 过滤条件 | 过滤条件 | 否 |
limit | 本次导出的Key的个数 Generic表:一个Key对应一条数据 List表:一个Key对应一个列表,包含多条数据 |
本次导出的Key的个数 Generic表:一个Key对应一条数据 List表:一个Key对应一个列表,包含多条数据 |
否 | |
using tdr | 不支持 | 如果需要使用该参数,则在启动TcaplusDB Client时,就要通过启动参数指定与目标表对应的TDR文件 使用该参数时,如果导入的是XML格式的数据文件,则文件结构严格满足XML语法要求 |
否 | |
encode | 不支持(回车字符或不可见字符已预处理) | 当导入的CSV格式的数据文件时,才可以使用该参数。 指定该参数后,导出命令会将含有回车字符或不可见字符的string类型字段值进行BASE64编码后,再输出 注:使用了encode参数导出数据文件,再导入时,需要指定decode参数 |
否 | |
into | 目标数据文件(3.55版本支持指定字段导出,需提前执行enable delta result设置,enable delta result 仅在单次运行tcaplus_client期间生效,通常不需要再disable) | 目标数据文件 | 否 | |
shardid | 指定导出哪个数据分片(Shard)分片数据,必须与offset参数一起使用 | 指定导出哪个数据分片(Shard)分片数据,必须与offset参数一起使用 | 否 | |
offset | 指定导出数据的开始位置,必须与shardid参数一起使用 | 指定导出数据的开始位置,必须与shardid参数一起使用 | 否 | |
\M | 3.46.0版本起支持 | 从主副本遍历数据(用于对数据实时要求较高的场景,对其它数据读写会造成一定性能影响) | 从主副本遍历数据(用于对数据实时要求较高的场景,对其它数据读写会造成一定性能影响 | 否 |
\T | 不支持 | 输出数据以\t 作为字段分隔符(3.46版本开始支持 ) |
否,默认以, 为分隔符 |
5. 命令示例
表定义详见示例表定义。
tcaplus> dump * from table_list limit 0 offset 100 shardid 10;
uin,name,key1,level,count,array_count,items,c_int8,c_uint8,c_int16,c_uint16,c_int32,c_uint32,c_int64,c_uint64,c_float,c_double,c_string,c_string_128K,c_string_256K,c_binary,binary,selector,single_struct,simple_struct,single_union_selector,single_union,array,c_union,union_array,c_struct,struct_array
99,"99",99,1,0,1,0x,-1,2,-3,4,-5,6,-7,0,1.234568,9.876543,"","123456789","123456789",0x,0,0,0x,0x,0,0x,0x,0x,0x,0x,0x
99,"99",99,1,0,1,0x,-1,2,-3,4,-5,6,-7,0,1.234568,9.876543,"","123456789","123456789",0x,0,0,0x,0x,0,0x,0x,0x,0x,0x,0x
99,"99",99,1,0,1,0x,-1,2,-3,4,-5,6,-7,0,1.234568,9.876543,"","123456789","123456789",0x,0,0,0x,0x,0,0x,0x,0x,0x,0x,0x
99,"99",99,1,0,1,0x,-1,2,-3,4,-5,6,-7,0,1.234568,9.876543,"","123456789","123456789",0x,0,0,0x,0x,0,0x,0x,0x,0x,0x,0x
dump 4 records successful
dump time: 121671 us
tcaplus> dump * into table_list.txt from table_list;
dumped 4 records successful
tcaplus> dump * into table_list.xml from table_list using tdr;
dumped 4 records successful
tcaplus> dump * from table_list_bin encode;
uin,name,level,count,items,name_1,name_2,binary_count,binary,single_struct
1,"MQ==",1,0,0x,"Bw==","",5,0x03001234450000,0x030000000002000000033ff00a915379fa980400000006343334333200
1,"MQ==",1,0,0x,"Bw==","",5,0x03001234450000,0x030000000002000000033ff00a915379fa980400000006343334333200
1,"Mw==",1,0,0x,"","",5,0x1232123443,0x
1,"Mw==",1,0,0x,"","",5,0x1232123443,0x
1,"Mw==",1,0,0x,"","",5,0x1232123443,0x
1,"Mw==",1,0,0x,"","",5,0x1232123443,0x
1,"Ng==",1,0,0x,"Bw==","",5,0x03005645890000,0x030000000001000000013ff1c28f5c28f5c3010000000100
1,"Ng==",1,0,0x,"Bw==","",5,0x03005645890000,0x030000000001000000013ff1c28f5c28f5c3010000000100
6. 常见错误
参考常见错误文档。