Win10 Kettle抽MySQL数据到本地ES

举报
写程序的小王叔叔 发表于 2022/05/18 11:47:23 2022/05/18
【摘要】 主页:小王叔叔的博客

主页小王叔叔的博客

支持:点赞👍关注✔️收藏💖


目录

一、实现的具体步骤及效果

二、背景理论

三、操作方法 

3.1 创建索引:

3.2 建立映射

四、kettle spoon连接MySQL 抽数据,插入ES

4.1 kettle 连接 mysql 

4.2 编写sql 

4.3 kettle进行测试

4.4 kettle 往es 中写  数据 

4.5. ES显示数据

补充!Kettle Spoon  测试 连接 ES 

 五、效果

六、操作



一、实现的具体步骤及效果

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柔情的博客

      

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值”进行格式化,

见地址:Kettle案例十五:替换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 : 官网下载地址:https://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的数据并入库

2.数据仓库-kettle抽取Mysql数据_吾我的博客

kettle详解(数据抽取、转换、装载)_JueDream的博客

以上是自己整理的,并测试过,可以直接用



转载声明:本文为博主原创文章,未经博主允许不得转载

⚠️注意⚠️~

💯本期内容就结束了,如果内容有误,麻烦大家评论区指出

如有疑问❓可以在评论区留言💬或私信留言💬,尽我最大能力🏃‍♀️帮大家解决👨‍🏫!

如果我的文章有帮助,点赞👍关注💖,您的鼓励是我分享的动力🏃🏃🏃~









【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。