亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何在Elasticsearch中啟用和使用SQL功能

 更新時(shí)間:2024年07月10日 15:41:22   作者:碼到三十五  
Elasticsearch SQL適用于需要對(duì)大量數(shù)據(jù)進(jìn)行復(fù)雜查詢(xún)的場(chǎng)景,如數(shù)據(jù)分析、報(bào)表生成、數(shù)據(jù)探索等,這篇文章給大家介紹在Elasticsearch中啟用和使用SQL功能,感興趣的朋友跟隨小編一起看看吧

一、基本概念

Elasticsearch是一個(gè)基于Lucene的開(kāi)源、分布式、RESTful搜索引擎。它提供了全文搜索、結(jié)構(gòu)化搜索、分析以及分布式索引等功能。Elasticsearch SQL是Elasticsearch的擴(kuò)展功能,允許用戶(hù)使用SQL語(yǔ)法查詢(xún)Elasticsearch數(shù)據(jù)。通過(guò)SQL接口,開(kāi)發(fā)者可以利用熟悉的SQL語(yǔ)言,編寫(xiě)更直觀、更易懂的查詢(xún),并且避免對(duì)大量復(fù)雜的原生REST請(qǐng)求的編寫(xiě)。

二、主要功能和優(yōu)勢(shì)

  • 易用性:使用熟悉的SQL語(yǔ)法,降低了學(xué)習(xí)成本。
  • 靈活性:支持復(fù)雜的查詢(xún)和聚合操作。
  • 性能:Elasticsearch本身的分布式架構(gòu)和高效查詢(xún)引擎保證了查詢(xún)性能。
  • 集成性:通過(guò)JDBC驅(qū)動(dòng),可以與各種SQL工具和應(yīng)用程序集成。

Elasticsearch SQL特點(diǎn)

1. 本地集成
Elasticsearch SQL是專(zhuān)門(mén)為Elasticsearch構(gòu)建的。每個(gè)SQL查詢(xún)都根據(jù)底層存儲(chǔ)對(duì)相關(guān)節(jié)點(diǎn)有效執(zhí)行。
2. 沒(méi)有額外的要求
不依賴(lài)其他的硬件、進(jìn)程、運(yùn)行時(shí)庫(kù),Elasticsearch SQL可以直接運(yùn)行在Elasticsearch集群上
3. 輕量且高效
像SQL那樣簡(jiǎn)潔、高效地完成查詢(xún)

三、啟用和使用SQL功能

要在Elasticsearch中啟用和使用SQL功能,你需要安裝X-Pack插件。X-Pack插件包含了許多擴(kuò)展功能,包括SQL接口。安裝完成后,需要在Elasticsearch配置文件中啟用X-Pack插件,并重啟Elasticsearch服務(wù)。

# 安裝X-Pack插件
./bin/elasticsearch-plugin install x-pack
# 啟用X-Pack插件
# 在elasticsearch.yml配置文件中添加以下配置
xpack.sql.enabled: true

在啟用SQL功能后,你可以通過(guò)REST API、命令行工具或JDBC驅(qū)動(dòng)來(lái)執(zhí)行SQL查詢(xún)。Elasticsearch SQL的語(yǔ)法與標(biāo)準(zhǔn)的SQL語(yǔ)法非常相似,支持SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等常見(jiàn)SQL語(yǔ)句。

四、Elasticsearch SQL的使用

4.1 語(yǔ)法

SELECT select_expr [, ...]
[ FROM table_name ]
[ WHERE condition ]
[ GROUP BY grouping_element [, ...] ]
[ HAVING condition]
[ ORDER BY expression [ ASC | DESC ] [, ...] ]
[ LIMIT [ count ] ]
[ PIVOT ( aggregation_expr FOR column IN ( value [ [ AS ] alias ] [, ...] ) ) ]

目前FROM只支持單表

4.2 sql查詢(xún)

# 使用curl命令查詢(xún)
curl -X GET "localhost:9200/_sql?format=txt" -H 'Content-Type: application/json' -d'
{
  "query": "SELECT * FROM indexName WHERE age > 30"
}'

format=txt 是指查詢(xún)返回結(jié)果的數(shù)據(jù)格式

4.3 將SQL轉(zhuǎn)換為DSL

GET /_sql/translate
{
"query":"SELECT * FROM es_order limit 1"
}

結(jié)果如下:

{
  "size" : 1,
  "_source" : {
    "includes" : [
      "id",
      "orderNo",
      "orderTime"
    ],
    "excludes" : [ ]
  },
  "docvalue_fields" : [
    {
      "field" : "id"
    },
    {
      "field" : "orderNo"
    },
    {
      "field" : "orderTime"
    }
  ],
  "sort" : [
    {
      "_doc" : {
        "order" : "asc"
      }
    }
  ]
}

4.4 全文檢索

當(dāng)使用MATCH或QUERY函數(shù)時(shí),會(huì)啟用全文搜索功能,SCORE函數(shù)可以用來(lái)統(tǒng)計(jì)搜索評(píng)分。

MATCH函數(shù)

MATCH(
    field_exp,   
    constant_exp 
    [, options]) 
field_exp:匹配字段
constant_exp:匹配常量表達(dá)式

用法:

GET /_sql?format=txt
{
"query":"select * from es_order where MATCH(address, '武漢') or MATCH(productType, '手機(jī)') limit 10"
}

QUERY()

使用QUERY函數(shù)查詢(xún)address中包含Street的記錄。

POST /_sql?format=txt
{
"query":"select id,orderNo,name,address,SCORE()  from es_order where QUERY('address: 武漢') limit 10"
}

4.5 分組統(tǒng)計(jì)

GET /_sql?format=txt
{
"query":"select city, count(*) as age_cnt from es_order group by city"
}

這種方式要更加直觀、簡(jiǎn)潔。

HAVING
我們可以使用HAVING語(yǔ)句對(duì)分組數(shù)據(jù)進(jìn)行二次篩選,比如篩選分組記錄數(shù)量大于1000的信息,查詢(xún)語(yǔ)句如下。

POST /_sql?format=txt
{
 "query":"select city, count(*) as age_cnt from es_order group by city having count(*) > 1000"
}

ORDER BY
使用ORDER BY語(yǔ)句對(duì)數(shù)據(jù)進(jìn)行排序,比如按照統(tǒng)計(jì)字段從高到低排序,查詢(xún)語(yǔ)句如下。

POST /_sql?format=txt
{
 "query":"select city, count(*) cc as age_cnt from es_order group by city having count(*) > 1000 order by cc "
}

注意: 目前Elasticsearch SQL還存在一些限制。例如:不支持JOIN、不支持較復(fù)雜的子查詢(xún)。所以,有一些相對(duì)復(fù)雜一些的功能,還得借助于DSL方式來(lái)實(shí)現(xiàn)

4.6 DESCRIBE

使用DESCRIBE語(yǔ)句查看索引中有哪些字段,比如查看es_order索引的字段,查詢(xún)語(yǔ)句如下。

POST /_sql?format=txt
{
  "query": "DESCRIBE es_order"
}

4.7 SHOW TABLES

使用SHOW TABLES查看所有的索引

POST /_sql?format=txt
{
  "query": "SHOW TABLES"
}

4.8 查詢(xún)支持的函數(shù)

使用SQL查詢(xún)ES中的數(shù)據(jù),不僅可以使用一些SQL中的函數(shù),還可以使用一些ES中特有的函數(shù)。SHOW FUNCTIONS語(yǔ)句查看所有支持的函數(shù),比如搜索所有帶有DATE字段的函數(shù)可以使用如下語(yǔ)句。

POST /_sql?format=txt
{
  "query": "SHOW FUNCTIONS LIKE '%DATE%'"
}

五、適用場(chǎng)景及潛在限制

Elasticsearch SQL適用于需要對(duì)大量數(shù)據(jù)進(jìn)行復(fù)雜查詢(xún)的場(chǎng)景,如數(shù)據(jù)分析、報(bào)表生成、數(shù)據(jù)探索等。然而,由于SQL查詢(xún)的復(fù)雜性,它可能不適用于所有場(chǎng)景。例如,對(duì)于需要高并發(fā)、低延遲的場(chǎng)景,原生REST查詢(xún)可能更合適。

此外,雖然Elasticsearch SQL提供了SQL接口,但它并不是完全兼容SQL。例如,它不支持所有的SQL函數(shù)和特性。因此,在使用Elasticsearch SQL時(shí),需要了解它的限制,并根據(jù)實(shí)際情況選擇使用。

總結(jié)來(lái)說(shuō),Elasticsearch SQL提供了一種直觀、易用的方式查詢(xún)Elasticsearch數(shù)據(jù)。它允許開(kāi)發(fā)者利用熟悉的SQL語(yǔ)言,編寫(xiě)更直觀、更易懂的查詢(xún),并避免對(duì)大量復(fù)雜的原生REST請(qǐng)求的編寫(xiě)。然而,它的適用場(chǎng)景和性能特點(diǎn)需要在實(shí)際使用中仔細(xì)考慮。

到此這篇關(guān)于在Elasticsearch中啟用和使用SQL功能的文章就介紹到這了,更多相關(guān)Elasticsearch使用SQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SQL Server:觸發(fā)器實(shí)例詳解

    SQL Server:觸發(fā)器實(shí)例詳解

    觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,它不能被顯式地調(diào)用,而是在往表中插入記錄﹑更新記錄或者刪除記錄時(shí)被自動(dòng)地激活。本篇文章講訴了SQL Server:觸發(fā)器實(shí)例,有興趣的可以了解一下。
    2016-12-12
  • TRUNCATE 快速刪除表中的所有數(shù)據(jù)

    TRUNCATE 快速刪除表中的所有數(shù)據(jù)

    刪除表中的所有行,而不記錄單個(gè)行刪除操作。TRUNCATE TABLE 在功能上與沒(méi)有 WHERE 子句的 DELETE 語(yǔ)句相同;但是,TRUNCATE TABLE 速度更快,使用的系統(tǒng)資源和事務(wù)日志資源更少。
    2010-05-05
  • SQL Server中的SELECT會(huì)阻塞SELECT嗎

    SQL Server中的SELECT會(huì)阻塞SELECT嗎

    這篇文章主要給大家介紹了SQL Server中的SELECT會(huì)阻塞SELECT的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • sqlserver中更改數(shù)據(jù)庫(kù)所屬為dbo的方法

    sqlserver中更改數(shù)據(jù)庫(kù)所屬為dbo的方法

    sqlserver中更改數(shù)據(jù)庫(kù)所屬為dbo的方法,需要的朋友可以參考下。
    2010-11-11
  • SQL?Server主鍵與外鍵設(shè)置以及相關(guān)理解

    SQL?Server主鍵與外鍵設(shè)置以及相關(guān)理解

    在數(shù)據(jù)庫(kù)的學(xué)習(xí)中對(duì)于一個(gè)表的主鍵和外鍵的認(rèn)識(shí)是非常重要的,下面這篇文章主要給大家介紹了關(guān)于SQL?Server主鍵與外鍵設(shè)置以及相關(guān)理解的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • SQL Server數(shù)據(jù)庫(kù)定時(shí)自動(dòng)備份

    SQL Server數(shù)據(jù)庫(kù)定時(shí)自動(dòng)備份

    這篇文章主要為大家詳細(xì)介紹了SQL Server數(shù)據(jù)庫(kù)定時(shí)自動(dòng)備份的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • SQL?Server查詢(xún)結(jié)果導(dǎo)出到EXCEL表格的圖文教程

    SQL?Server查詢(xún)結(jié)果導(dǎo)出到EXCEL表格的圖文教程

    相信大家常常會(huì)遇到將SqlServer查詢(xún)結(jié)果導(dǎo)出到Excel的問(wèn)題,下面這篇文章主要給大家給大家介紹了SQL?Server查詢(xún)結(jié)果導(dǎo)出到EXCEL表格的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 分享Sql日期時(shí)間格式轉(zhuǎn)換

    分享Sql日期時(shí)間格式轉(zhuǎn)換

    這篇文章介紹了Sql日期時(shí)間格式轉(zhuǎn)換,有需要的朋友可以參考一下
    2013-08-08
  • SQL Server事務(wù)日志已滿(mǎn)的三種解決方案

    SQL Server事務(wù)日志已滿(mǎn)的三種解決方案

    我們安裝數(shù)據(jù)庫(kù)后,系統(tǒng)會(huì)默認(rèn)把數(shù)據(jù)庫(kù)文件和數(shù)據(jù)庫(kù)日志文件最大設(shè)為500MB,當(dāng)然你中途可以更改這個(gè)限制,當(dāng)日志文件接近最大值時(shí),繼續(xù)使用數(shù)據(jù)庫(kù)會(huì)提示:事務(wù)日志已滿(mǎn),本文給出了三種解決方案,需要的朋友可以參考下
    2023-11-11
  • sqlserver substring函數(shù)使用方法小結(jié)

    sqlserver substring函數(shù)使用方法小結(jié)

    在操作sqlserver時(shí)候用到了substring函數(shù),特整理一些實(shí)例,需要的朋友可以參考下。
    2009-12-12

最新評(píng)論