OpenTSDB Hbase RowKey设计

OpenTSDB Hbase RowKey design

OpenTSDB 行键设计为 .我可以理解密钥的设计导致在写入数据时避免热点。但是在阅读时,如果我看到与特定主机对应的所有指标,它会导致从随机区域服务器读取数据。那么它是如何导致读取性能优化的呢。有没有对按键设计的读取模式做出假设。

此架构对于给定系列集(指标+标签)的时间范围查询非常有效。任何其他查询,例如获取给定服务器收集的所有指标的最后一个值,都需要进行全面扫描。

根据克里斯·拉森

OpenTSDB 的假设是大多数仪表板和用户将在给定时间关注特定指标或一小组指标,其中指标是跨主机或各种标签的聚合。例如,我的平均或最大 CPU 使用量是多少?

跨多个区域服务器查询实际上是一个巨大的好处,因为您可以并行触发查询,例如如果您要求 "sys.cpu.busy host=web01" 和 "sys.if.bytes_out host=web01"... 并且您有多个区域服务器,则 TSD 会将这两个指标发送出去,可能会发送到两个服务器,并且它们可以并行处理,而不是同时处理在同一台服务器上的 HBase 队列中,并在线程可用时处理它们。

此外,在 2.2 中,您可以为行键启用加盐,因此现在是 .这有助于通过跨区域服务器并行拆分每个指标查询来查询高基数指标(例如大量主机)。