MaxCompute JDBC 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钉钉群讨论

时间: 2024-09-20 00:56:56

MaxCompute JDBC 2.2 发布说明的相关文章

手把手教你完成MaxCompute JDBC自定义日志配置

注:MaxCompute原名ODPS,是阿里云自研的大数据计算平台,文中出现的MaxCompute与ODPS都指代同一平台,不做区分 与MaxCompute JDBC相关的日志有两种,一种是由JDBC内部代码直接输出的日志,第二种是JDBC抛出异常后,由调用JDBC API的宿主应用捕获后输出的.由于第二类日志取决于宿主应用如何处理异常及如何配置日志体系,所以本文主要讨论的对象是第一种日志. 在2.0-beta之前,MaxCompute JDBC的日志只会输出到命令行终端(标准输出流),它底层使

MaxCompute flighting —— Task灰度发布

转载自zifu 前言 按照百科词条的解释:灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现.调整问题,以保证其影响度.降低发布上线的风险. 灰度发布的关键是选择合适的灰度策略,把符合策略的流量引入到新版本上.灰度策略的选择需要考虑待发布对象在链路或系统中的位置角色(如客户端.移动APP.服务后台等).用户属性和发布需求目标等.本文将对MaxCompute的Task灰度发布系统进行介绍. MaxCompute Task灰度发布 Max

MaxCompute JDBC 2.0 beta中的一些变更说明

注:MaxCompute原名ODPS,是阿里云自研的大数据计算平台,文中出现的MaxCompute与ODPS都指代同一平台,不做区分 MaxCompute JDBC 2.0 beta 出于易用性的考虑,对配置相关的部分进行了一些变更,大致如下: 添加了对日志配置的支持 新增了配置参数 log_conf_file 用一指定一个本地的配置文件来对日志功能进行定义.该日志功能利用了Java日志框架logback,所以指定的配置文件必须是一个与logback相兼容的配置文件.具体的配置方式见<手把手教你

阿里巴巴大数据计算平台MaxCompute(原名ODPS)全套攻略(持续更新20171122)

  概况介绍 大数据计算服务(MaxCompute,原名ODPS,产品地址:https://www.aliyun.com/product/odps)是一种快速.完全托管的TB/PB级数据仓库解决方案.MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全.本文收录了大量的MaxCompute产品介绍.技术介绍,帮助您快速了解MaxCompute/ODPS. MaxCompute 2.0:阿里巴巴的大数

【干货索引】阿里云大数据计算服务MaxCompute与生态系统的融合

MaxCompute大家都不陌生,之前产品名称叫ODPS,之后随国际化而更名.从支持阿里集团内部99%数据业务到计算能力对外输出,帮助政府.互联网公司.金融等进行大数据项目服务,使得数据变现.很多开发者都会把MaxCompute和开源社区Hadoop.hive进行比较,此处不做过多评论,各有优势.但是不得不说MaxCompute这几年在生态上向前走了一大步. 关于 MaxCompute2.0 对开源系统的支持与融合 的整体介绍及团队规划,详见文档. 最近,我也针对MaxCompute在生态融合上

MaxCompute文章索引

概况介绍: MaxCompute 2.0 生态开放之路及最新发展 10年老兵带你看尽MaxCompute大数据运算挑战与实践 一分钟了解阿里云产品:大数据计算服务MaxCompute概述 数加平台如何通过Serverless 架构实现普惠大数据 淘宝大数据之路 应用案例: 日志分析: 云数据,大计算-海量日志数据分析与应用 <海量日志数据分析与应用>之数据采集 <海量日志数据分析与应用>之社交数据分析:好友推荐 <海量日志数据分析与应用>之报表分析与展现 <海量日

全面解析JDBC

综述:Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法.JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型.作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法.JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接.JDBC实现了所有这些面向标准的目标并且具有简单.严格类型定义且高性能实现的接口. 如何选择合适的JDBC产品? 有关JDBC最新的信息,有兴趣的读者

JSP学习——全面解析JDBC(8)附录

js 附录:JDBC TM技术解析 1. JDBCTM的定义 JDBCTM 是一种用于执行 SQL 语句的 JavaTM API,它由一组用 Java 编程语言编写的类和接口组成.JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯 Java API 来编写数据库应用程序. 有了 JDBC,向各种关系数据库发送 SQL 语句就是一件很容易的事.换言之,有了 JDBC API,就不必为访问 Sybase 数据库专门写一个程序,为访问 Oracle 数据库又专门写一个程序,为访问

JDBC基础教程之概述

1.1 什么是 JDBCTM? JDBCTM 是一种用于执行 SQL 语句的 JavaTM API(有意思的是,JDBC 本身是个商标名而不是一个缩写字:然而,JDBC常被认为是代表 "Java 数据库连接 (Java Database Connectivity)").它由一组用 Java 编程语言编写的类和接口组成.JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序. 有了 JDBC,向各种关系数据库发送 SQL 语句就是一