Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在具有JSONB列的表上,使用cassandra loader/cassandra unloader for YugaByte DB导出/导入数据的正确方法是什么_Database_Distributed Database_Yugabyte Db - Fatal编程技术网

Database 在具有JSONB列的表上,使用cassandra loader/cassandra unloader for YugaByte DB导出/导入数据的正确方法是什么

Database 在具有JSONB列的表上,使用cassandra loader/cassandra unloader for YugaByte DB导出/导入数据的正确方法是什么,database,distributed-database,yugabyte-db,Database,Distributed Database,Yugabyte Db,我尝试使用这里描述的步骤 wgethttps://github.com/YugaByte/cassandra-loader/releases/download/v0.0.27-yb-2/cassandra-loader wgethttps://github.com/YugaByte/cassandra-loader/releases/download/v0.0.27-yb-2/cassandra-unloader chmod a+x卡桑德拉卸船机 chmod a+x卡桑德拉装载机 由于以上工具都

我尝试使用这里描述的步骤

wgethttps://github.com/YugaByte/cassandra-loader/releases/download/v0.0.27-yb-2/cassandra-loader
wgethttps://github.com/YugaByte/cassandra-loader/releases/download/v0.0.27-yb-2/cassandra-unloader chmod a+x卡桑德拉卸船机 chmod a+x卡桑德拉装载机

由于以上工具都是基于JVM的,所以安装了OpenJDK
sudo-yum安装java-1.8.0-openjdk

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

%cd/home/yugabyte/entity
%./cassandra卸载程序-模式“my_ksp.my_表(id、类型、详细信息)”-主机-f export.csv-numThreads 3
检索到的行总数:10000

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

/cassandra loader-schema“my_ksp.my_table_new(id,type,details)”-host-f/home/yugabyte/entity-numThreads 3-progressRate 200000-numFutures 256-rate 5000-queryTimeout 65

但是得到表单的错误:
行的字段数(12)不同于预期的字段数(3)

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


作为替代方法,尝试将
-delim“\t”
传递给cassandra卸载程序——但这似乎插入了两个字符“\”和“t”,而不是单个制表符。这是预期的吗?

对于cassandra卸载程序/cassandra加载程序,默认分隔符(“,”)在Yugabyte DB中存在YQL JSONB列时不起作用,这是正确的

关于:

>

使用tab作为分隔符应该可以正常工作。但是unix shell需要一些转义才能正确地将“\t”传递给程序。请参阅:

使用:
-delim$'\t'
而不是
-delim“\t”

例如,对于导出,请尝试:

/cassandra卸载程序-schema“my_ksp.my_表(id、类型、详细信息)”-host-f export.csv-numThreads 3-delim$'\t'

对于导入,请尝试:

/cassandra loader-schema“my_ksp.my_table_new(id,type,details)”-host-f/home/yugabyte/entity-numThreads 3-progressRate 200000-numFutures 256-rate 5000-queryTimeout 65-delim$'\t'