Presto支持Elasticsearch數(shù)據(jù)源配置詳解
正文
強(qiáng)烈建議使用Elasticsearch 6.0.0或更高版本
在實(shí)際工作中我們使用到elasticsearch的場景也很多,為了方便我們統(tǒng)一SQL的查詢方式,我們需要將elasticsearch接入到presto中,當(dāng)然這也是合理的,接下來我們講解如何進(jìn)行elasticsearch數(shù)據(jù)源的接入!
數(shù)據(jù)源配置
- 首先進(jìn)入presto安裝目錄
cd <PrestoHome>
- 創(chuàng)建presto對接elasticsearch的配置文件
vim etc/catalog/elasticsearch.properties
在該文件中配置以下內(nèi)容:
connector.name=elasticsearch elasticsearch.default-schema-name=test elasticsearch.table-description-directory=etc/elasticsearch/ elasticsearch.scroll-size=1000 elasticsearch.scroll-timeout=30s elasticsearch.request-timeout=2s elasticsearch.max-request-retries=10 elasticsearch.max-request-retry-time=90s elasticsearch.max-hits=1000000
參數(shù)的詳細(xì)含義詳見官方文檔
數(shù)據(jù)表配置
我們配置的數(shù)據(jù)表目錄是etc/elasticsearch/,所以我們需要在該目錄下創(chuàng)建相關(guān)數(shù)據(jù)表配置
比如我們在es中有一個(gè)明教test的索引,索引大概如下
{
"test": {
"mappings": {
"elasticsearch": {},
"doc": {
"properties": {
"msg": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"query": {
"properties": {
"match": {
"properties": {
"msg": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
}
}
}
}
在該索引中我們只有一個(gè)字段那就是msg,根據(jù)這個(gè)索引我們配置適配presto的數(shù)據(jù)表
數(shù)據(jù)表配置如下:
{
"tableName":"test",
"schemaName":"test",
"host":"localhost",
"port": 9300,
"clusterName":"es",
"index":"test",
"indexExactMatch":false,
"type":"doc",
"columns":[
{
"name":"msg",
"type":"varchar",
"jsonPath":"msg",
"jsonType":"varchar"
}
]
}
需要注意的是我們在columns中的類型指定的是presto中的數(shù)據(jù)類型 jsonPath針對于json數(shù)據(jù)而言,不是json數(shù)據(jù)的話直接使用key即可,詳細(xì)的參數(shù)配置詳見官方文檔
注意事項(xiàng):
clusterName一定要于ES服務(wù)配置的一致,否則會出現(xiàn)無法連接錯(cuò)誤
jsonPath配置格式為$.key
配置完成后重啟presto服務(wù)即可
數(shù)據(jù)測試
- 連接presto客戶端
presto-cli/target/presto-cli-0.235-SNAPSHOT-executable.jar --server <PrestoServer>
- 執(zhí)行查詢sql
SELECT msg FROM elasticsearch.test.test limit 1;
elasticsearch.test.test: <catalog>.<database>.<table>
返回結(jié)果如下:
msg
-----
你好
(1 row)
Query 20200429_095419_00007_p45px, FINISHED, 1 node
Splits: 18 total, 18 done (100.00%)
0:05 [39.8K rows, 660KB] [8.12K rows/s, 135KB/s]
返回我們在ES中的數(shù)據(jù)結(jié)果,我們集成ES成功!
注意: 需要同步配置etc目錄到所有的節(jié)點(diǎn)中,并重啟服務(wù)
以上就是Presto支持Elasticsearch數(shù)據(jù)源配置詳解的詳細(xì)內(nèi)容,更多關(guān)于Presto Elasticsearch數(shù)據(jù)源配置的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
spring導(dǎo)入framework報(bào)紅問題
這篇文章主要介紹了spring導(dǎo)入framework報(bào)紅問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
SpringBoot導(dǎo)入導(dǎo)出數(shù)據(jù)實(shí)現(xiàn)方法詳解
這篇文章主要介紹了SpringBoot導(dǎo)入導(dǎo)出數(shù)據(jù)實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-12-12
Struts2學(xué)習(xí)筆記(7)-訪問Web元素
這篇文章主要介紹Struts2中訪問Web元素的方法,希望能給大家做一個(gè)參考。2016-06-06
Java實(shí)現(xiàn)Swing組件定制Button示例
這篇文章主要介紹了Java實(shí)現(xiàn)Swing組件定制Button,涉及java Swing組件Button相關(guān)屬性設(shè)置與使用操作技巧,需要的朋友可以參考下2018-01-01
MyBatis中的SQL映射文件如何配置參數(shù)映射和使用方法
MyBatis 是一種開源的 Java 持久化框架,它可以自動將數(shù)據(jù)庫中的數(shù)據(jù)映射到 Java 對象中,并且使得 Java 對象可以非常方便地存儲到數(shù)據(jù)庫中,本文將介紹 MyBatis 中 SQL 映射文件的參數(shù)映射配置和使用方法,需要的朋友可以參考下2023-07-07
response.setContentType()參數(shù)以及作用詳解
這篇文章主要介紹了response.setContentType()參數(shù)以及作用詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08

