我在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 )
有没有其他选择,哪一个最好。
谢谢,
对于平面文件,您有2个最有效的选项:
对于从RDBMS加载数据,它取决于您想要做什么 - 加载数据一次,或者需要在数据库中更改数据时更新数据。对于第一个选项,您可以将Spark与JDBC源一起使用(但它也有一些限制),然后将数据保存到DSE中。对于2nd,您可能需要使用类似Debezium的东西,它支持将变更数据从一些数据库流式传输到Kafka。然后从Kafka您可以使用DataStax Kafka Connector将数据提交到DSE。
CQLSH的COPY命令不如DSBulk有效/灵活,因此我不建议使用它。
并且永远不要使用CQL Batch进行数据加载,直到你知道它是如何工作的 - 它与RDBMS世界非常不同,如果使用不正确,它实际上会使加载不如异步执行单独的语句有效。 (DSBulk使用引擎盖下的批次,但这是不同的故事)。