注:MaxCompute原名ODPS,是阿里云自研的大数据计算平台,文中出现的MaxCompute与ODPS都指代同一平台,不做区分
MaxCompute JDBC 2.0 beta 出于易用性的考虑,对配置相关的部分进行了一些变更,大致如下:
- 添加了对日志配置的支持
新增了配置参数 log_conf_file 用一指定一个本地的配置文件来对日志功能进行定义。该日志功能利用了Java日志框架logback,所以指定的配置文件必须是一个与logback相兼容的配置文件。具体的配置方式见《手把手教你完成ODPS JDBC自定义日志配置》
- 同化了URL及PROP参数名
之前JDBC的配置参数可以通过URL参数的方式传递,也可以在编程时通过Property的方式传递,且两种方式的参数Key是不同的,如下所示:
URL key | Property Key | Description |
---|---|---|
endpoint |
end_point |
the endpoint of the ODPS cluster |
project |
project_name |
the current ODPS project |
accessId |
access_id |
the id to access the ODPS service |
accessKey |
access_key |
the authentication key |
logview |
logview_host |
the host domain of the log view appeared in the log history |
lifecycle |
lifecycle |
the lifecycle of the temp table using in query |
charset |
charset |
the charset of the string |
loglevel |
log_level |
the level of debug infomartion debug/info/fatal |
为了便于记忆和使用,目前变更为在这两种方式中,以上两种Key将通用不作区分,且在两种Key同时存在的情况下,优先使用Property Key的入参。同时,如果在URL和Property中都传入同一参数(不区分Key的形式),将优先使用以Property方式传入的参数
- 支持在JDBC URL中传入配置文件
之前在JDBC的URL串中传入参数时,存在一个麻烦的地方,即个别参数可能存在特殊字符。例如,有个别的access_key的末尾是以=结束的,这对URL参数的解析造成了干扰,唯一能做的就是需要用户提前对这些参数的值进行url encoding.
为了避免这种情况发生,目前支持在URL串上直接传入配置文件,如下:
jdbc:odps:http://10.101.xx.xx/api?odps_config=/Users/emerson/odps_config.ini
我们支持在URL上传入 odps_config 作为指定本地配置文件路径的参数。其中odps_config.ini的内容如下,就是简单的键值对:
project_name=odps_dev
access_id=63wd3dpztlmb5ocdkj94pxmm
access_key=xxxxxxxxx=
log_conf_file=/Users/emerson/logback.xml
...
这些参数的Key与之前URL或Property的方式一致,且含有特殊字符的值也无须转义。
这里需要注意的是, odps_config 参数只支持以URL参数的方式传入,不支持Property的方式传入。一旦传递了该配置文件,将忽略所有通过URL或Property传入的参数。
另一点需要注意的是即使你在配置文件中指定了end_point,MaxCompute JDBC仍将使用JDBC URL串中的地址作为end_point,即http://10.101.xx.xx/api。
欢迎加入MaxCompute钉钉群讨论