「从零单排HBase 11」HBase二级索引解决方案
HBase一个令人惋惜的地方,就是不支持二级索引。因此,社区有了很多补充方案来填补HBase的二级索引能力的缺陷。今天,我们就来看看有哪些二级索引方案,通过对比各个方案的优缺点,并结合我们的具体场景做出二级索引方案选型。1.为什么需要二级索引HBase系统单纯从解决大数据实时读写问题角度出发,重点关
「从零单排HBase 12」HBase二级索引Phoenix使用与最佳实践
Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBCAPIs对HBase数据进行增删改查,构建二级索引。当然,开源产品嘛,自然需要注意“避坑”啦,阿丸会把使用方式和最佳实践都告诉你。1.什么是PhoenixPhoenix完全使用Java编写,将SQL查询转换为一个或多个HBas
使用phoenix踩的坑与设计思考
本文主要介绍在压测HBase的二级索引phoenix时踩的一个坑,使用时需要特别注意,而且背后的原因也很有意思,可以看出HBase和Phoenix对元数据设计上的差异。1.问题介绍在做phoenix压测时发现一个奇怪的现象。压测请求分布非常均匀,但是有一台机器的流量、负载都明显高于其他机器。如下图所
实时数据订阅与分发系统概述
实时数据订阅与分发系统可以将业务数据源变更实时分发分发到消息总线上,并维护消息的统一格式,提供通用的客户端框架供消息生产者与下游业务接入。一般能用于以下场景:索引构建:MySQL到ES缓存管理:MySQL到Redis或本地cache数据库镜像实时备份价格变化等重要业务信息订阅实时数据订阅与分发系统一
实时数据订阅与分发系统概述
实时数据订阅与分发系统可以将业务数据源变更实时分发分发到消息总线上,并维护消息的统一格式,提供通用的客户端框架供消息生产者与下游业务接入。
使用phoenix踩的坑与设计思考
本文主要介绍在压测HBase的二级索引phoenix时踩的一个坑,使用时需要特别注意,而且背后的原因也很有意思,可以看出HBase和Phoenix对元数据设计上的差异。
「从零单排HBase 12」HBase二级索引Phoenix使用与最佳实践
Phoenix是构建在是构建在HBase上的一个SQL层,扩展了二级索引。?当然,开源产品嘛,自然需要注意“避坑”啦,阿丸会把使用方式和最佳实践都告诉你。
「从零单排HBase 11」HBase二级索引解决方案
通过对比各个二级索引方案的优缺点,并结合我们的具体场景做出HBase二级索引方案选型。
聊一聊关于MySQL的count(*)
1.背景自从大家对于MySQL数据库的稳定性有了更高的追求后,经常有小伙伴有这样的疑问,对于count(*)这样的操作,有没有正确的姿势,或者有没有可以优化的地方?但答案比较残酷,如果已经使用了正确的索引,那么基本上没有可以优化的地方。一旦出现慢查询了,它就是慢查询了,要改,只能自己计数或者通过其他
为什么MySQL分库分表后总存储大小变大了?
1.背景在完成一个分表项目后,发现分表的数据迁移后,新库所需的存储容量远大于原本两张表的大小。在做了一番查询了解后,完成了优化。回过头来,需要进一步了解下为什么会出现这样的情况。与标题的问题的类似问题还有,为什么表数据内容删除了而表大小没有变化。其本质都是一样的。要回答这些问题,我们需要从mysql
两文说透MySQL里的各种锁(上篇)
【MySQL系列相关】1.聊一聊关于MySQL的count(*)2.为什么MySQL分库分表后总存储大小变大了?0.前言MySQL按照加锁的范围,分为全局锁、表级锁、行级锁。本文作为上篇,主要介绍MySQL的全局锁和表级锁。重要的实战总结为,如何安全地变更一个表的表结构。搞个图做封面1.全局锁定义:
两文说透MySQL里的各种锁(下篇)
在上篇中,我们介绍了MySQL中的全局锁和表锁。今天,我们专注于介绍一下行锁,这个在日常开发和面试中常常困扰我们的问题。1.行锁基础由于全局锁和表锁对增删改查的性能都会有较大影响,所以,我们自然会想到,只需要对有修改的行加锁就行了,这就是行锁。在事务中,事务1更新了一行主键为1的数据行,那么,在这个
MySQL数据库无完整备份删库,除了跑路还能怎么办?
1.背景前段时间,由于运维同事的一次误操作,清空了内网核心数据库,导致了公司内部管理系统长时间不可用,大量知识库内容由于没有备份险些丢失。结合这两天微盟的删库跑路事件,我们可以看到,数据库的备份与恢复显得尤为重要。本文将对此次内网数据恢复过程做一些整理,介绍删库后的抢救方案。同时,引发对数据库稳定性
「从零单排HBase 01」从一无所知到5分钟快速了解HBase
最近公司正好准备投入HBase,因此做了一些基础学习准备,所以先暂时停止MySQL的更新,把HBase的学习心得跟大家分享一下,接下来一段时间都会发布HBase相关内容。在学的过程中,发现跟MySQL相互对比,能更深入地了解存储组件的设计。有任何问题或者想看的知识点,欢迎留言跟我沟通。1.前言随着公
「从零单排HBase 02」全面认识HBase架构
在网上看过很多HBaes架构相关的文章,内容深浅不一,直到发现了一篇MapR官网的文章https://mapr.com/blog/in-depth-look-hbase-architecture/#.VdMxvWSqqko,写得实在太生动了。因此,以这篇文章作为骨架,翻译了许多原文的内容,同时对一些
「从零单排HBase 03」深入HBase读写
在了解HBase架构的基础上,我们需要进一步学习HBase的读写过程,一方面是了解各个组件在整个读写过程中充当的角色,另一方面只有了解HBase的真实请求过程,才能为后续的正确使用打下初步基础,毕竟,除了会使用api,你还得知道怎么能写得更快,怎么查得更快。1.首次读写的基本过程在上一篇深入HBas
「从零单排HBase 04」HBase高性能查询揭秘
先给结论吧:HBase利用compaction机制,通过大量的读延迟毛刺和一定的写阻塞,来换取整体上的读取延迟的平稳。1.为什么要compaction在上一篇HBase读写中我们提到了,HBase在读取过程中,会创建多个scanner去抓去数据。其中,会创建多个storefilescanner去lo
「从零单排HBase 05」核心特性region split
HBase拥有出色的扩展性,其中最依赖的就是region的自动split机制。1.split触发时机与策略前面我们已经知道了,数据写入过程中,需要先写memstore,然后memstore满了以后,flush写入磁盘,形成新的HFile文件。当HFile文件数量不断累积,Regionserver就会
数据库中间件漫谈——看看云时代,它会走向何方
1.前言随着业务的发展,MySQL数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、事务数、连接数)总是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。分表、分库和读写分离可
谈谈程序员的非技术思维
最近跟一个阿里的朋友聊到关于程序员如何把事情做得更好,他提到了很多在阿里的感受,让我受益匪浅。所谓“如何把事情做得更好”,就是跳出写代码这件事,如何把我们的工作做好,获得更多的个人成长,获得更好的绩效考核结果,并能在其他人中脱颖而出。思维碰撞下,得到了很多有效的信息,总结为三个方面的“管理”能力,目