MaxCompute JDBC 2.2 发布说明

简介: 相比于v.1.9.1,MaxCompute JDBC v.2.2在易用性、性能以及兼容性方面都有了更好的提升,本文将对其改进与差别做一下简要的说明。

简介

MaxCompute JDBC 2.2正式版已于2017年2月24日正式发布。

github地址:https://github.com/aliyun/aliyun-odps-jdbc/releases/tag/v2.2

MAVEN依赖:

<dependency>
    <groupId>com.aliyun.odps</groupId>
    <artifactId>odps-jdbc</artifactId>
    <version>2.2</version>
</dependency>

在此之前,MaxCompute JDBC最新的两个版本分别是v.1.9.1稳定版和v.2.0 beta版,而v.2.0 beta 之所以没有发布正式版,也是因为其依赖的服务端版本当时尚未对外发布。如今随着MaxCompute新版的对外发布,MaxCompute JDBC 2.2版也正式发布了。

相比于v.1.9.1,v.2.2在易用性、性能以及兼容性方面都有了更好的提升,本文将对其改进与差别做一下简要的说明。

易用性方面

我们在2.X中对配置做了一些面向易用性的调整,这部分具体可以参看《MaxCompute JDBC 2.0 beta中的一些变更说明》一文,而相比于2.0 beta,在2.2正式版中,我们又新增了tunnel_endpoint配置项,其URL与Property两种配置方式的key都为tunnel_endpoint。可用于为tunnel单独指定endpoint,从而覆盖掉默认自动路由的配置内容。

性能方面

在v.1.9.1中,executeQuery一个select查询到获得结果集ResultSet背后的实现是相当低效的。大致的实现逻辑是会通过create table xxx as select …将查询结果集先灌入一张临时表,然后通过tunnel从该临时表下载结果集,最后再drop掉该临时表,其间对于临时表的DDL操作都需要访问底层meta存储,而这些操作的开销本是可以避免的。在v.2.2中,MaxCompute引入了一个叫做InstanceTunnel的新组件,其可用于直接下载一个ODPS Instance的查询结果集,而无需为这些结果集创建临时表,使性能得到了较大的提升。

兼容性方面

在v.1.9.1中,MaxCompute JDBC仅支持原ODPS固有的几种老的数据类型,即bigint、boolean、double、varchar、datetime以及decimal。针对MaxCompute 2.0开始对Hive数据类型的兼容,MaxCompute JDBC 2.2也配合该功能对新类型做了兼容,这些类型包括void、bigint、string、datetime、double、boolean、decimal、array、map、struct、int、tinyint、smallint、date、timestamp、float、char(n)、binary、varchar、interval_year_month以及interval_day_time。但是具体的使用需要配合你的project的配置来看,因为这些MaxCompute的新功能是需要选择性打开的。

另外,我们对

execute ("set x.y.z=abc")

这类flag的生命周期也作了调整,在v.1.9.1中,其生命周期是statement级别的。而在v.2.2中,将被扩大到connection级别。这样一来,同一connection只需第一次创建statement时设置一次set flag,后续这些flag将对跨statement的操作一直有效。

而对于业界的常见工具,2.2也有了更好的支持,可以参看以下几篇文章来获取集成相关工具的最佳实践。
《通过Apache Zeppelin 快速实现数据可视化》
《借力QlikView玩转数据分析》

总结

如果你在使用MaxCompute JDBC过程中遇到任何疑问或需求,欢迎向我们反馈。你可以在我们的github中给我们留言或新建issue。当然,我们更欢迎支持MaxCompute JDBC的社区朋友向我们贡献代码,帮助我们一起更快更好的健康发展。

欢迎加入MaxCompute钉钉群讨论

03ea92a4c1fbb04d443ff8f015c957815055111e

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
6月前
|
SQL Java 大数据
Hive实战(03)-深入了解Hive JDBC:在大数据世界中实现数据交互
Hive实战(03)-深入了解Hive JDBC:在大数据世界中实现数据交互
176 1
|
6月前
|
SQL 前端开发 Java
大数据平台底层技术-JAVA篇-如何动态加载不同版本的 HIVE JDBC 驱动 - 一文读懂JAVA的类加载机制 1
大数据平台底层技术-JAVA篇-如何动态加载不同版本的 HIVE JDBC 驱动 - 一文读懂JAVA的类加载机制
|
6月前
|
SQL 安全 Java
开启 Kerberos 安全认证的大数据环境中如何正确指定 HS2 的 jdbc url 地址?
开启 Kerberos 安全认证的大数据环境中如何正确指定 HS2 的 jdbc url 地址?
|
6月前
|
SQL Java 大数据
大数据平台底层技术-JAVA篇-如何动态加载不同版本的 HIVE JDBC 驱动 - 一文读懂JAVA的类加载机制 2
大数据平台底层技术-JAVA篇-如何动态加载不同版本的 HIVE JDBC 驱动 - 一文读懂JAVA的类加载机制
|
10月前
|
数据采集 存储 缓存
大数据数据采集的数据采集(收集/聚合)的Flume之数据采集流程的Channel的JDBC Channel
在大数据处理和管理中,数据采集是非常重要的一环。为了更加高效地进行数据采集,Flume作为一种流式数据采集工具得到了广泛的应用。其中,Flume的Channel模块是实现数据缓存和传输的核心模块之一。本文将介绍Flume中的JDBC Channel,讲解其数据采集流程。
186 0
|
Java 大数据 数据库连接
【大数据系列之JDBC】(八):使用PreparedStatement获取结果集对象
【大数据系列之JDBC】(八):使用PreparedStatement获取结果集对象
280 0
|
SQL Java 大数据
【大数据系列之JDBC】(七):JDBC解决字段名和Java中对象名不一致
【大数据系列之JDBC】(七):JDBC解决字段名和Java中对象名不一致
144 0
【大数据系列之JDBC】(七):JDBC解决字段名和Java中对象名不一致
|
SQL Java 大数据
【大数据系列之JDBC】(六):使用PreparedStatement实现通用的增删改查操作
【大数据系列之JDBC】(六):使用PreparedStatement实现通用的增删改查操作
110 0
|
SQL Java 大数据
【大数据系列之JDBC】(五):使用PrepareStatement防止SQL注入
【大数据系列之JDBC】(五):使用PrepareStatement防止SQL注入
137 0
|
SQL 存储 Java
【大数据系列之JDBC】(四):Statement存在SQL注入问题
【大数据系列之JDBC】(四):Statement存在SQL注入问题
149 0
【大数据系列之JDBC】(四):Statement存在SQL注入问题

相关产品

  • 云原生大数据计算服务 MaxCompute