繁体   English   中英

如何运行 dsbulk unload 并直接写入 S3

[英]How do I run dsbulk unload and write directly to S3

我想运行 dsbulk unload 命令,但我的 cassandra 集群在我想要导出的表中有 ~1tb 的数据。 有没有办法运行 dsbulk unload 命令并将数据流式传输到 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://...

但有一个限制——卸载将在一个线程中执行,因此卸载可能会慢得多。

在短期内,您可以通过 Spark Cassandra 连接器在本地主模式下使用 Apache Spark,如下所示(对于 Spark 2.4):

spark-shell --packages com.datastax.spark:spark-cassandra-connector-assembly_2.11:2.5.1

和里面:

val data = spark.read.format("org.apache.spark.sql.cassandra")\
   .options(Map( "table" -> "table_name", "keyspace" -> "keyspace_name")).load()
data.write.format("json").save("s3a://....")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM