我有一个具有以下结构的SQL表 -
Ticket_info
ticket_num int
region text
division text
error_count text
PRIMAR KEY (ticket_num,region)
由于票证数据库可能会变大,我们计划存储在cassandra中。
唯一的问题是用户可以查询上面显示的任何字段。
我打算将数据非规范化 -
Ticket_info_region
ticket_num int
region text
PRIMAR KEY (ticket_num,region)
Ticket_info_division
ticket_num int
division text
PRIMAR KEY (ticket_num,division)
Ticket_info_error_count
ticket_num int
error_count text
PRIMAR KEY (ticket_num,error_count)
通过上述结构,我看到了2个问题。
如果用户提供多个条件,我应该手动合并结果吗?
使用多个表,我如何保持数据完整性。例如: - 在我插入区域表后,如果分区表失败,我将有完整性问题。
答案 0 :(得分:2)
不要使用cassandra一起查询所有表。如果需要这样的条件,请使用与solr / elasticsearch集成的cassandra。 Datastax提供了一个solr实现。
使用Batch updates进行原子更新。这将确保执行所有更新,如果失败,则不会更新任何内容。