Citus 与 jsonb 关系的共置

Citus co-location with jsonb relation

我正在尝试使用 citus 在集群中共同定位表,但在 json 方案的表中提到了这种关系,如下例所示:

TABLE person(
    id uuid PRIMARY KEY,
    ...
);

TABLE event(
    id uuid PRIMARY KEY,
    resource jsonb NOT NULL,
    ...
);

并且在资源列中提到了关系,在这个例子中也是如此:

resource{
    ...,
    subjetc{
        resource_type: person,
        reference: uuid
    }
}

是否可以创建分布式表,以便它们通过这种关系位于同一位置?

不,这目前是不可能的。您必须向事件 table 添加一个与 resource->>subject->>reference 具有相同内容的 subject_id 列才能使此工作正常进行。这确实会稍微复制数据,但这是目前唯一受支持的方式。