当前位置: 首页 > news >正文

HBase难点

查询优化

  • 一次Scan会返回大量数据,客户端向HBase发送一次Scan请求,实际上并不会将所有数据加载到本地,而是通过多次RPC请求进行加载,防止客户端OOM。
  • 禁止缓存优化:批量读取数据时会全表扫描一次业务表,这种提现在Scan操作场景。在Scan时,客户端与RegionServer进行数据交互(RegionServer的实际数据时存储在HDFS上),将数据加载到缓存,如果加载很大的数据到缓存时,会对缓存中的实时业务热数据有影响,由于缓存大小有限,加载的数据量过大,会将这些热数据“挤压”出去,这样当其他业务从缓存请求这些数据时,会从HDFS上重新加载数据,导致耗时严重。在批量读取(T+1)场景时,建议客户端在请求是,在业务代码中调用setCacheBlocks(false)函数来禁止缓存,默认情况下,HBase是开启这部分缓存的。
  • get数据和批量get数据,批量get时可以有效的较少客户端到各个RegionServer之间RPC连接数。
  • 在查询的时候,可以查询指定我们需要返回结果的列,最好是同一个列族,对于不需要的列,可以不需要指定,这样能够有效地的提高查询效率,降低延时。
  • 禁止缓存优化

Rowkey设计原则

  • Rowkey长度原则:Rowkey是一个二进制码流,Rowkey的长度被很多开发者建议说设计在10~100个字节,不过建议是越短越好,不要超过16个字节。
  • Rowkey散列原则
  • Rowkey唯一原则
http://www.lryc.cn/news/495473.html

相关文章:

  • Y20030023 PHP+thinkphp+MYSQL+LW+基于PHP的健身房管理系统的设计与实现 源代码 配置 初稿
  • mongodb下载与使用
  • 【Linux基础】Linux基本指令
  • 【RISC-V CPU debug 专栏 3 -- Debugging RISC-V Cores】
  • 思科实现网络地址转换(NAT)和访问控制列表(ACL)和动态路由配置并且区分静态路由和动态路由配置。
  • 基于 Python、OpenCV 和 PyQt5 的人脸识别上课打卡系统
  • MySQL 复合查询
  • 【Leetcode】19. 删除链表的第N个节点
  • flutter底部导航栏中间按钮凸起,导航栏中间部分凹陷效果
  • <项目代码>YOLOv8 红绿灯识别<目标检测>
  • HTMLHTML5革命:构建现代网页的终极指南 - 4. 使用元素
  • 使用 Selenium 和 Python 爬取腾讯新闻:从基础到实践
  • CAD深度清理工具-AVappsDrawingPurge9.0.0(2024.8.27版本) 支持版本CAD2022-2025-供大家学习研究参考
  • vue3+vite使用vite-plugin-electron-renderer插件和script-loader插件有冲突
  • 领养我的宠物:SpringBoot开发指南
  • 直击高频编程考点:聚焦新版综合编程能力考查汇总
  • 【EI会议征稿 | ACM出版 】第六届计算机信息和大数据应用国际学术会议(CIBDA 2025)
  • 淘宝商品数据获取:Python爬虫技术的应用与实践
  • 【C++】getchar() 与 putchar() 的深入解析
  • Centos7安装MySQL8.0详细教程(压缩包安装方式)
  • 深度学习的python基础(1)
  • 拥抱 OpenTelemetry:阿里云 Java Agent 演进实践
  • 003 MATLAB基础计算
  • 安卓逆向之Android-Intent介绍
  • 数据库日期时间用什么类型?
  • Python中字符串和正则表达式
  • Leecode刷题C语言之N皇后
  • 即时通讯| IM+RTC在AI技术加持下的社交体验
  • repo仓库转移到自己本地的git服务器
  • 微服务即时通讯系统的实现(服务端)----(2)