Cassandra 如何制作卡桑德拉DBA';s做表格更改&;补充?

Cassandra 如何制作卡桑德拉DBA';s做表格更改&;补充?,cassandra,cassandra-2.0,Cassandra,Cassandra 2.0,我对Cassandra生产DBA在使用Cassandra并在一年内执行多个版本时的流程变化很感兴趣。在发布期间,由于支持新功能和查询,表中的列会频繁更改,Cassandra表的数量也会频繁更改 在关系数据库中,在生产环境中,您创建“视图”,并从视图的查询中获取已经加载的数据 对于Cassandra,DBA是否必须创建一个新的Cassandra表,并且必须编写/运行一个脚本以将所有必需的数据复制到该表中?生产级别的Cassandra DBA能否提供一些有关其流程的指针?我们经营一家小商店,因此我可

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

在关系数据库中,在生产环境中,您创建“视图”,并从视图的查询中获取已经加载的数据


对于Cassandra,DBA是否必须创建一个新的Cassandra表,并且必须编写/运行一个脚本以将所有必需的数据复制到该表中?生产级别的Cassandra DBA能否提供一些有关其流程的指针?

我们经营一家小商店,因此我可以告诉您我如何管理表/键空间更改,这可能与其他人完成更改的方式不同。首先,我在我们的(私有)Git存储库中保留一个text
.cql
文件,其中所有表和键空间都采用当前格式。进行更改时,我会更新该文件。这让其他开发人员知道当前表的外观,而不必使用SSH或。这还有一个额外的优点,即为我们提供了一个文件,允许我们使用单个命令恢复模式

如果这是一个小的改变(比如添加一个新的专栏),我将在部署应用程序代码之前尝试将其公开。如果它是一个新表,我可能会更早地创建它,因为没有代码使用它的新表实际上不会造成任何伤害

但是,如果这是一个重大更改…例如更新/删除现有列或更改键…我将创建一个新表。这样,我们就可以部署代码来使用新表,而且没有人知道我们在幕后切换了什么。显然,如果表中需要数据,我会提前准备好导出/导入脚本,并在部署后立即运行这些脚本

具有企业部署的大型公司使用诸如管理其模式部署之类的工具。当您有大量节点或集群时,自动化部署工具确实是最好的方法