Es不允许免费版的jdbc连接,但可以免费使用30天,社区的政策是
修改政策
curl -X POST "localhost:9200/_license/start_trial?acknowledge=true&pretty"
ES的mavn配置
<dependency>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>x-pack-sql-jdbc</artifactId>
<version>7.8.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.10.1</version>
</dependency>
代码连接
import java.sql.*;
public class Sql_Jdbc {
public static void main(String[] args) throws Exception {
Connection connection=DriverManager.getConnection("jdbc:es://http://hadoop101:9200?timezone=UTC&page.size=250");
Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("select * from item LIMIT 5");
while (results.next()) {
System.out.println(results.getString(2));
}
}
}
注意
es的sql的where操作值支持keyword类型,也有可能我的mapping设置的问题