Ⅰ 大数据知识点里面的 HBase 是什么意思
HBase是一个分布式的、面向列的开源数据库,基于Hadoop生态圈,在Nosql蓬勃发展的今天被国内外众多公司选择,应用于现代互联网系统的不同业务。
HBase业务场景
1.标签数据的存储
标签数据是稀疏矩阵的代表,描述了实体的各类属性,主要应用于智能推荐、商务智能或营销引擎等领域。
2. 车联网数据的收集
车联网系统是利用车载设备收集车辆运行时产生的各项数据,通过网络实时上传,在平台进行动态分析和利用。
3. 交易记录的保存
在移动支付领域,保证历史交易记录等敏感信息的安全性是一个重要的话题。当数据中心遭遇自然灾害、外部攻击时,必须保证这些信息不丢,而且从业务角度要保证RTO尽可能短、RPO尽可能为0。
HBase基于底层的HDFS作为存储系统,HDFS实现了三副本策略,按照一定的规则将副本放在不同的节点或机架中,本身具有较高的容灾能力。在工程实践中,也产生了Region replica、主备集群、互备双活等策略来尽可能进行灾备并保证高可用。
Ⅱ 基于spark SQL之上的检索与排序对比性能测试
之前做过一年的spark研发,之前在阿里与腾讯也做了很久的hive,所以对这方面比较了解。
第一:其实快多少除了跟spark与hive本身的技术实现外,也跟机器性能,底层操作系统的参数优化息息相关,不能一概而论。
第二:hive 目前应该还是业界的主流,毕竟快与慢很多时候并非是至关重要的,对于一个生产系统来说,更重要的应该是稳定性,spark毕竟还算是比较新兴的事务,快确实快,但是稳定性上距离hive相差甚远。关于spark我们也修复了很多关于内存泄露的BUG,因为您问的是性能,所以不过多介绍(可以跟我要YDB编程指南,里面有我对这些BUG的修正)
第三:关于性能,我测试的可能不够全面,只能在排序与检索过滤上提供我之前的基于YDB的BLOCK sort测试报告供您参考(网络上贴word太费劲,您可以跟我要 word文档)。
排序可以说是很多日志系统的硬指标(如按照时间逆序排序),如果一个大数据系统不能进行排序,基本上是这个系统属于不可用状态,排序算得上是大数据系统的一个“刚需”,无论大数据采用的是hadoop,还是spark,还是impala,hive,总之排序是必不可少的,排序的性能测试也是必不可少的。
有着计算奥运会之称的Sort Benchmark全球排序每年都会举行一次,每年巨头都会在排序上进行巨大的投入,可见排序速度的高低有多么重要!但是对于大多数企业来说,动辄上亿的硬件投入,实在划不来、甚至远远超出了企业的项目预算。相比大数据领域的暴力排序有没有一种更廉价的实现方式?
在这里,我们为大家介绍一种新的廉价排序方法,我们称为blockSort。
500G的数据300亿条数据,只使用4台 16核,32G内存,千兆网卡的虚拟机即可实现 2~15秒的 排序 (可以全表排序,也可以与任意筛选条件筛选后排序)。
一、基本的思想是这样的,如下图所示:
1.将数据按照大小预先划分好,如划分成 大、中、小三个块(block)。
2.如果想找最大的数据,那么只需要在最大的那个块里去找就可以了。
3.这个快还是有层级结构的,如果每个块内的数据量很多,可以到下面的子快内进行继续查找,可以分多个层进行排序。
4.采用这种方法,一个亿万亿级别的数据(如long类型),最坏最坏的极端情况也就进行2048次文件seek就可以筛选到结果。
五、哪些用户适合使用YDB?
1.传统关系型数据,已经无法容纳更多的数据,查询效率严重受到影响的用户。
2.目前在使用SOLR、ES做全文检索,觉得solr与ES提供的分析功能太少,无法完成复杂的业务逻辑,或者数据量变多后SOLR与ES变得不稳定,在掉片与均衡中不断恶性循环,不能自动恢复服务,运维人员需经常半夜起来重启集群的情况。
3.基于对海量数据的分析,但是苦于现有的离线计算平台的速度和响应时间无满足业务要求的用户。
4.需要对用户画像行为类数据做多维定向分析的用户。
5.需要对大量的UGC(User Generate Content)数据进行检索的用户。
6.当你需要在大数据集上面进行快速的,交互式的查询时。
7.当你需要进行数据分析,而不只是简单的键值对存储时。
8.当你想要分析实时产生的数据时。
ps:说了一大堆,说白了最适合的还是踪迹分析因为数据量大,数据还要求实时,查询还要求快。这才是关键。
Ⅲ 数据库的开发工具有哪些
目前流行的数据库系统有两类:
一类是关系型的数据库,有Oracle、MySQL、DB2、MSSQLServer,等
一类是所谓的NoSQL,有mongoDB、HBase等等等
数据库软件,看你怎么定义了,是数据库应用软件,数据库开发软件,数悔亮据库管理软件?
基本灶前嫌上所有的ERP等企业管理软件都是基于数据库的,应该属于数据库应用软件的一类
比如Oracle、SAP等等都是知名的ERP软件
还有CRM软件也是基于数据库的。
数据库开发和管理软件就很多了,我个人将其隐手分为两类,
一类是基于java的,一般是通用的,即支持多个数据库;比如AquaDataStudio、DbVisualizer等等等
一类是非java的,大多数都是专门用于某一类数据库的,比如plsqldeveloper、toad等等等;不过其中也有一些软件可以支持多种数据库。比如navicat、RapidSQL等等等
Ⅳ hbase 有没有类似pl/sql developer这样的工具
这个目前还真找不到,
hbase属于NoSQL/列式 数据库,
而现在的数据库开发工具 都是 管理的关系型数据库。
比如 dbvisualizer
AquaDataStudio
Ⅳ HBase数据结构是什么
RowKey
与nosql数据库们一样,RowKey是用来检索记录的主键。访问HBASE table中的行,只有三种方式:
通过单个RowKey访问(get)
通过RowKey的range(正则)(like)
全表扫描(scan)
RowKey行键 (RowKey)可以是任意字符串(最大长度是64KB,实际应用中长度一般为 10-100bytes),在HBASE内部,RowKey保存为字节数组。存储时,数据按照RowKey的字典序(byte order)排序存储。设计RowKey时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)Table:表,所有的表都是命名空间的成员,即表必属于某个命名空间,如果没有指定,则在default默认的命名空间中。
RegionServer group:一个命名空间包含了默认的RegionServer Group。
Permission:权限,命名空间能够让我们来定义访问控制列表ACL(Access Control List)。例如,创建表,读取表,删除,更新等等操作。
Quota:限额,可以强制一个命名空间可包含的region的数量。
Column Family
列族:HBASE表中的每个列,都归属于某个列族。列族是表的schema的一部 分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。例如 courses:history,courses:math都属于courses 这个列族。
Cell
由{rowkey, column Family:columu, version} 唯一确定的单元。cell中的数据是没有类型的,全部是字节码形式存贮。
关键字:无类型、字节码
Time Stamp
HBASE 中通过rowkey和columns确定的为一个存贮单元称为cell。每个 cell都保存 着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。时间戳可以由HBASE(在数据写入时自动 )赋值,此时时间戳是精确到毫秒 的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版 本冲突,就必须自己生成具有唯一性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。
为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,HBASE提供 了两种数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一段 时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。
命名空间
命名空间的结构: