使用Elasticsearch-jdbc为MySQL数据库建立索引
elasticsearch-jdbc
环境
- Ubuntu 14.04
- JDK 1.8.0_66
- Elasticsearch 2.3.1
- Elasticsearch-jdbc 2.3.1.0
- Elasticsearch单节点环境
进入es目录~/cluster/elasticsearch-2.3.1
下载elasticsearch-jdbc包,并解压
$ wget http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2.3.1.0/elasticsearch-jdbc-2.3.1.0-dist.zip
$ unzip elasticsearch-jdbc-2.3.1.0-dist.zip
数据库中的数据
数据位于10.110.1.47:3306下的ispider_data数据库,表名为es_test
共三条数据如下:
id name
4 zhangsan
2 lisi
3 wangwu
编辑数据导入脚本import.sh
vi import.sh
输入:
bin=/home/es/cluster/elasticsearch-2.3.1/elasticsearch-jdbc-2.3.1.0/bin
lib=/home/es/cluster/elasticsearch-2.3.1/elasticsearch-jdbc-2.3.1.0/lib
echo '{
"type" : "jdbc",
"jdbc": {
"url":"jdbc:mysql://10.110.1.47:3306/ispider_data",
"user":"root",
"password":"123456a?",
"sql":"select * from es_test",
"index" : "customer",
"type" : "external"
}}' | java \
-cp "${lib}/*" \
-Dlog4j.configurationFile=${bin}/log4j2.xml \
org.xbib.tools.Runner \
org.xbib.tools.JDBCImporter
上述,将MySQL中的数据建立为es中索引为customer,类型为external中。
查询索引
es@search1:~/cluster/elasticsearch-2.3.1$ curl 'localhost:9200/customer/external/_search?pretty&q=*'
结果显示:
{
"took" : 6,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 3,
"max_score" : 1.0,
"hits" : [ {
"_index" : "customer",
"_type" : "external",
"_id" : "AVQ8--xAkvh0m5n1OUEo",
"_score" : 1.0,
"_source" : {
"id" : "4",
"name" : "zhangsan"
}
}, {
"_index" : "customer",
"_type" : "external",
"_id" : "AVQ8--xBkvh0m5n1OUEq",
"_score" : 1.0,
"_source" : {
"id" : "3",
"name" : "wangwu"
}
}, {
"_index" : "customer",
"_type" : "external",
"_id" : "AVQ8--xBkvh0m5n1OUEp",
"_score" : 1.0,
"_source" : {
"id" : "2",
"name" : "lisi"
}
} ]
}
}
可见,_source中的各个字段field,与数据库中的各列对应。
注意,_source中的id是es_test表中的id列,索引中document的id是自动生成的,二者并不一样。
至此,从数据库MySQL导入ES建立索引的过程就完成了。
参考资料
http://www.voidcn.com/blog/kdchxue/article/p-5778237.html
使用Elasticsearch-jdbc为MySQL数据库建立索引的更多相关文章
- 千万级MySQL数据库建立索引,提高性能的秘诀
实践中如何优化MySQL 实践中,MySQL的优化主要涉及SQL语句及索引的优化.数据表结构的优化.系统配置的优化和硬件的优化四个方面,如下图所示: SQL语句及索引的优化 SQL语句的优化 SQL语 ...
- 为mysql数据库建立索引
前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过 ...
- Mysql数据库建立索引的优缺点有哪些?
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 什么是索引 数据库索引好比是一本书前面的目录,能加快数据库的查询速度. 例如这样一个查询:select * ...
- JDBC连接MySQL数据库代码模板
下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- JDBC连接MySQL数据库及示例
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一 ...
- Java通过JDBC 进行MySQL数据库操作
转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...
- 使用JDBC操作MySQL数据库
一.JDBC简介 JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组 ...
随机推荐
- HNOI2004 宠物收养所 (平衡二叉树)
题目链接 平衡树基础题,用于测试各种平衡树的性能(雾) treap: #include<bits/stdc++.h> typedef long long ll; using namespa ...
- MySQL实战 | 01-当执行一条 select 语句时,MySQL 到底做了啥?
原文链接:当执行一条 select 语句时,MySQL 到底做了啥? 也许,你也跟我一样,在遇到数据库问题时,总时茫然失措,想重启解决问题,又怕导致数据丢失,更怕重启失败,影响业务. 就算重启成功了, ...
- java编程思想第九章接口
9.1抽象类和抽象方法 为什么要有抽象类? 是希望通过通用接口操作一系列类. 那么抽象类的形式是什么样的呢? 声明类的使用使用abstract关键字,且在该类中应该具有抽象方法. 注:抽象方法被关键字 ...
- Azure上采用Json Template从已有的VHD创建VM
从已有的VHD创建VM是使用Azure中经常要操作的内容. 本文将介绍如何采用Json Template从已经有的VHD创建VM. 一.准备VHD 在我的Azure账户中选择一台VM,如下图: 查看其 ...
- 在Mac系统下使用自己安装的PHP
今天在安装单元测试框架PHPUnit,需要PHP的最低版本是5.6,由于我的MacBook自带的PHP版本是5.5.36,不能满足安装条件. 看了一下这个网址:https://php-osx.liip ...
- appium运行时启动失败
1.检查服务是否开启 2.简单Android设备是否连接成功 3.检查4723端口是否被占用: netstat -ano|findstr '4723' 查到被占用后,找到pid,进入任务管理器查看该p ...
- “百度杯”CTF比赛 十一月场(Misc)
签到题: 题目提示: 文件在i春秋的ctf2群里,加群下载文件 下载下来之后发现有压缩密码 题目提示有提示解压密码:key:ichunqiumemeda 打开文件,得到flag 签到题2: 点击下载附 ...
- vue-cli脚手架build目录中的dev-server.js配置文件
本文系统讲解vue-cli脚手架build目录中的dev-server.js配置文件 这个配置文件是命令npm run dev 和 npm run start 的入口配置文件,主要用于开发环境 由于这 ...
- SPARC T4 RAID Setup (ZT)
http://www.confignotes.com/2013/09/sparc-t4-raid-setup/ How to configure a RAID volume with the inte ...
- leetcode643
double findMaxAverage(vector<int>& nums, int k) { double max = INT_MIN; int len = nums.siz ...