obdumper使用--query-sql后导出的文件格式、文件名称、文件目录错误

【 使用环境 】测试环境
【 OB or 其他组件 】obdumper
【 使用版本 】ob-loader-dumper-3.1.0-SNAPSHOT
【问题描述】obdumper使用–query-sql后导出的文件格式、文件名称、文件目录错误
【复现路径】使用obdumper时./obdumper -h * -P * -u * -p* -t * --public-cloud -f * --csv --table ‘*’ --column-separator ‘|’ --column-delimiter ‘^’(*代替需要隐秘的特定内容)导出的文件格式为csv,目录指定目录/data/用户/TABLE,文件名称为表名.0.0.csv;

当加上–query-sql后,命令为./obdumper -h * -P * -u * -p* -t * --public-cloud -f * --csv --table ‘*’ --column-separator ‘|’ --column-delimiter ‘^’ --query-sql “select * FROM 表名 t WHERE t.日期字段 >=to_date(‘2022-07-20’,‘YYYY-MM-DD hh24:mi:ss’) AND t.MODIFY_DATE <to_date(‘2022-07-20’,‘YYYY-MM-DD hh24:mi:ss’) +1” (*代替需要隐秘的特定内容),此时导出的文件直接在指定目录下,名称为用户.txt,同时指定目录/data也存在,里面只有CHECKPOINT.bin文件,无报错

【问题现象及影响】我们几乎每个表都需要Where限制,这样怎么区分同一个用户下导出的不同表?文件格式指定了csv,为什么导出为txt?
【附件】

我刚刚测了一下确实是这样,理解一下您的需求具体是什么呢?如果单表导出的话,形成一个文件理论上是没问题的。您也可以通过 --file-name 指定为独立的文件名,不采用默认的形式。

贴一些我模拟复现的例子:

./obdumper -h 127.0.0.1 -P 2883 -u root -p observer --sys-password observer -c obcluster -t sys -D test --csv  --table 't1' --column-separator '|' --column-delimiter '^' --query-sql "select * from t1 where id=1" -f /home/chris/dumpresult/ --file-name=t1.csv

[chris@obd bin]$ cat /home/chris/dumpresult/t1.csv
1|^a^

3.0.0 版本也出现同样的问题,目前加上query-sql后会在指定目录下生成 库名.txt 结果文件
感谢以上各位的反馈 --query-sql 未来会调整成到指定的目录和文件格式,与不加时表现一致

The latest obdumper/obloader(4.0.0) has fixed this bug, please download it from OceanBase 社区

unify the path of --query-sql and --table