我的 BigTable 架构会导致热点吗?

Posted

技术标签:

【中文标题】我的 BigTable 架构会导致热点吗?【英文标题】:Will my BigTable schema result in hotspotting? 【发布时间】:2021-11-27 23:36:11 【问题描述】:

这是我的架构

这里有一些示例数据 此行键结构$PipelineId--$PipelineRunTime 的行将不经常写入,但数据量会大得多,并不是说它会接近超过数据的行限制。这种结构$ContentID--$ContentType--$PipelineName 的行将更频繁地创建,但数据更少

这就是我打算查询BT的方式

阅读所有labels $PipelineName$PipelineRunTimelabels 中为$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 架构会导致热点吗?的主要内容,如果未能解决你的问题,请参考以下文章

Bigtable 行键场景避免热点?

redis架构模式(6)数据倾斜

热点缓存的架构优化

谷歌云架构:数据湖可以用于 OLTP 吗?

BigTable:来自不同列族的两个列限定符可以具有相同的名称吗?

你知道如何用多级缓存提升秒杀系统的服务性能吗