首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在包含YugaByte列的表上使用cassandra-loader/cassandra-unloader导出/导入数据的正确方法是什么

在包含YugaByte列的表上使用cassandra-loader/cassandra-unloader导出/导入数据的正确方法是什么
EN

Stack Overflow用户
提问于 2019-08-26 17:07:11
回答 1查看 206关注 0票数 1

我尝试使用这里描述的步骤https://docs.yugabyte.com/v1.1/manage/data-migration/cassandra/bulk-export/

wget https://github.com/YugaByte/cassandra-loader/releases/download/v0.0.27-yb-2/cassandra-loader

wget https://github.com/YugaByte/cassandra-loader/releases/download/v0.0.27-yb-2/cassandra-unloader chmod a+x cassandra-unloader chmod a+x cassandra-loader

由于上述工具都是基于JVM的,因此请安装开放式jdk

sudo yum install java-1.8.0-openjdk

然后使用以下命令导出行:

% cd /home/yugabyte/entity % ./cassandra-unloader -schema "my_ksp.my_table(id,type,details)" -host <tserver-ip> -f export.csv -numThreads 3 Total rows retrieved: 10000

这里的details是一个JSONB列。接下来,我在同一个集群中创建了一个新表my_table_new,并尝试将此数据加载到

./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

但是会得到以下形式的错误:

Row has different number of fields (12) than expected (3)

看起来是CSV文件中的默认分隔符“,”导致了这个问题,因为CSV文件中的JSONB数据也有逗号。

作为替代方法,尝试将-delim “\t”传递给cassandra-unloader--但这似乎插入了两个字符“\”和“t”,而不是单制表符。这是意料之中的吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-08 13:50:01

您是正确的,使用cassandra-unloader/cassandra-loader时,默认分隔符(",")在Yugabyte中存在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'

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57654892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档