elasticsearch-sql 增加 jdbc支持

增加该功能,纯粹是在关issue的时候看到了第一个issue,参看 Is there any plan for JDBC drivers?

大家讨论的时候,提供了两个选择,一个是apache calcite, 另外一个是利用 alibaba 的jdbc 连接池 druid。最后我选择了使用druid 来完成。为啥不用第一个的原因如下:

I have tried calcite to add this feature to es-sql. It's proved to be unsuitable. calcite kind like spark datasource API which provide scanTable,filterTabe,translateTable which means you cannot access original sql(Raw SQL) but some expressions . Also, this means join ,group by action are all done in calcite which really impact performance .

PS: 该功能还只是Demo阶段,很多功能还不完备。等稳定后会合并到原项目中。目前经过几轮PR,

elasticsearch-sql 已经支持比较复杂的SQL语法了。

安装步骤

代码示例

public class JDBCTests {
    @Test
    public void testJDBC() throws Exception {
        Properties properties = new Properties();
        properties.put("url", "jdbc:elasticsearch://127.0.0.1:9300/twitter2");
        DruidDataSource dds = (DruidDataSource) ElasticSearchDruidDataSourceFactory.createDataSource(properties);
        dds.setInitialSize(1);
        Connection connection = dds.getConnection();
        PreparedStatement ps = connection.prepareStatement("SELECT split(trim(concat_ws('dd',newtype,num_d)),'dd')[0] as nt from  twitter2");
        ResultSet resultSet = ps.executeQuery();
        while (resultSet.next()) {
            System.out.println(resultSet.getString("nt"));
        }

        ps.close();
        connection.close();
        dds.close();
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏星汉技术

HIVE的UDF以及JDBC编程

36660
来自专栏bboysoul

磁盘分析工具Ncdu的简单使用和体验

因为我使用的是120g的固态硬盘,所以我的本地就不能存很多东西,经常要删除很多东西,所以看每个目录的大小就很重要,下面推荐一个磁盘分析工具Ncdu,这个工具是用...

8010
来自专栏杨建荣的学习笔记

dataguard备库的数据文件的迁移实战(r8笔记第24天)

在前几天也花了一点时间测试了一下关于备库数据文件的迁移,这部分的工作看起来还是比较常规的,当然方法也很多。但是在实际工作中就更不能掉以轻心,所有 的操作都要有理...

359110
来自专栏jiajia_deng

递归删除文件(支持通配符)

23740
来自专栏Porschev[钟慰]的专栏

Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

前言   前面一有写到一篇Node.js+Express构建网站简单示例https://cloud.tencent.com/developer/article/...

2.2K90
来自专栏依乐祝

.NET Core实战项目之CMS 第十一章 开发篇-数据库生成及实体代码生成器开发

上篇给大家从零开始搭建了一个我们的ASP.NET Core CMS系统的开发框架,具体为什么那样设计我也已经在第十篇文章中进行了说明。不过文章发布后很多人都说了...

22140
来自专栏数据和云

【循序渐进Oracle】Oracle的逻辑备份与恢复

编辑手记:针对最近发生的炉石及GitLab事件,我们不得不再次强调备份的重要性。DBA的四大守则,第一条就是备份重于一切。年初做好备份,愿你的系统17无恙。 本...

46080
来自专栏乐沙弥的世界

RMAN 数据库克隆文件位置转换方法

      在使用RMAN克隆数据库时,如果辅助数据库(新数据库)使用了与目标数据库(原数据库)使用了不同的路径,那么就存在位置转换的问题。在Oracle中,控...

8010
来自专栏杨建荣的学习笔记

一条关于swap争用的报警邮件分析(一)(r7笔记第28天)

最近这些天有一台服务器总是会收到剩余swap过低的告警。 邮件内容大体如下: ############ ZABBIX-监控系统: --------------...

37940
来自专栏GIS讲堂

gps实时位置的展示

很多时候,我们有这样的使用场景:外业人员在外作业,我们需要知道人员的当前的实时位置和人员信息,如何实现呢?本文将为大家简单的说明该场景下我们应该实现。

25440

扫码关注云+社区

领取腾讯云代金券