ElasticSearch海量数据使用简述
应用场景当中经常会遇到模糊查询或多条件匹配查询,数据量较小的情况下通过简单的数据库模糊查询是可以解决的,但是对于数据量庞大的情况,数据库模糊查询就会出现性能问题。这种情况下的一种解决方案就是根据查询内容构建反向索引,借助搜索引擎进行查询,提升查询性能。
目前使用比较多的分布式搜索引擎是ElasticSearch。那么项目中如何使用ES?如何保证ES的数据更新?下面简单做个描述。
Elasticsearch使用可以简单分为两个阶段。数据初始化阶段、数据更新阶段。
数据初始化阶段。数据初始化常见的方式如下:
一、通过应用程序手动将数据库中的数据,调用ES接口API插入ES索引库中。
二、同过数据迁移工具将数据初始化到ES数据库。目前常用的ES同步工具有logstash-input-jdbc、DataX。通过同步迁移工具可以全量将数据库数据初始化到ES索引库中。
数据更新阶段。数据更新阶段常见的处理方式如下:
一、通过应用服务直接调用ES更新接口。这种方式实现比较简单但是对业务侵入性比较大。
二、对于实时性要求不高的可以采用定时任务监控数据表变化然后调用ES接口实现数据更新。
三、业务应用中通过发送消息异步更新数据。
四、通过DataX同步工具定时将修改的数据同步到ES库中。
上述是ElasticSearch使用的简单描述。使用的关键还是数据库与ES间的数据同步。能否用的好关键也是数据间的同步。
ES是什么?
ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。
同时ES还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据。
可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机。
es数据库如何倒时间查看数据
可以用时间戳
1.es建立索引:curl -XPUT '索引名称'。
2.es查询所有索引:curl -XGET ''
3.es查询单个索引内容:curl -XGET '索引名称/_search?pretty=true'。
还有一种带时间的情况curl -XGET '索引名称-2018-08-01/_search?pretty=true'
4.es删除某个索引下的内容,curl -XDELETE '索引名称?pretty'
以上是linux命令行操作,如果是连接内网的情况下,直接将引号的内容复制到浏览器请求就可以返回数据,查看效果比linux好。
ES与传统数据库的比较
1.结构名称不同
2.ES分布式搜索,传统数据库遍历式搜索
3.ES采用倒排索引,传统数据库采用B+树索引
4.ES没有用户验证和权限控制
5.ES没有事务的概念,不支持回滚,误删不能恢复
6.ES免费,完全开源;传统数据库部分免费
有关更详细的比较内容,可以到黑马程序员官网找到社区技术文章,找不到可以对话框问一下。里面还有结合工作的举例。
es数据库连接地址格式
mysql。es数据库连接地址格式为mysql。数据库是按照数据结构来组织、存储和管理数据的仓库。
关于es数据库和es数据库优缺点的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。