我在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 )
还有其他选择,哪一个最好。
谢谢,
答案 0 :(得分:0)
对于平面文件,您有2种最有效的选择:
要从RDBMS加载数据,取决于您要执行的操作-一次加载数据,或者需要随着数据库中数据的更改而更新数据。对于第一种选择,您可以将Spark与JDBC源一起使用(但它也有一些限制),然后将数据保存到DSE中。第二,您可能需要使用类似Debezium的东西,该东西支持将更改数据从某些数据库流式传输到Kafka。然后,您可以从Kafka使用DataStax Kafka Connector将数据提交到DSE。
CQLSH的COPY命令不如DSBulk有效/灵活,所以我不建议使用它。
并且永远不要使用CQL Batch进行数据加载,直到您知道它是如何工作的为止-它与RDBMS世界有很大的不同,并且如果使用不正确,它的加载效率将大大低于异步执行单独的语句。 (DSBulk在后台使用批处理,但这是另一回事。)