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

第二步:怎么用

第三步:理解原理

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: "<html>..."
t5: contents:html: "<html>..."
t3: contents:html: "<html>..."
}
anchor: {
t9: anchor:cnnsi.com = "CNN"
t8: anchor:my.look.ca = "CNN.com"
}
people: {}
}
"com.example.www": {
contents: {
t5: contents:html: "<html>..."
}
anchor: {}
people: {
t5: people:author: "John Doe"
}
}
}

HBase物理视图

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

HBase表、行与列族

创立一个HBase表:

create ‘<table name>’,’<column family>’

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

列族

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

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

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

eg

列族:course

列名:course:mathcourse:english

cell

由行和列的坐标穿插决定;

单元格是有版本的;

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

单元格是由行、列族、列限定符、值和代表值版本的工夫戳组成的,({row key,column( =<family>+<qualifier>),version})惟一确定单元格。cell中的数据是没有类型的,全副是字节码模式存储。