【Java】Win10 Kettle Spoon 抽MySQL資料到本地ES[二]
主頁: 寫程式的小王叔叔的部落格歡迎來訪
支援: 點贊收藏關注
社群: JAVA全棧進階學習社群歡迎加入
一、實現的具體步驟及效果
1.1 首先通過es-head建立es的查詢索引
1.2 mysql選擇測試表,並進行增加相應測試資料
1.3 然後通過kettle spoon 進行轉換,生成及作業設定
1.4 kettle spoon 成功連線 es
1.5 kettle spoon 進行推送到es中,並在kibana中進行檢視
二、背景理論
由於專案業務資料量背景,進行實時備份,跟中,分析資料的走勢,資料量增大導致MySQL訪問速度變慢,因此通過kkettle spoon 將MySQL中的資料定時抽取,並儲存到es中。
要求:
本地分別安裝kettle spoon9.0+ elk 6.8.13(es es-head kibana),安裝方法在本部落格中均可以找到
spoon :(原)Windows10 資料庫管理工具 Kettle Spoon的安裝 使用【一】_寫程式的小王叔叔的部落格-CSDN部落格
elk : (原) Elastic系列 → windows10 安裝 Elasticsearch + Kibana + Logstash【一】_寫程式的小王叔叔的部落格-CSDN部落格
三、操作方法
3.1 建立索引:
參考部落格:ElasticSearch 6.1.1--Head外掛新增索引及其新增,修改,刪除文件_指尖de柔情的部落格-CSDN部落格_elasticsearch head 刪除索引
3.2 建立對映
解釋:http://localhost:9200/search-to-es-log/search_to_log/
search-to-es-log : 之前建立索引的名稱
search_to_log : 給指定索引中建立的測試欄位集合
注意:mapping properties之間層級與關係不能錯
四、kettle spoon連線MySQL 抽資料,插入ES
4.1 kettle 連線 mysql
基本配置見 本博主 部落格 : (原)Windows10 資料庫管理工具 Kettle Spoon的安裝 使用【一】_寫程式的小王叔叔的部落格-CSDN部落格
4.2 編寫sql
4.3 kettle進行測試
4.4 kettle 往es 中寫 資料
業務解釋:將抽取後的資料進行寫入es中
kettle 寫入資料時提示錯誤:分別建立 寫入的過程,並執行
編輯
4.4.1 - 欄位屬性中有 【 Timestamp 】 情況時,kettle 進行設定:
4.4.1.1 設定資料庫連線的屬性: zeroDateTimeBehavior \= convertToNull
4.4.1.2 - 設定 時間格式型別
4.4.2 - 抽取資料時,遇到存在資料 為 null 時,將 欄位通過 “替換NULL值”進行格式化,
4.4.3 - 寫入完成後,自動多出一條全部為NULL的資料情況,
4.5. ES顯示資料
補充!Kettle Spoon 測試 連線 ES
5.1)spoon中 選擇“核心物件-生成記錄”,在記錄中進行設定測試的響應欄位(當前欄位和3.2中預設定欄位統一)
5.2)spoon中,在“核心物件-批量載入”中,找到 elasticsearch build insert功能,進行設定
問題:spoon 請求 localhost 本機es時,提示如下問題: Elasticsearch bulk insert.0 - ERROR (version 9.0.0.0-423, build 9.0.0.0-423 from 2020-01-31 04.53.04 by buildguy) : NoNodeAvailableException[None of the configured nodes are available:
解決:
NoNodeAvailableException[None of the configured nodes are available
可能的原因:
1、專案引用的 ES 版本和 Kettle Spoon 的版本不一樣;【本地是這種情況】:
由於本地kettle spoon版本是9.0+,es版本7.3+,由於7.3+版本問題多,並且提示版本不適配,因此這裡選擇降低es的基礎版本,選擇官網整套elk版本:6.8.13
ELK 6.8.13 : 官網下載地址:http://www.elastic.co/cn/downloads/past-releases#elasticsearch
2、埠不正確,tcp訪問埠是9300;【問題很少出現】
3、cluster.name不正確,可以通過訪問http://localhost:9200/檢視ES服務下的cluster.name;【問題很少出現】
4、ES服務沒啟動;【問題很少出現&&超級低階錯誤】
根據上面的【1】,我這裡重新修改版本,重新配置elk.
版本修改成功後,kettle 連線 es 成功,如圖:
問題解決後,進行設定“elasticeseartch bulk insert”的 general 、 servers 、 fields 、 settings,如圖:
五、效果
六、操作
2.1)建立索引通過谷歌瀏覽器的es-head外掛建立即可
下載地址:es-head谷歌瀏覽器外掛20210420.zip-系統安全文件類資源-CSDN下載
2.1)es-head 配置成功後,進行建立索引:參考文章:(原) Elastic系列 → 通過es-head建立索引 【一】
2.2)通過postman客戶端工具進行es索引引數建立
以上是自己整理的,並測試過,可以直接用
參考部落格:
使用spoon(kettle)工具抽取Elasticsearch的資料併入庫_zhyingvip的部落格-CSDN部落格_kettle讀取elasticsearch
2.資料倉庫-kettle抽取Mysql資料_吾我的部落格-CSDN部落格_kettle抽取mysql
kettle詳解(資料抽取、轉換、裝載)_JueDream的部落格-CSDN部落格_kettle 資料型別
以上是自己整理的,並測試過,可以直接用
轉載宣告:本文為博主原創文章,未經博主允許不得轉載
⚠️注意 ~
💯本期內容就結束了,如果內容有誤,麻煩大家評論區指出!
如有疑問❓可以在評論區留言💬或私信留言💬,盡我最大能力🏃♀️幫大家解決👨🏫!
如果我的文章有幫助到您,歡迎點贊+關注✔️鼓勵博主🏃,您的鼓勵是我分享的動力🏃🏃🏃~