6

我最近开始处理大量数据,这些数据也需要通过常规事务处理。

选择 Cassandra,我的数据模型使用动态列。我知道使用 CQL 可以更改表并插入或查询列以获取所需的数据。

但是,我在 Cassandra 中使用带有 Scala 的 Phantom 客户端并阅读了文档,但我找不到写入或查询动态列族的方法。

鉴于我们使用案例类,如何在 Scala 中使用 Cassandra 处理动态列?

4

1 回答 1

6

我建议您不要将表模式作为数据模型的一部分进行动态更改。Cassandra 是一个面向行的数据库,在分区内对行进行分区和集群。因此,无论您试图通过添加或删除列来表示什么,都可以通过在一组固定的列中设置值来更好地处理。

尽管 Cassandra 允许更改表定义以添加和删除列,但这通常只会在向应用程序添加新功能时完成,因此您将让操作员手动更改架构,然后使用修改后的应用程序代码来使用新架构。

我认为客户端应用程序通过创建或更改表来修改架构是危险的,因为您冒着让多个客户端同时进行更改的风险。

于 2015-12-13T22:14:32.550 回答