卡桑德拉一对一的关系

时间:2016-02-25 03:39:12

标签: cassandra

我有一个具有以下结构的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个问题。

  1. 如果用户提供多个条件,我应该手动合并结果吗?

  2. 使用多个表,我如何保持数据完整性。例如: - 在我插入区域表后,如果分区表失败,我将有完整性问题。

1 个答案:

答案 0 :(得分:2)

  1. 不要使用cassandra一起查询所有表。如果需要这样的条件,请使用与solr / elasticsearch集成的cassandra。 Datastax提供了一个solr实现。

  2. 使用Batch updates进行原子更新。这将确保执行所有更新,如果失败,则不会更新任何内容。