es+hbase学习

第一步:搞清楚这个框架(技术)是干什么的,解决了什么问题和痛点,同类“竞品”还有哪些

第二步:怎么用

第三步:了解原理

Elasticsearch

WHAT

Elasticsearch 是一个基于 Lucene搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

Elasticsearch 是用 Java 语言开发的,是一种流行的企业级搜索引擎。

Elasticsearch 的底层是开源库 Lucene。我们没有办法直接使用 Lucene ,必须自己写代码去调用它的接口。

ElasticsearchLucene 的封装,提供了 RESTful API 的操作接口,开箱即用。

WHY

使用数据库 来做搜索业务,不能很好的满足需求。

虽然某一程度上也可以视为数据库,但是它更主要的身份还是一个优秀的全文搜索引擎。它的出现解决了一部分传统关系型数据库和NoSQL非关系型数据库所没有办法高效完成的一些工作,比如高效的全文检索,结构化检索,甚至是数据分析。

响应时间

eg:数据库在做模糊查询时,如LIKE 语句,它会遍历整张表,同时进行字符串匹配。

es 是基于 倒叙索引 的 ,检索速度非常快。

分词

Elasticsearch支持中文分词插件

相关性

Elasticsearch 支持全文搜索和相关度评分。这样在返回结果就会根据分数由高到低排列。分数越高,意味着和查询语句越相关。

可视化界面

MySQL的Navicat

ElasticsearchKibana

HOW

入门使用

Hbase

WHTA

Hadoop Database

HBase 是Apache的 Hadoop 项目的子项目。

HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统

HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库, HBase基于列的而不是基于行的模式.

HBase的原型是Google的BigTable论文。

WHY

MySQL无法满足海量的数据存储,

MySQL -> 面向行存储

HBase -> 面向行存储

HOW

HBase概念视图

表名:webtable

两行:com.cnn.wwwcom.example.www

三个列族:contentsanchorpeople

对于第一行com.cnn.www

anchor列族包含两列:anchor:cssnsi.comanchor:my.look.ca

{
"com.cnn.www": {
contents: {
t6: contents:html: "..."
t5: contents:html: "..."
t3: contents:html: "..."
}
anchor: {
t9: anchor:cnnsi.com = "CNN"
t8: anchor:my.look.ca = "CNN.com"
}
people: {}
}
"com.example.www": {
contents: {
t5: contents:html: "..."
}
anchor: {}
people: {
t5: people:author: "John Doe"
}
}
}

HBase物理视图

HBase 概念视图中显示的空单元根本不存储

HBase表、行与列族

创建一个HBase表:

create ‘

’,’

HBase中的行是逻辑上的行,物理模型上行时按列族(column family)分别存取的。

列族

Hbase表中的每个列都归属于某个列族,

列名由其 列族前缀 和 限定符 组成,

列的限定符是列族中数据的索引。

eg

列族:course

列名:course:mathcourse:english

cell

由行和列的坐标交叉决定;

单元格是有版本的;

单元格的内容是未解析的字节数组

单元格是由行、列族、列限定符、值和代表值版本的时间戳组成的,({row key,column( =+),version})唯一确定单元格。cell中的数据是没有类型的,全部是字节码形式存储。

你可能感兴趣的:(ecmascript)