上节课我们讲了kettle的基本使用以及数据库表间转换(kettle-spoon mysql表间转换)
这节课我们来学习将mysql的数据写入到elastic中
我的软件环境
kettle 9.3
elasticsearch 6.4.3
1. 环境准备
\pdi-ce-9.3.0.0-428\data-integration\plugins
首先注意看下有没有es的插件elasticsearch-bulk-insert-plugin
2. 创建转换
启动spoon创建「转换」,将「表输入」和「Elasticsearch bulk insert 」拖动到右侧工作区
「Elasticsearch bulk insert」 在「不推荐的」分类下
此步骤不会的请看上节课学习基础操作(kettle-spoon mysql表间转换)
3. 配置「表输入」
4. 配置「Elasticsearch bulk insert 」
4.1配置「Elasticsearch bulk insert 」- 「general」
一般配置分为 index 和 options 两部分。
index:
需要填写es索引名称和索引类型type。索引可以提前创建也可以不提前创建,数据传输时首次会自动创建,只是在「test index」时会报错index not found ,但是不影响。
如果提前创建好索引,等「Serves」和「Settings」 配置完后点击「Test Index」,连接成功通过会弹出提示框 "Index found (x/x shards)"。表示es配置成功。
Option:
Batch Size —— 批量提交的大小;
Batch Timeout —— 超时时间;
ID Field —— 作为es中文档记录id的字段。
注意:作为id的字段需要特别指定,单独取表主键列作为id更新,而且不能跟正常使用的字段读取数据
OverWrite if exists —— 复写已存在的记录;
4.2 配置「Elasticsearch bulk insert 」- 「Settings」
输入es集群的集群名称,如果设置密码了需要配置用户和密码。
集群名称参数 —— cluster_name xxxxx
用户验证参数(用户和密码用冒号隔开) —— xpack.security.user aaaaa:bbbbb
4.3 配置「Elasticsearch bulk insert 」- 「server」
测试连接
4.4 配置「Elasticsearch bulk insert 」- 「Fields」
可通过「获取字段 」直接获取
点击确定保存
5. 执行转换
6. 查看es数据
=================================================================
参考链接:kettle工具连接elasticsearch 7并导入MySQL表数据