Cassandra加载选项

时间:2016-11-21 20:37:16

标签: apache-spark google-cloud-platform datastax datastax-enterprise

我在Google Cloud中部署了一个9节点的DataStax群集。我是Cassandra的新手,并不确定人们如何将数据推送到Cassandra。

我的要求是从flatfiles和RDBMs表中读取数据并加载到部署在Google Cloud中的Cassandra。

这些是我看到的选项。

   1. Use Spark and Kafka
   2. SStables
   3. Copy Command
   4. Java Batch
   5. Data Flow ( Google product )

还有其他选择,哪一个最好。

谢谢,

1 个答案:

答案 0 :(得分:0)

对于平面文件,您有2种最有效的选择:

  1. 使用Spark-它将并行加载数据,但需要一些编码。
  2. 使用DSBulk从命令行批量加载数据。它支持从CSV和JSON加载,并且非常有效。 DataStax的Academy博客刚刚在DSBulk上开始了一系列博客文章,first post将为您提供足够的信息来开始它。另外,如果您有大文件,请考虑将其拆分为较小的文件,因为这将允许DSBulk使用所有可用线程执行并行加载。

要从RDBMS加载数据,取决于您要执行的操作-一次加载数据,或者需要随着数据库中数据的更改而更新数据。对于第一种选择,您可以将Spark与JDBC源一起使用(但它也有一些限制),然后将数据保存到DSE中。第二,您可能需要使用类似Debezium的东西,该东西支持将更改数据从某些数据库流式传输到Kafka。然后,您可以从Kafka使用DataStax Kafka Connector将数据提交到DSE。

CQLSH的COPY命令不如DSBulk有效/灵活,所以我不建议使用它。

并且永远不要使用CQL Batch进行数据加载,直到您知道它是如何工作的为止-它与RDBMS世界有很大的不同,并且如果使用不正确,它的加载效率将大大低于异步执行单独的语句。 (DSBulk在后台使用批处理,但这是另一回事。)