etl 读写 elastic 同步数据
Elasticsearch 是什么
Elasticsearch 一个基于 Lucene 的搜索服务器
它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口对外开放。
Elasticsearch 是用 Java 语言开发的,并作为 Apache 许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch 用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。说的直白一点,你可以用 Elasticsearch 在企业内部搭建出类似百度、谷歌之类的搜索服务器。
通过 etl 实现对 elastic 的读写操作
Elasticsearch 的部署和使用不在这里介绍,这里主要介绍如何通过 etl engine 对 elastic 进行读写访问。
下面我们给出一个样本,实现从 index 为 es_db3 中的 elastic 读取数据,写入到 index 为 es_db4 的 elastic 中
elastic_to_elastic.grf 样本
<?xml version="1.0" encoding="UTF-8"?>
<Graph>
<!--elastic 到 elastic-->
<Node id="ELASTIC_READER_01" dbConnection="CONNECT_01"
type="ELASTIC_READER" desc="节点2" sourceFields="custom_type;username;desc;address" fetchSize="2" >
<Script name="sqlScript"><![CDATA[
{
"query" : {
"bool":{
"must":[
//{
// "term": { "username.keyword": "王先生" }
// "match": { "username": "" }
// },
{
"term": { "custom_type":"t_user_info" }
}
]
}
}
}
]]></Script>
</Node>
<Node id="ELASTIC_WRITER_01" dbConnection="CONNECT_02"
type="ELASTIC_WRITER" desc="节点2" outputFields="custom_type;username;desc;address;_id" renameOutputFields="custom_type1;username1;desc1;address1;id1"
idType="2" idExpress="id1">
</Node>
<Line id="LINE_01" type="STANDARD" from="ELASTIC_READER_01" to="ELASTIC_WRITER_01" order="0" metadata="METADATA_01">线标注</Line>
<Metadata id="METADATA_01">
<Field name="custom_type1" type="string" default="-1" nullable="false"/>
<Field name="username1" type="string" default="-1" nullable="false"/>
<Field name="desc1" type="string" default="-1" nullable="false"/>
<Field name="address1" type="string" default="-1" nullable="false"/>
<Field name="id1" type="string" default="-1" nullable="false"/>
</Metadata>
<Connection id="CONNECT_01" dbURL="http://127.0.0.1:9200" database="es_db3" username="elastic" password="123456" batchSize="1000" type="ELASTIC"/>
<Connection id="CONNECT_02" dbURL="http://127.0.0.1:9200" database="es_db4" username="elastic" password="123456" batchSize="1000" type="ELASTIC"/>
</Graph>
复制代码
节点使用说明
调用方式
etl_engine.exe -fileUrl elastic_to_elastic.grf
参考资料
https://github.com/hw2499/etl-engine
评论