卡桑德拉查询多个列



我们计划将所有工单存储在Cassandra db中,这是定义的表。

CREATE TABLE tickets_info (
    ticket_num text,
    created_dt timestamp,
    division text,
    pg text,
    duration text,
    error_count text,
    outage_caused text,
    system_caused text,
    addt_notes text,
    ticket_type text,
    row_create_ts timestamp,
    PRIMARY KEY (ticket_num,created_dt)
) WITH CLUSTERING ORDER BY (created_dt DESC)

我的背景主要是SQL和设计表后,我注意到我无法查询除ticket_num和created_dt以外的表,因为其他列没有:(索引。

我需要的是用户应该根据所有这些列编写查询。

我应该为每个查询条件创建多个表吗?

Table_1

CREATE TABLE ticket_info_division(
     ticket_num text,
     created_dt ts,
     division text
     PRIMARY KEY ((ticket_num, created_dt), division)
)

Table_2

CREATE TABLE ticket_info_pg(
     ticket_num text,
     created_dt ts,
     pg text
     PRIMARY KEY ((ticket_num, created_dt), pg)
)

Table_3

CREATE TABLE ticket_info_pg(
     ticket_num text,
     created_dt ts,
     duration text
     PRIMARY KEY ((ticket_num, created_dt), duration)
)

并合并所有结果?

我应该为每个查询条件创建多个表吗?

是的,这是Cassandra数据建模的基础,我们称之为非规范化。现在,随着物化视图的引入,开发人员更容易,因为将基表与所有视图同步的负担由 Cassandra 完成。在此处阅读更多内容: http://www.doanduyhai.com/blog/?p=1930

最新更新