网易视频云技术分享:HBase - 建表语句解析

网易视频云的技术专家给大家分享一篇技术性文章:HBase - 建表语句解析。

  像所有其他数据库一样,HBase也有表的概念,有表的地方就有建表语句,而且建表语句还很大程度上决定了这张表的存储形式、读写性能。比如我们熟悉的MySQL,建表语句中数据类型决定了数据的存储形式,主键、索引则很大程度上影响着数据的读写性能。虽然HBase没有主键、索引这些概念,但在HBase的世界里,有些东西和它们一样重要!

  废话不说,直接奉上一条HBase建表语句,来为各位看官分解剖析:

  create ‘NewsClickFeedback‘,{NAME=>‘Toutiao‘,VERSIONS=>1,BLOCKCACHE=>true,BLOOMFILTER=>‘ROW‘,COMPRESSION=>‘SNAPPY‘,TTL => ‘ 259200 ‘},{SPLITS => [‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘]}

  上述建表语句表示创建一个表名为“NewsClickFeedback”的表,该表只包含一个列簇“Toutiao”。接下来重点讲解其他字段的含义以及如何正确设置。Note:因为篇幅有限本文并不讲解具体的工作原理,后续会有相关专题对其进行分析。

  VERSIONS

  数据版本数,HBase数据模型允许一个cell的数据为带有不同时间戳的多版本数据集,VERSIONS参数指定了最多保存几个版本数据,默认为1。假如某个用户想保存两个历史版本数据,可以将VERSIONS参数设置为2,再使用如下Scan命令就可以获取到所有历史数据:

  scan ‘NewsClickFeedback‘,{VERSIONS => 2}

  BLOOMFILTER

  布隆过滤器,优化HBase的随即读取性能,可选值NONE|ROW|ROWCOL,默认为NONE,该参数可以单独对某个列簇启用。启用过滤器,对于get操作以及部分scan操作可以剔除掉不会用到的存储文件,减少实际IO次数,提高随机读性能。Row类型适用于只根据Row进行查找,而RowCol类型适用于根据Row+Col联合查找,如下:

  Row类型适用于:get ‘NewsClickFeedback’,’row1′

  RowCol类型适用于:get ‘NewsClickFeedback’,’row1′,{COLUMN => ‘Toutiao’}

  对于有随机读的业务,建议开启Row类型的过滤器,使用空间换时间,提高随机读性能。

  COMPRESSION

  数据压缩方式,HBase支持多种形式的数据压缩,一方面减少数据存储空间,一方面降低数据网络传输量进而提升读取效率。目前HBase支持的压缩算法主要包括三种:GZip | LZO | Snappy,下面表格分别从压缩率,编解码速率三个方面对其进行对比:

  Snappy的压缩率最低,但是编解码速率最高,对CPU的消耗也最小,目前一般建议使用Snappy

  TTL

  数据过期时间,单位为秒,默认为永久保存。对于很多业务来说,有时候并不需要永久保存某些数据,永久保存会导致数据量越来越大,消耗存储空间是其一,另一方面还会导致查询效率降低。如果设置了过期时间,HBase在Compact时会通过一定机制检查数据是否过期,过期数据会被删除。用户可以根据具体业务场景设置为一个月或者三个月。示例中TTL => ‘ 259200’设置数据过期时间为三天

  IN_MEMORY

  数据是否常驻内存,默认为false。HBase为频繁访问的数据提供了一个缓存区域,缓存区域一般存储数据量小、访问频繁的数据,常见场景为元数据存储。默认情况,该缓存区域大小等于Jvm Heapsize * 0.2 * 0.25 ,假如Jvm Heapsize = 70G,存储区域的大小约等于3.2G。需要注意的是HBase Meta元数据信息存储在这块区域,如果业务数据设置为true而且太大会导致Meta数据被置换出去,导致整个集群性能降低,所以在设置该参数时需要格外小心。

  BLOCKCACHE

  是否开启block cache缓存,默认开启。

  SPLITS

  region预分配策略。通过region预分配,数据会被均衡到多台机器上,这样可以一定程度上解决热点应用数据量剧增导致系统自动split引起的性能问题。HBase数据是按照rowkey按升序排列,为避免热点数据产生,一般采用hash + partition的方式预分配region,比如示例中rowkey首先使用md5 hash,然后再按照首字母partition为16份,就可以预分配16个region。

  更多技术咨询,请关注网易视频云官方网站(vcloud.163.com)和官方微信(vcloud163)。

时间: 2024-07-29 18:57:30

网易视频云技术分享:HBase - 建表语句解析的相关文章

网易视频云技术分享:HBase高可用原理与实践

网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台.现在,网易视频云的技术专家给大家分享一则技术文:HBase高可用原理与实践. 前言 前段时间有套线上HBase出了点小问题,导致该套HBase集群服务停止了2个小时,从而造成使用该套HBase作为数据存储的应用也出现了服务异常.在排查问

网易视频云技术分享:linux软raid的bitmap分析

网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台.现在,网易视频云的技术专家给大家分享一则技术文:linux软raid的bitmap分析. 在使用raid1,raid5等磁盘阵列的时候,对于数据的可靠性有很高的要求,raid5在写的时候需要计算校验并写入,raid1则写源和镜像来保证数

网易视频云技术分享:一个SparkSQL的作业的一生

网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台.现在,网易视频云的技术专家给大家分享一则技术文:一个SparkSQL的作业的一生. Spark是时下很火的计算框架,由UC Berkeley AMP Lab研发,并由原班人马创建的Databricks负责商业化相关事务.而SparkSQ

网易视频云技术分享:记一次.gitignore的操作细节

网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台.现在,网易视频云的技术专家给大家分享一则技术文:记一次.gitignore的操作细节. "作为一个刚上路的新手司机,git操作当然要远离各种炫酷的git GUI,因为这些GUI容易使你忽略git本身的工作流程,走向万劫不复的深渊.&qu

网易视频云技术分享:Android 消息机制学习

Android消息机制大家都不陌生,想必大家也都看过Handler.Looper的源码(看过可以直接看末尾重点,一款监控APP卡顿情况的控件),下面,网易视频云技术专家就整合一下这方面的资料,加深对这方面的印象. 用法 private Handler mHandler = new Handler() {    @Override public void handleMessage(Message msg) {        switch (msg.what) {            case

网易视频云技术之视频预处理技术

视频编码技术是网易视频云技术中重要的一环,这里提供大家学习,欢迎大家与网易视频云进行技术交流讨论. 一.    概述 视频编码包括分离.解码.编码.合成四部分,在分离与解码.合成部分可以认为是一种无损操作,而通常采用的编码如H264.MPEG-4等(无损压缩除外)是一种有损压缩. 为了提高视频编码后的质量,我们尝试在Encoder的数据输入之前增加一种预处理,用来弥补在编码过程中的亮度和色度的损失.从而提高视频的清晰度. 二.    预处理方法 通过改变视频的亮度.对比度.饱和度(色度)来进行锐

网易视频云技术分析:IOS工程常见问题解决方法

网易视频云是网易推出的视频云服务,目前已经y广泛应用于在线教育.秀场直播.远程医疗.企业协作等领域.现在,网易视频云的技术专家们给大家分享一则移动APP测试技术文:IOS工程常见问题解决方法. 最近在做IOS测试时,碰到了几个环境引起的问题,主要是开发工具新版本及IOS系统新版本特性导致.现挑取两个比较典型的问题来分享给大家. 1. Xcode版本引出的问题 问题描述:开发提测时,创建的工程是在xcode6版本上创建的,而测试环境使用新的版本Xcode7,将开发提测工程导入后进行编译报如下错误:

网易视频云:流媒体服务器原理和架构解析

网易视频云是网易公司旗下的视频云服务产品,以Paas服务模式,向开发者提供音视频编解码SDK和开放API,助力APP接入音视频功能.今天,网易视频云的技术专家给大家分享一篇流媒体技术性文章:流媒体服务器原理和架构解析. 一个完整的多媒体文件是由音频和视频两部分组成的,H264.Xvid等就是视频编码格式,MP3.AAC等就是音频编码格式,字幕文件只是附加文件.目前大部分的播放器产品对于H.264 + AAC的MP4编码格式支持最好,但是MP4也有很多的缺点,比如视频header很大,影响在线视频

网易视频云分享:流媒体技术介绍(下篇)

网易视频云干货系列--流媒体技术介绍之下篇和大家见面了!上篇的分享从传统流媒体的技术特点等方面进行分析.中篇的分享举例对比了企业方案.本次的分享将主要举例国际技术标准的解决方案,对比分析各自的优缺点. 目前,HAS技术的实现方式从标准的类型来看主要有两大类:一类是企业方案,即提供了整体的技术解决方案,如Apple Live Streaming技术.Adobe Dynamic Streaming技术.Microsoft Smooth Streaming技术:另一类是一些国际标准组制定的技术标准,如