我有一个在clickhouse重复数据的问题。我的情况是,我有记录的部分,然后我必须分组所有这些部分的text_id。零件到达时间可能在不同时间
例如:
id,text_id,total_parts,part_number,text
101,11,3,1,How
102,12,2,2,World
103,12,2,1,Hello
104,11,3,3,you
105,11,3,2,are
,结果应该是这样的:
text_id,text
11, How are you
12, Hello World
创建视图把所有的部分组合起来,它工作得很好。但是当我从这个视图中读取时我想要删除已经读取的行。我试图向表中添加一列,称为flag,然后将该列更新为1,然后将视图更改为读取flag = 0。但我在clickhouse的文档中看到,更新它会降低性能。和我的表十亿记录。
1-如果我不能删除已处理的记录,视图将会很慢。
2-如果没有性能问题,我不想再读取处理过的数据。
任何建议吗?
最接近的结果是文本列数组:
SELECT groupArray(text) as msg
FROM
(SELECT * ROM merge_rows ORDER BY text_id, part_number)
GRUP BY text_id
┌─msg─────────────────┐
│ ['Hello','World'] │
│ ['How','are','you'] │
└─────────────────────┘
因为你有十亿集成到物化视图中会非常快。