栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Elasticsearch学习笔记

Elasticsearch学习笔记

文章目录
  • 资料收集
  • 基础入门
    • Elasticsearch概念与MySQL对应
  • MySQL同步ES
    • 几种同步方案
    • 数据一致性问题主流解决方案
  • 其他(TODO)

资料收集

公司组件文档
公司ES组件介绍:包含最佳实践案例、SDK API介绍、多机房容灾部署、ES平台架构等,协助公司开发迅速使用。

ES官方权威指南文档
英文最新版权威指南

ES入门教程

基础入门

主要学习资料:ES入门教程
全部是最基本的操作,有个感觉。

一、安装教程

二、基本概念
注意点:

  1. Elastic 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。
    所以,Elastic 数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。
  2. document 可以分组,比如weather这个 Index 里面,可以按城市分组(北京和上海),也可以按气候分组(晴天和雨天)。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 document。不同的 Type 应该有相似的结构(schema)。

三、基础命令(第三、五、六部分)
1,CRUD Index、Type、document(row)等:这部分大多数是在数据同步时候使用。
2,业务上对ES的使用主要集中在查询中

四、中文分词设置
不同组件有不同分词断句的算法

Elasticsearch概念与MySQL对应

Elasticsearch概念与MySQL对应关系表

  1. 单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。
  2. MySQL 中一个数据库下面有 N 张表(Table),等价于1个索引 Index 下面有 N 多类型(Type)。
  3. MySQL 中一个数据库表(Table)下的数据由多行(Row)多列(column,属性)组成,等价于1个 Type 由多个文档(document)和多 Field 组成。
  4. MySQL 中定义表结构、设定字段类型等价于 ES 中的 Mapping。举例说明,在一个关系型数据库里面,Schema 定义了表、每个表的字段,还有表和字段之间的关系。与之对应的,在 ES 中,Mapping 定义索引下的 Type 的字段处理规则,即索引如何建立、索引类型、是否保存原始索引 JSON 文档、是否压缩原始 JSON 文档、是否需要分词处理、如何进行分词处理等。
  5. MySQL 中的增 insert、删 delete、改 update、查 search 操作等价于 ES 中的增 PUT/POST、删 Delete、改 _update、查 GET。其中的修改指定条件的更新 update 等价于 ES 中的 update_by_query,指定条件的删除等价于 ES 中的 delete_by_query。
  6. MySQL 中的 group by、avg、sum 等函数类似于 ES 中的 Aggregations 的部分特性。
  7. MySQL 中的去重 distinct 类似 ES 中的 cardinality 操作。
  8. MySQL 中的数据迁移等价于 ES 中的 reindex 操作。
MySQL同步ES 几种同步方案 数据一致性问题主流解决方案

非常好的讲解一致性问题的帖子:
MySQL与ES之间的数据一致性问题
MySQL 数据实时同步到 Elasticsearch 的技术方案选型和思考
分不清谁是原创。。。

总结:

  1. MySQL数据库资源非常宝贵,希望DB的操作尽可能集中在复杂的CUD上,复杂的查询操作借助于ES进行实现。因此会引出一致性的问题,即DB的更新是否能立即同步到ES上。
    主流的方式:数据迁移同步工具。
  2. 数据库去规范化对于快捷查询的好处:通过字段冗余,避免多个表之间的联合查询。也避免同步时要更新多个表。
    主要内容:1,去规范化的动机。2,去规范化的几种方式(主查询表列冗余、宽表预构建/应用多写/物化视图/数据迁移同步工具)。
    其中,物化视图的介绍帖子:数据库view与物化视图
  3. 主要的数据迁移同步模型:订阅消费模式、端到端直连模式
  4. 同步存在的问题:ES设计(类型选择:objected(全部扁平化的问题)、nested(保持一定的关联关系,牺牲部分写入性能)、join(影响搜索性能))。
    join 适合写多读少场景,更加适合关注索引性能的场景。这意味着更新的生效会更快,但是搜索时的开销也相对大些;nested 适合读多写少的场景,保持一定关联关系的同时更加关注搜索的性能。
  5. MySQL 到 ES 实时数据同步实现去规范化,推荐方式:多表订阅合并预构建宽表数据
  6. 数据迁移同步工具选型
其他(TODO)

待学习与搜索内容

  1. Kibana 是为 Elasticsearch 集群上的內容提供了友好的 Web 界面,可以帮助你汇总、分析和搜索重要数据。
  2. ES读写数据过程
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/311399.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号