1 回答
您是对的,对于 cassandra-unloader/cassandra-loader,默认分隔符 (",") 在 Yugabyte DB 中存在 YCQL JSONB 列的情况下不起作用。
关于:
<< 作为替代方法,尝试将 -delim “\t” 传递给 cassandra-unloader——但这似乎插入了两个字符“\”和“t”,而不是单制表符。这是预期的吗?>>
使用制表符作为分隔符应该可以正常工作。但是 unix shell 需要一些转义才能将 "\t" 正确传递给程序。请参阅:https ://superuser.com/questions/362235/how-do-i-enter-a-literal-tab-character-in-a-bash-shell
使用:
-delim $'\t'
代替
-delim "\t"
因此,例如对于导出,请尝试:
./cassandra-unloader -schema "my_ksp.my_table(id,type,details)" -host <tserver-ip> -f export.csv -numThreads 3 -delim $'\t'
对于导入,请尝试:
./cassandra-loader -schema "my_ksp.my_table_new(id,type,details)" -host <tserver-ip> -f /home/yugabyte/entity -numThreads 3 -progressRate 200000 -numFutures 256 -rate 5000 -queryTimeout 65 -delim $'\t'