如何制作Cassandra DBA的表格更改&加法?

时间:2015-07-08 23:53:04

标签: cassandra cassandra-2.0

我感兴趣的是Cassandra 生产 DBA的流程如何在使用Cassandra并在一年内执行多个版本时发生变化。在发布期间,表中的列会频繁更改,因此Cassandra表的数量也会更改,因为支持新功能和查询。

在关系数据库中,在生产中,您可以创建“视图”和BOOM,从而获得已存在的数据 - 从视图的查询中加载。

使用Cassandra,DBA是否必须创建一个新的Cassandra表并且必须编写/运行脚本以将所有必需的数据复制到该表中?生产级别的Cassandra DBA可以为他们的流程提供一些指示吗?

1 个答案:

答案 0 :(得分:1)

我们经营一家小商店,所以我可以告诉你我如何管理表/密钥空间的变化,这可能与其他人完成它的方式不同。首先,我在我们的(私有)Git存储库中保留一个文本.cql文件,该存储库包含当前格式的所有表和键空间。进行更改时,我会更新该文件。这使得其他开发人员可以了解当前表的外观,而无需使用SSH或DevCenter。这还有一个额外的好处,即为我们提供一个文件,允许我们使用一个命令恢复我们的模式。

如果这是一个小小的改动(比如添加新专栏),我会在部署应用程序代码之前尝试解决这个问题。如果它是一个新表,我可能会更早创建,因为没有代码使用它的新表确实不会伤害任何东西。

但是,如果这是一个重大变化......例如更新/删除现有列或更改密钥......我将把它创建为新表。这样,我们可以部署我们的代码来使用新表,没有人知道我们在幕后切换了一些东西。显然,如果表中需要包含数据,我会提前准备好导出/导入脚本,并在部署后立即运行。

拥有企业部署的大型公司使用Chef等工具来管理其架构部署。当您拥有大量节点或群集时,自动部署工具确实是最佳方式。