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)文章
Java進(jìn)階教程之運(yùn)行時(shí)類型識別RTTI機(jī)制
這篇文章主要介紹了Java進(jìn)階教程之運(yùn)行時(shí)類型識別RTTI機(jī)制,在Java運(yùn)行時(shí),RTTI維護(hù)類的相關(guān)信息,比如多態(tài)(polymorphism)就是基于RTTI實(shí)現(xiàn)的,需要的朋友可以參考下2014-09-09
Maven如何解決添加依賴之后沒有加載jar包報(bào)錯(cuò)問題
這篇文章主要介紹了Maven如何解決添加依賴之后沒有加載jar包報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
SpringBoot 統(tǒng)一請求返回的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot 統(tǒng)一請求返回的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
淺談SpringBoot如何封裝統(tǒng)一響應(yīng)體
今天帶各位小伙伴學(xué)習(xí)SpringBoot如何封裝統(tǒng)一響應(yīng)體,文中有非常詳細(xì)的介紹及代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05

