我的 BigTable 架构会导致热点吗?
Posted
技术标签:
【中文标题】我的 BigTable 架构会导致热点吗?【英文标题】:Will my BigTable schema result in hotspotting? 【发布时间】:2021-11-27 23:36:11 【问题描述】:这是我的架构
这里有一些示例数据
此行键结构$PipelineId--$PipelineRunTime
的行将不经常写入,但数据量会大得多,并不是说它会接近超过数据的行限制。这种结构$ContentID--$ContentType--$PipelineName
的行将更频繁地创建,但数据更少
这就是我打算查询BT的方式
阅读所有labels
$PipelineName
和$PipelineRunTime
在labels
中为$PipelineName
在任何PipelineRunTime
中是$ContentID
?
阅读$ContentID
为任何$PipelineName
返回所有labels
【问题讨论】:
您的内容 ID 是连续的吗? @guillaumeblaquiere 不,它们是 UUID 【参考方案1】:BigTable 上下文中的热点情况与密钥分配及其请求率有关。有两个问题:
-
如何在后端分发密钥,以及
如果热键在分布中距离较远。
例如,如果您有 100 万个密钥并且请求仅针对其中两个,则容量通常会限制为 1 或 2 个后端。
-
如果密钥是连续的,则可能有一个后端同时为两个密钥提供服务(在高请求率时会成为热点)。
如果键不是连续的,则有可能两个后端会为它们提供服务。
当您尝试将时间用作密钥的一部分时,您应该查看:
Schema design for time series data [YT Video] Visualizing Cloud Bigtable Access Patterns [YT Video] Designing Row keys for Bigtable要了解性能特征、访问模式并确定是否会出现热点,您应该运行性能测试并使用关键的可视化工具,然后在需要时应用优化。
Understanding BigTable performance Overview of Key Visualizer【讨论】:
如果您对我的回答有任何澄清或疑问,请告诉我。如果您认为我的回答中的信息有帮助,您可以接受或投票。以上是关于我的 BigTable 架构会导致热点吗?的主要内容,如果未能解决你的问题,请参考以下文章