Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
Cassandra 如何运行dsbulkunload并直接写入S3_Cassandra_Datastax_Dsbulk - Fatal编程技术网

Cassandra 如何运行dsbulkunload并直接写入S3

Cassandra 如何运行dsbulkunload并直接写入S3,cassandra,datastax,dsbulk,Cassandra,Datastax,Dsbulk,我想运行dsbulk unload命令,但我的cassandra集群在我要导出的表中有~1tb的数据。是否有一种方法可以运行dsbulkunload命令并将数据流式传输到s3,而不是写入磁盘 我在我的开发环境中运行以下命令,但显然这只是在我的机器上写入磁盘 bin/dsbulk unload-k myKeySpace-t myTable-url~/data--connector.csv.compression gzip它不支持“本机”开箱即用。理论上它可以实现,就像现在的DSBulk一样,但它应

我想运行dsbulk unload命令,但我的cassandra集群在我要导出的表中有~1tb的数据。是否有一种方法可以运行dsbulkunload命令并将数据流式传输到s3,而不是写入磁盘

我在我的开发环境中运行以下命令,但显然这只是在我的机器上写入磁盘

bin/dsbulk unload-k myKeySpace-t myTable-url~/data--connector.csv.compression gzip

它不支持“本机”开箱即用。理论上它可以实现,就像现在的DSBulk一样,但它应该由某人来完成

更新: 正如Adam所指出的,解决方法可以是使用
aws s3 cp
并从DSBulk向其输送,如下所示:

dsbulk unload .... |aws s3 cp - s3://...
但是有一个限制-卸载将在一个线程中执行,因此卸载可能会慢得多

短期内,您可以在本地主模式下使用ApacheSpark和Spark Cassandra连接器,类似这样(对于Spark 2.4):

sparkshell--packages com.datasax.spark:spark-cassandra-connector-assembly_2.11:2.5.1
和内部:

val data=spark.read.format(“org.apache.spark.sql.cassandra”)\
.options(映射(“表”->“表名称”、“键空间”->“键空间名称”)).load()
data.write.format(“json”).save(“s3a://…”)

是否有任何理由一个人不应该将dsbulk stdout直接传输到aws s3 cp?一个线程执行,但是是的-这是一个很好的观点,让我更新一下