簡體   English   中英

將NiFi連接到ElasticSearch

[英]Connecting NiFi to ElasticSearch

我正在嘗試解決一項任務,並會感謝任何幫助 - 文檔鏈接,論壇鏈接或其他常見問題解答,除https://cwiki.apache.org/confluence/display/NIFI/FAQs ,或任何有意義的答案這篇文章=)。

所以,我有以下任務:我的系統的初始部分每5-15分鍾從不同的數據庫源收集數據。 然后我刪除重復,刪除垃圾,根據邏輯組合來自不同來源的數據,然后將其重定向到系統的第二部分作為幾個流。 據我所知,“NiFi”可以最好的方式完成這項任務=)。

目前,我可以通過“GetHTTP”處理器成功從InfluxDB獲取信息。 但是我無法配置相同類型的處理器來從Elastic DB獲取具有所有必要選項的信息。 我希望從“現在 - 減去 - <5-15分鍾>”到“現在”的時間段內每5-15分鍾接收一次數據。 (取決於調度程序周期)和幾個額外的過濾器。 如果我理解正確,可以通過訂閱“_index”或通過定期請求DB以期望的間隔來實現。

我知道NiFi有幾個專為Elasticsearch設計的處理器(FetchElasticsearch5,FetchElasticsearchHttp,QueryElasticsearchHttp,ScrollElasticsearchHttp)以及GetHTTP和PostHTTP處理器。 然而,不幸的是,我缺乏信息甚至更好 - 例子 - 如何為我的目的配置他們的“屬性”=(。

FetchElasticsearchHttp,QueryElasticsearchHttp之間有什么區別? 哪一個更適合我的任務? GetHTTP和QueryElasticsearchHttp除了幾個特定領域之外有什么區別? 如果我根據需要調整它,GetHTTP會以同樣的方式運行嗎?

有什么建議?

我將不勝感激任何幫助。

ElasticsearchHttp處理器通過根據您設置的屬性生成適當的REST API調用,嘗試使與ES交互變得更容易。 如果您知道所需的完整URL,則可以使用GetHttp或InvokeHttp。 然而,ESHttp處理器允許您輸入您正在尋找的東西,它將生成URL並返回結果。

當您知道標識符時, FetchElasticsearch (及其變體)用於獲取特定文檔。 這有時在搜索/查詢后使用,在您知道所需文檔后,一次返回一個文檔。

QueryElasticsearchHttp用於當您不想知道所需文檔時,想要對文檔執行Lucene樣式查詢。 它只返回該索引的index.max_result_window值。 要獲得更多記錄,您可以之后使用ScrollElasticsearchHttp 注意 :QueryElasticsearchHttp需要一個將作為URL的“q”參數的查詢。 這種“迷你語言”不支持所有字段/運營商(有關詳細信息,請參閱此處 )。

對於您的用例,您可能需要InvokeHttp才能發出您描述的查詢類型。 本文介紹如何發出最近15分鍾的查詢。 返回結果后,您可能需要使用EvaluateJsonPath和/或SplitJson的某種組合來處理各個文檔,有關詳細信息,請參閱Elasticsearch REST API文檔(和NiFi處理器文檔)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM