codecamp

HBase表格模式经验法则

HBase表格模式经验法则

在 HBase 中有许多不同的数据集,具有不同的访问模式和服务级别期望。因此,这些经验法则只是一个概述。

  • 目标区域的大小介于10到50 GB之间。
  • 目的是让单元格不超过10 MB,如果使用 mob,则为50 MB 。否则,请考虑将您的单元格数据存储在 HDFS 中,并在 HBase 中存储指向数据的指针。
  • 典型的模式在每个表中有1到3个列族。HBase 表不应该被设计成模拟 RDBMS 表。
  • 对于具有1或2列族的表格,大约50-100个区域是很好的数字。请记住,区域是列族的连续段。
  • 尽可能短地保留列族名称。列族名称存储在每个值 (忽略前缀编码) 中。它们不应该像在典型的 RDBMS 中一样具有自我记录和描述性。
  • 如果您正在存储基于时间的机器数据或日志记录信息,并且行密钥基于设备 ID 或服务 ID 加上时间,则最终可能会出现一种模式,即旧数据区域在某个时间段之后永远不会有额外的写入操作。在这种情况下,最终会有少量活动区域和大量没有新写入的较旧区域。对于这些情况,您可以容忍更多区域,因为您的资源消耗仅由活动区域驱动。
  • 如果只有一个列族忙于写入,则只有该列族兼容内存。分配资源时请注意写入模式。
HBase模式(Schema) 创建
HBase列族数量
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

HBase快速入门

HBase批量加载

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }