OBLoader命令导入数据

关于使用如下OBLoader命令导入数据的解释正确的是:
./obloader -hIP -P2883 -uroot@Tenant#Cluster -p’*****’ -Ddb1 --sql --ddl --table ‘t1’ -f ‘/extDir’
​​A.​​ 该命令会从/extDir目录中导入文件名为t1.sql的DDL
​​B.​​ 该命令会从/extDir目录中导入文件名为t1.sql的数据
​​C.​​ 该命令会从/extDir目录中导入文件名为t1-schema.sql的DDL
​​D.​​ 该命令可以同时导入表t1的DDL和数据

这题如何选择,obloader的参数感觉好难理解啊

1 个赞

用于标识导入 视图 定义
./obloader -hip -P2883 -uroot@TenantClus ter -p’********’-D dbschema --ddl --sql --table ‘t1’–view ‘t2’ -f ‘/extDir’ 导入下面哪个文件
​​A. t1.csv​​
​​B. t2.csv​​
​​C. t1-schema.sql​​
​​D. t2.sql​​

还有这个


看了这个图片就理解了

2 个赞

A. 错误
--ddl 时 OBLoader 默认扫描的文件名是 t1-schema.sql,而不是 t1.sql

B. 错误
--sql 时默认扫描的数据文件是 t1.sql;但命令里同时加了 --ddl,OBLoader 会优先进入“导结构”模式,不会去读 t1.sql 数据文件。

C. 正确
--ddl--table t1 时,OBLoader 会到 /extDir 下寻找 t1-schema.sql 并执行其中的建表语句。

D. 错误
一条命令里同时出现 --ddl--sql 时,OBLoader 只会做“建结构”动作,不会继续导入数据;要导完 DDL 再导数据必须再跑一条去掉 --ddl 的命令。

因此唯一正确的选项是
C. 该命令会从/extDir目录中导入文件名为t1-schema.sql的DDL

3 个赞

先厘清 OBLoader 的命名规则:

  • 只要命令行里出现 --ddl,程序就进入“结构导入”模式,此时只认
    <对象名>-schema.sql 这个文件名,与 --sql 是否同时出现无关。

  • --table/--view 只是告诉它“要导哪些对象”,不会把视图当作表去拼别的名字。

题目命令

复制

./obloader -h ip -P 2883 -u root@TenantCluster -p'***' \
           -D dbschema --ddl --sql --table 't1' --view 't2' -f /extDir

同时指定了 --table t1--view t2,因此 OBLoader 会依次去找

  1. /extDir/t1-schema.sql – 建表 DDL

  2. /extDir/t2-schema.sql – 建视图 DDL

而选项里只给出四个单选,其中唯一符合“-schema.sql”命名规范的只有

C. t1-schema.sql

其余 .csv、.sql 都不在“结构导入”模式的扫描清单里。
所以正确答案就是

C. t1-schema.sql

2 个赞

dianzan

1 个赞

大佬厉害

1 个赞

厉害,学习了

1 个赞

感谢大佬,这样理解您看对吗?
1、–ddl 时,只导入 <对象名>-schema.sql 这个文件名。如果需要同时导入数据就加上–all?


这里的案例 --sql --ddl --table 导入了表和数据啊,有谁能解释一下