社区直播 | NoSQL漫谈:坚持写HBase技术博客的感想

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介:

从下周开始每周将在钉钉群里【直播技术分享】和专家面对面【在线回答技术问题】,感兴趣的同学加入啊~   每周具体直播时间,请关注钉钉群内群公告。

【号外号外】为了更好的服务咱们HBase开发者,HBase技术社区钉钉企业号大群建立啦:

钉钉直播入群方式:

https://dwz.cn/Fvqv066s

Apache HBase Operator Tools:

https://github.com/apache/hbase-operator-tools

b8a3431fbbb543bf45e5edd142f404ac937e0f83

在学习的时候,我一直保持着记笔记或者做简单总结的习惯,内容比较随性,但这些内容有助于自己的快速回顾。在技术领域,最好的总结是一个直观的流程图,所谓”一图胜千言”,然后配以简单的文字说明。但可惜,那时没有想过写作公开的技术博客,周边也缺乏这样的氛围。


几个月前,正式决定开始写博客和公众号。初衷还是希望能督促自己在业余时间的学习,当正式开始以后,如下几点内容感受非常深刻:


  1. 以输出倒逼输入”,这就要求每天必须坚持学习。如果写作只是将自己知道的内容写出来,对于我,那将变成一件枯燥而无趣的事情。

  2. 公开的内容对质量会有更高的要求,进一步提高了对学习的要求。

  3. 如果写作的内容得到其他人的认可,可以带给自己更多坚持下去的信心。


但频繁更新却是一件极其艰难的事情。技术总结内容,通常需要细致的阅读源码细节,如果追求高质量输出,难以在短时间内快速完成。另外因日常工作方面的原因,自由可支配的时间时常不受控制。

上面这些内容,更多的是自己的几点感受。希望阅读了此文的同学们也能开始自己的技术写作,对于已经开始的,也应该长期坚持下去。

接下来是关于NoSQL技术的一些漫谈内容。最初,对于这个公众号名称,我曾纠结过一段时间。NoSQL一词,俨然已过了风头正盛的时期,甚至听起来像一个”过时”的概念。关于这个公众号,主要想探讨如下领域的内容:

  • 分布式KeyValue系统

  • 稀疏矩阵形态的宽列存储技术

  • 搜索技术

  • 图数据库技术

  • 文档数据库技术

  • 时序/时空数据库技术

  • 多模数据库技术

  • 分布式索引技术

  • NewSQL技术

  • 分布式计算技术


认真思考一下,也只有NoSQL一词可将其尽可能的囊括起来。每一种技术,都有自己独特的精彩实现内容,但更多的是一些通用的技术,如RPC通信技术,索引技术,分布式共识算法,MVCC, SQL能力等等。

对比于NoSQL,NewSQL听起来像是一个更新潮的概念。Google对于NoSQL与NewSQL技术架构的影响可谓深远,我们先来看看Google从Bigtable到Spanner/F1的演进过程,下面列举了每一种技术的设计关键点:

Bigtable:

  • LSM-Tree架构

  • Auto-Scaling

  • 基于分布式文件系统GFS/Colossus

  • 稀疏矩阵

  • Schema less设计

  • 行级事务

  • 异步容灾(Paper中提及但最终未实现)


Megastore:

  • 基于Bigtable构建

  • 在NoSQL与RDBMS之间做了妥协,支持半关系型模型

  • 支持SQL接口

  • 支持多种二级索引类型

  • 基于Paxos协议实现了跨DataCenters间的同步容灾

  • 支持Entity Group级别的跨行事务


Spanner:

  • 参考了Bigtable的设计后全新实现

  • Auto-Scaling

  • 半关系型模型

  • 支持SQL接口

  • 支持同步容灾

  • 支持广泛的分布式事务能力

F1: 

  • 基于Spanner构建

  • 分布式SQL查询能力

  • 支持事务一致性的二级索引

  • 支持异步的Schema变更

  • 支持乐观事务

  • 数据变更历史记录跟踪


关于NoSQL与NewSQL,这篇文章《NewSQL是否是NoSQL的取代者?》做了更详细的探讨。这里仅简单的罗列一下观点:

– NoSQL通常指一种非关系型存储技术,涉及的范围广泛,本身与是否具有SQL接口能力无关。

– NewSQL更多是指一种分布式的关系型数据库技术,典型意义上的NewSQL包括Spanner, CockroachDB, NuoDB以及国内的TiDB,它通常会更加强调分布式事务能力。

NewSQL更多是RDBMS与NoSQL技术结合的一种产物,对于传统的应用,会更加友好,也具有广泛的普适性。在可预见的未来,它也一直会有可观的市场空间。而每一种NoSQL技术更像是一种专业化能力的存在:

  • HBase:稀疏矩阵,基于KeyValue提供了简单的读写接口

  • Elasticsearch:提供分布式搜索能力

  • Druid:基于事件数据的OLAP能力

  • Neo4j:提供图数据库能力

  • OpenTSDB/InfluxDB:提供时序数据库能力

在”nosql-database.org”这个网站中,收录了大量的NoSQL技术,大家可以参考一下。

如果每一种技术只提供一种专业的能力,那就带来了通用性方面的问题,同一份数据时常需要在不同的系统中各复制一份是一个无法忍受的问题。从应用的角度来看,大家更期望一种”One Size Fit More/All”的技术,但这在技术实现上几乎不可能。多模数据库似乎是一个不错的答案,它的设计理念为:

基于一套存储引擎,提供多种模型,多种访问接口

以当前火热的AZure Cosmos DB为例,支持如下三种模型:

– Document
– Graph
– KeyValue

AZure Cosmos DB基于上面三种模型,提供了多语言(Java/Python/Node.js/.NET)访问接口,并且提供了MongoDB Document API以及基于SQL的访问接口。

再以ArrangoDB为例,它同样支持如下三种模型:

– Document
– Graph
– KeyValue

ArrangoDB主要提供了AQL(SQL-Like)接口以及HTTP接口。

多模数据库像是NoSQL技术的大杂烩,但的确不失为NoSQL技术一个不错的演进方向。随着公有云,人工智能,物联网等行业的快速发展,以及即将到来的5G技术,需要存储和查询的数据量也会变得越来越大,相信NoSQL技术会生生不息,一定会取得更广泛的应用场景。 这也是我坚持在”NoSQL”领域写技术博客的一个关键原因。

d3f2f0da5b6761a64c7049db7719525a2c492a0c

大家工作学习遇到HBase技术问题,把问题发布到HBase技术社区论坛http://hbase.group,欢迎大家论坛上面提问留言讨论。想了解更多HBase技术关注HBase技术社区公众号(微信号:hbasegroup),非常欢迎大家积极投稿。

f0e493f2fb4b44628e897b0e897a4c4da3e98eea

关于"NoSQL漫谈"

NoSQL主要泛指一些分布式的非关系型数据存储技术,这其实是一个非常广泛的定义,可以说涉及到分布式系统技术的方方面面。随着人工智能物联网大数据云计算以及区块链技术的不断普及,NoSQL技术将会发挥越来越大的价值。


请长按下面的二维码关注我们


d3b9fdccb6d7e0496ecd42a9461c876c0788500a

更多NoSQL技术分享,敬请期待!


HBase技术交流社区 - 阿里官方“HBase生态+Spark社区大群”点击加入:https://dwz.cn/Fvqv066s


相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
SQL 分布式数据库 HIVE
分布式NoSQL列存储数据库Hbase(六)
分布式NoSQL列存储数据库Hbase(六)
49 0
|
4月前
|
缓存 分布式计算 NoSQL
分布式NoSQL列存储数据库Hbase_MR集成Hbase:读写Hbase规则(九)
分布式NoSQL列存储数据库Hbase_MR集成Hbase:读写Hbase规则(九)
38 0
|
4月前
|
NoSQL 分布式数据库 数据库
分布式NoSQL列存储数据库Hbase_列族的设计(五)
分布式NoSQL列存储数据库Hbase_列族的设计(五)
198 0
|
4月前
|
存储 NoSQL 分布式数据库
分布式NoSQL列存储数据库Hbase_高级思想(八)
分布式NoSQL列存储数据库Hbase_高级思想(八)
41 0
|
4月前
|
存储 NoSQL 分布式数据库
分布式NoSQL列存储数据库Hbase Java API(四)
分布式NoSQL列存储数据库Hbase Java API(四)
20 0
|
4月前
|
存储 NoSQL 分布式数据库
分布式NoSQL列存储数据库Hbase Java API(三)
分布式NoSQL列存储数据库Hbase Java API(三)
40 0
|
4月前
|
SQL 存储 NoSQL
分布式NoSQL列存储数据库Hbase操作(二)
分布式NoSQL列存储数据库Hbase操作(二)
114 0
|
6月前
|
存储 分布式计算 NoSQL
|
存储 缓存 分布式计算
Hadoop原理与技术——Hbase实操
Hadoop原理与技术——Hbase实操
108 0
Hadoop原理与技术——Hbase实操
|
分布式计算 安全 Hadoop
Hadoop原理与技术——Hbase的基本操作
Hadoop原理与技术——Hbase的基本操作
107 0
Hadoop原理与技术——Hbase的基本操作