DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、MaxCompute(原ODPS)、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

datax-elasticsearch是datax的一个支持elasticsearch的插件,包含elasticsearchreaderelasticsearchwriter两部分。借助于datax体系,能够高效的在elasticsearch与oracle、mysql、HDFS等异构数据源间同步数据。
阅读全文

说明

官方提供了完整的Java API和Rest API(文档地址),并提供了TransportClient客户端实现了Java API,Rest API因为使用http协议调用,并没有提供相应的客户端。

在前文 “elasticserch-sql和mybatis整合记录” 实现了elasticsearch-sql和mybatis的整合,但是elasticsearch-sql提供的功能相当有限,仅支持极其简单的查询,不支持增加、删除和修改。Rest API功能强大,在实际应用中可能会因前台参数的不同而组合不同的条件,拼接字符串又太麻烦,如果实现Rest API和mybatis整合,让mybatis强大的动态条件功能组合rest API,会让代码更简单更容易维护。

Rest API客户端使用Jest,具体详情和文档参考GitHub Jest主页。在之前的基础上修改整合。

2017-8-12修改:
重写了该项目,分离了Druid连接池,不再限制使用Druid,添加了Driver,项目已共享至GitHub elasticsearch-jdbc,欢迎fork

阅读全文

说明

elasticearch即es本身没有JDBC驱动,是无法像mybatis管理数据库连接池进行数据库操作的。在GitHub上有个elasticsearch-sql的项目,作为es的插件后能够使用sql对es进行数据检索,项目提供了一个支持JDBC的实验特性,在druid的基础上实现了部分JDBC的功能。GitHub上目前仅给出了一个使用用例

2017-8-12修改:
重写了该项目,分离了Druid连接池,不再限制使用Druid,添加了Driver,项目已共享至GitHub elasticsearch-jdbc,欢迎fork

1
2
3
4
5
6
7
8
9
10
11
12
13
Properties properties = new Properties();
properties.put("url", "jdbc:elasticsearch://192.168.70.128:9300/");
DruidDataSource dds = (DruidDataSource) ElasticSearchDruidDataSourceFactory.createDataSource(properties);
Connection connection = dds.getConnection();
PreparedStatement ps = connection.prepareStatement("SELECT * from radiott");
ResultSet resultSet = ps.executeQuery();
List<String> result = new ArrayList<String>();
while (resultSet.next()) {
System.out.println(resultSet.getString("id") + "," + resultSet.getString("name"));
}
ps.close();
connection.close();
dds.close();
阅读全文

翻译自elasticsearch官方文档,整理了java api和rest api的文档部分,仅仅是整理翻译,不是逐字逐句,某些遗漏部分请移步官方文档。

聚合

基础使用

1
2
3
4
5
6
7
8
9
10
11
12
13
SearchResponse sr = client.prepareSearch()
.setQuery(QueryBuilders.matchAllQuery())
.addAggregation(
AggregationBuilders.terms("agg1").field("field")
)
.addAggregation(
AggregationBuilders.dateHistogram("agg2")
.field("birth")
.interval(DateHistogramInterval.YEAR)
)
.execute().actionGet();
Terms agg1 = sr.getAggregations().get("agg1");
DateHistogram agg2 = sr.getAggregations().get("agg2");

阅读全文

elasticsearch版本 2.4.5

安装

  • 下载es并解压
  • 修改config目录下elasticsearch.yml文件

    1
    2
    3
    4
    cluster.name: my-es
    node.name: node-1
    network.host: 192.168.70.128
    http.port: 9200
  • 在elasticsearch根目录下创建data目录

elasticsearch不允许使用root账户启动,需要添加一个新账户

1
2
3
4
5
6
useradd esroot #创建用户
passwd esroot #设置密码,连续输入两次
groupadd es #添加分组
usermod -G esroot es #如果报用户“es”不存在,是因为服务器版本问题,改成usermod -G es esroot
chown -R esroot.es * #在elasticsearch根目录下执行,给用户赋权
su esroot #切换用户

阅读全文
  • 第 1 页 共 1 页

忘语

热爱生活,享受code


一名虔诚的程序猿