简介
本工具包 与 presto 同属于跨存储引擎的 sql 计算引擎. 两者有一定的相似程度, 在这里做简要的对比, 并提供互操作说行.
特性对比
| 项目 | sybn dao | presto |
|---|---|---|
| 实现方式 | jdbc 驱动包 | java 服务 + jdbc 驱动包 |
| 集群方式 | 单机 | 集群 |
| 支持数据库 | jdbc/mongo/solr/es/hbase/等 | jdbc/mongo/es/hbase/hive/redis/druid等十余种 |
| 文件数据源 | excel/scv等文件 | log文件 |
| sql规范支持 | join非标准支持,不支持修改 | 不支持反引号, 不支持跨类型比较 1=”1” |
| 互操作性 | 支持引用 presto jdbc driver | 支持引用 sybn jdbc driver |
如何解决 presto 不支持标准 sql 的问题
使用 sybn jdbc driver 作为 presto jdbc driver 的包装类
-
可以完全解决 presto 不支持反引号的问题.
-
可以部分解决 presto 当 a 不为数字时 a=1 报类型不合法的问题.
技术实现是使用阿里的 druid ast 语法树框架来重写 sql 语句.
参考连接
- presto 支持的数据库列表 https://prestodb.io/docs/current/connector.html