前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ELK Stack系列之基础篇(九) - Elasticsearch的交互方式

ELK Stack系列之基础篇(九) - Elasticsearch的交互方式

原创
作者头像
南非骆驼说大数据
发布2020-02-18 23:43:19
1.1K0
发布2020-02-18 23:43:19
举报

前言

前面的章节中,我们花费了很多时间去讲ELK的框架、ELK每个组成部分的构成原理、ES专有名词的解释、以及如何快速搭建一个集群,那么在接下来很长一部分时间里,我们将深入学习、实践ELK核心组件Elasticsearch的内部各功能模块。

一、RESTFUL、 API 、JSON、CURL 介绍

Elasticsearch 是一个分布式的 基于RESTful风格的搜索和数据分析引擎。那么什么是RESTFUL呢?在搞清楚这个名词之前,我们先来讲一下什么是API?Elasticsearch默认走的是http协议。

API:英文名Application Programming Interface的缩写,中文名是应用程序接口的意思。它的作用就是让应用程序使用人员无需访问源码或者了解内部工作机制就能基于这个接口去访问这个应用程序的数据,或者是修改数据。它的出现完全是为了应用人员去调用和扩展。所以,你要想了解一个程序怎么使用的话首先就得看它的API。说白了,API其实可以理解为多套应用程序源码的抽象,使我们不用考虑这些源码的实现原理直接调用这个接口就能实现应用程序的维护。因此,一个程序有了API以后,程序员或者运维人员就能更加方便的通过命令或者程序去调用和使用它。通过使用接口去获取或者修改一部分数据进而达到自己需求的目的。那么数据是通过什么形式去展现的呢?从一个程序获取数据到放到另外一个程序里,我们现在大都用一种叫JSON格式的可扩展标记语言。那么什么是JSON呢?

JSON:英文Javascript object notation的缩写,它是一种轻量级数据交换格式。一个JSON 对象通常包含键和值,值可以是字符串、数字、真/假、空、另一个对象或数组。对于应用程序而言,JSON很容易解析和生成。它的优点是:1,数据格式简单,易于读写。2,格式是压缩的,占用带宽小 3 ,易于解析4,支持多语言 5,JSON数据能直接为服务端代码使用,这样就简化了服务端和客户端的开发量,利于维护。正是因为这些因素让JSON格式现在非常流行。JSON格式通常用于http连接。所以在web开发服务这块,现在基本都使用JSON数据格式标记语言。

RESTFUL:英文Representational State Transfer的缩写 中文意思是:表现层状态转化。表现层是什么意思?指资源的表现层。资源是什么?比如一段文本、一部电影、一张图片,这些都可以叫资源。这些资源存在我们的服务器上被所搜到肯定有一个标识吧,这个标识我们称为URL。这个URL又是什么呢?统一资源定位符得意思,就是通过这个URL我们可以找到这个资源所在地。那么给这个URL一个website得话,这个资源就可以被访问了。每个资源就是一个信息。比如网页html 、文本txt对吧。接下来,状态转化又是什么意思?比如我们访问一个网站,www.sohu.com ,那么我们在跟这个网站在互动中,服务器上数据得状态肯定会发生改变。前面我们讲到ES默认走的是http协议。http协议是一种无状态的协议。无状态是指服务端不会去记录客户端的所有操作数据的状态只保存在服务端,因此,如果这个客户端想要操作这个服务器必须要通过某些手段。通过这些手段才能让服务器发生状态转化,而最终这种转化是要建立在表现层之上的。比如你改一个服务器上的目录,改完后表现出来的形式就变化了。这就是表现层状态转化的相关定义。那么通过哪些手段去让服务器数据发生变化呢??总共有四种方法:

(1)GET :用来获取资源

(2)POST:用来新建或者更新资源

(3)PUT: 用来新建资源

(4)DELETE: 用来删除资源

以上4种都是http协议规定支持的。只要使用上面4个方法我们就能操作这个软件。所以如果一套软件支持RESTFUL风格的话,那么我们只要学习它的API接口,就能很好的去操作和使用这套软件。Elasticsearch完全是基于RESTFUL风格开发的,因此我们学ES从它的API入口就非常简单了。因此:Elasticsearch 把操作都封装成了 HTTP 的 API,我们只要给 Elasticsearch 发送 HTTP 请求就行。

CURL:以命令行的形式来执行HTTP协议的请求工具。也就是说我们在里能执行的程序我们用Curl命令也能执行。当然也可以通过 CURL来操作GET/POST/PUT/DELETE方法。那么我们一定要知道这几个命令。后面我们都是用这几个命令去操作ES。

Curl命令
Curl命令

比如说在命令行下创建一个索引 :

curl 创建索引
curl 创建索引

二、Elasticsearch的交互方式

前面讲了ES的一些专有名词,为我们后续进行ES的交互操作提供了基础。那么有哪些方式能提供ES进行连接并操作呢?下面我们来介绍一下:

第一种方式:基于浏览器方式的交互连接,因为我们的ES默认支持的就是http协议,因此,我们可以在浏览器里直接打开ES的一些API。比如:http://ip:posrt/?pretty 但是浏览器更多提供的是一种查询的请求也就是GET请求。对于一些PUT、POST命令是无法完成的。

第二种方式:ES操作工具 POSTMAN,这个postman就能完成基于ES的操作。增删该查都能完成。postman是谷歌浏览器的一个插件。装上去就能完成对Http的各种操作。(可以去网上搜一下)

第三种方式:Linux命令行方式 比如 Curl -X GET/PUT/POST/DELETE 'http://ip:port/poems'

第四种方式:Kibana的Dev Tools,此工具是kibana官方推出的用于连接操作ES的工具。需要安装Kibana。

第五种方式:第三方插件比如前面说到的head插件 cerebro插件都能操作ES。(前面的本系列课程都有讲,可自行翻阅)

第六种方式:Elasticsearch官方提供了多种程序语言的客户端—java,Javascript,.NET,PHP,Perl,Python,以及 Ruby。开发人员使用。

总结一下:上面的六种方式都可以根据实际需要去进行选择,一般选Kibana\Cerebro\Postman比较多,那么后面我将用kibana提供的开发工具进行ES的操作。

Kibana界面
Kibana界面
kibana操作
kibana操作

三、总结

本节我们讲了什么是RESTFUL、什么是JSON,也知道了如何去操作ES数据库。同时我们也了解了操作ES其实是要去操作它的API去调用修改数据。所以,我们这里再提供一下ES 官方API 文档,供大家学习了解。本人目前操作的是6.8.2,那就看下面这个地址吧:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/docs.html

ES API 官方文档
ES API 官方文档

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、RESTFUL、 API 、JSON、CURL 介绍
  • 二、Elasticsearch的交互方式
  • 三、总结
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档