Cassandra加载选项

问题描述 投票:1回答:1

我在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 )

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

谢谢,

apache-spark google-cloud-platform datastax datastax-enterprise
1个回答
0
投票

对于平面文件,您有2个最有效的选项:

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

对于从RDBMS加载数据,它取决于您想要做什么 - 加载数据一次,或者需要在数据库中更改数据时更新数据。对于第一个选项,您可以将Spark与JDBC源一起使用(但它也有一些限制),然后将数据保存到DSE中。对于2nd,您可能需要使用类似Debezium的东西,它支持将变更数据从一些数据库流式传输到Kafka。然后从Kafka您可以使用DataStax Kafka Connector将数据提交到DSE。

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

并且永远不要使用CQL Batch进行数据加载,直到你知道它是如何工作的 - 它与RDBMS世界非常不同,如果使用不正确,它实际上会使加载不如异步执行单独的语句有效。 (DSBulk使用引擎盖下的批次,但这是不同的故事)。

© www.soinside.com 2019 - 2024. All rights reserved.