首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clickhouse柱结构

Clickhouse柱结构
EN

Stack Overflow用户
提问于 2019-07-16 15:01:49
回答 1查看 756关注 0票数 0

我将统计数据存储在MySQL中,并希望将其迁移到Clickhouse。

对于一个实体,我有多个统计类型。例如:clicksviewsupvotes

现在我将它存储在如下表中:entity_id | datetime | type | value,其中type是一个常量整数,它对应于上面描述的一种统计数据类型。

在Clickhouse中保留相同的结构还是创建下一个模式:entity_id | datetime | clicks | views | upvotes

据我所知,Clickhouse是面向列的DB。这是否意味着当我们需要添加新列时,Clickhouse可以进行零成本更改?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-17 19:24:17

在Clickhouse中保持相同的结构还是创建下一个架构更好?

如果clicks | views | upvotes与同一个entity_id相关,那么为每个值创建一个列是有意义的。通过这样做,您将运行一个查询,并获得包含所需所有数据的行。

另一方面,如果将表创建为entity_id | datetime | type | value,那么就可以灵活地使用更多的统计类型(可能是mouse_enter作为第4种类型)。同时,您将有重复的entity_iddatetime值,这将花费您的磁盘使用,您的表将有3x行。正如你所看到的,在每个决定之间都有一个权衡。该由你来决定该选哪一个。如果您认为只有clicks | views | upvotes就足够了,那么使用这个模式就更有意义了。

Clickhouse是面向列的DB。这是否意味着当我们需要添加新列时,Clickhouse可以进行零成本更改?

是的,Clickhouse是面向列的,每一列都是磁盘上的单独文件.因此,如果您创建一个新列,则几乎没有开销。但是,根据操作的不同,如果使用表突变或更改类型,更改列将需要时间。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57060263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档