【发布时间】:2014-07-01 10:09:14
【问题描述】:
致 Cassandra 专家:我的任务是提出有关 Cassandra CQL 脚本管理和部署的建议。团队如何管理(应该管理)大量 CQL 脚本(模式定义脚本 (DDL)、数据操作脚本 (INSERT/UPDATE/DELETE) 从 Cassandra 开发开始到随后更改应用程序模式模型。如果可以的话,我想指出的是,开发团队的规模并没有那么小(每个应用功能领域 10 多个开发人员)。
一种方法(可能是错误的方法)是做典型的关系数据库商店会做的事情:应用程序开发人员或开发 dbas 设计和创建 ddl、dml 等脚本,在版本控制系统(例如 SVN)中存储和维护它们),并使用一些自动化(可能像 shell 或 perl 脚本一样简单)在环境(dev、qc 等)中部署脚本。我认为这在 NoSQL 解决方案(如 Cassandra)中出现问题的地方是这三个步骤中涉及的参与者。
1 - 设计和创建 CQL 脚本 - 这应该由 DevOps(cassandra 管理员)还是应用程序开发人员来完成?
(2) 在 SVN 中存储和维护它们 - 是否应该类似于上述 (1) 和 (3) 脚本部署 - 应用程序开发人员是否应该这样做(或)DevOps 这样做?
我还想从应用程序模式控制和审计的角度得到答案。例如,对于上面的#1 和#2,如果应用程序开发人员在 SVN 中设计、创建和存储 CQL 脚本,如何能够控制进入 CQL 模式的内容并防止代价高昂的错误。如果有专门的单一团队拥有数据模型,而不是所有 cassandra 开发人员(类似于 DBA/管理员),则更容易实现这种控制。
我希望以前做过这方面工作的人能够对大型环境中 CQL 代码开发、部署和维护的选择和最佳实践有所了解。 一如既往地感谢。
【问题讨论】:
-
我发布这个问题已经几个月了,但没有多少人发表评论......开始怀疑我对 CQL 开发的期望是否太高。
-
我认为这是每个人都有的问题,但没有简单的解决方案,因为 Cassandra 中的迁移从来没有关系数据库那么简单。
标签: database cassandra build-process cql datastax