Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 使用CQL脚本的Cassandra模式管理_Database_Cassandra_Build Process_Cql_Datastax - Fatal编程技术网

Database 使用CQL脚本的Cassandra模式管理

Database 使用CQL脚本的Cassandra模式管理,database,cassandra,build-process,cql,datastax,Database,Cassandra,Build Process,Cql,Datastax,对于Cassandra专家:我的任务是提出关于Cassandra CQL脚本管理和部署的建议。团队如何管理(应该管理)大量CQL脚本(模式定义脚本(DDL)、数据操作脚本(INSERT/UPDATE/DELETE),从Cassandra开发之初到应用程序模式模型的后续更改。如果可以的话,我想指出,开发团队的规模并不是那么小(每个应用程序功能领域有10多名开发人员) 一种方法(可能是错误的方法)是做一个典型的关系数据库商店会做的事情:应用程序开发人员或开发DBA设计和创建ddl、dml等脚本,在版

对于Cassandra专家:我的任务是提出关于Cassandra CQL脚本管理和部署的建议。团队如何管理(应该管理)大量CQL脚本(模式定义脚本(DDL)、数据操作脚本(INSERT/UPDATE/DELETE),从Cassandra开发之初到应用程序模式模型的后续更改。如果可以的话,我想指出,开发团队的规模并不是那么小(每个应用程序功能领域有10多名开发人员)

一种方法(可能是错误的方法)是做一个典型的关系数据库商店会做的事情:应用程序开发人员或开发DBA设计和创建ddl、dml等脚本,在版本控制系统(例如SVN)中存储和维护它们,并使用某种自动化在环境(开发人员、质量控制人员等)中部署脚本(可能与shell或perl脚本一样简单)。我认为NoSQL解决方案(如Cassandra)中出现问题的地方在于这三个步骤中涉及的参与者。 1-设计和创建CQL脚本-这应该由DevOps(cassandra管理员)或应用程序开发人员完成吗?
(2) 在SVN中存储和维护它们-这应该类似于上面的(1)和(3)脚本部署-应用程序开发人员应该这样做(或)DevOps这样做吗? 我还想从应用程序模式控制和审计的角度得到答案。例如,对于上面的#1和#2,如果应用程序开发人员在SVN中设计、创建和存储CQL脚本,如何能够控制进入CQL模式的内容并防止代价高昂的错误。如果有专门的、单一的团队拥有数据模型,那么与所有cassandra开发人员(类似于DBA/Administrators)相比,实现这种控制更容易

我希望以前做过这项工作的人能够深入了解大型环境中CQL代码开发、部署和维护的选择和最佳实践。
一如既往地感谢您。

我认为您将面临的主要问题是,您需要编写代码来执行一些迁移,这与在典型SQL场景中应用增量修补程序有很大区别。对架构的基本更改(使用CQL定义)可以使用DevOps/DBA风格的
cqlsh
工具轻松应用。这些类型的更改包括添加列和删除列。但是如果您需要做一些更基本的事情,那么您必须编写CQL客户端代码来迁移旧数据。对于更非规范化和非声明性的数据,尤其如此为应用程序编制索引需要


FWIW和YMMV我能够自动化CQL模式管理的一个方面,即找到保持模式和应用程序代码同步的方法。为此,我编写了一个生成样板应用程序源代码的程序,以便数据绑定始终与Cassandra中的当前模式同步。但这只是整体的一个方面l问题。

我发布这个问题已经几个月了,但没有多少人发表评论……开始怀疑我对CQL开发的w.r.t期望是否太高。我认为这是每个人都有的问题,但没有一个简单的解决方案,因为Cassandra中的迁移从来没有关系数据库那么简单。