Presto支持Elasticsearch數(shù)據(jù)源配置詳解
正文
強烈建議使用Elasticsearch 6.0.0或更高版本
在實際工作中我們使用到elasticsearch的場景也很多,為了方便我們統(tǒng)一SQL的查詢方式,我們需要將elasticsearch接入到presto中,當然這也是合理的,接下來我們講解如何進行elasticsearch數(shù)據(jù)源的接入!
數(shù)據(jù)源配置
- 首先進入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ù)的詳細含義詳見官方文檔
數(shù)據(jù)表配置
我們配置的數(shù)據(jù)表目錄是etc/elasticsearch/
,所以我們需要在該目錄下創(chuàng)建相關(guān)數(shù)據(jù)表配置
比如我們在es中有一個明教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 } } } } } } } } } } } }
在該索引中我們只有一個字段那就是msg,根據(jù)這個索引我們配置適配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即可,詳細的參數(shù)配置詳見官方文檔
注意事項:
clusterName一定要于ES服務(wù)配置的一致,否則會出現(xiàn)無法連接錯誤
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é)點中,并重啟服務(wù)
以上就是Presto支持Elasticsearch數(shù)據(jù)源配置詳解的詳細內(nèi)容,更多關(guān)于Presto Elasticsearch數(shù)據(jù)源配置的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot導(dǎo)入導(dǎo)出數(shù)據(jù)實現(xiàn)方法詳解
這篇文章主要介紹了SpringBoot導(dǎo)入導(dǎo)出數(shù)據(jù)實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-12-12MyBatis中的SQL映射文件如何配置參數(shù)映射和使用方法
MyBatis 是一種開源的 Java 持久化框架,它可以自動將數(shù)據(jù)庫中的數(shù)據(jù)映射到 Java 對象中,并且使得 Java 對象可以非常方便地存儲到數(shù)據(jù)庫中,本文將介紹 MyBatis 中 SQL 映射文件的參數(shù)映射配置和使用方法,需要的朋友可以參考下2023-07-07response.setContentType()參數(shù)以及作用詳解
這篇文章主要介紹了response.setContentType()參數(shù)以及作用詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08