本文为您提供关于MaxCompute使用功能的各项更新记录。

2019年6月25日-SQL语言功能升级

  • UDT支持Resource

    UDT支持资源(Resource)的访问。您可以在SQL中通过com.aliyun.odps.udf.impl.UDTExecutionContext.get()静态方法获取ExecutionContext对象,从而访问当前的ExecutionContext,进而访问资源(例如文件资源和表格资源)。详情请参见UDT

  • UDT实现函数重载

    MaxCompute的UDF使用重载evaluate方法的方式来重载函数。这种方式不支持泛型,所以当您需要定义一个可以接受任何数据类型的函数时,必须为每种类型都写一个evaluate函数。但是,这种方法依然无法实现个别输入类型(例如ARRAY)的重载函数。在没有提供Resolve注解(Annotation)的情况下,Python UDF或UDTF会根据参数个数决定输入参数,同时支持变长参数,但这种过于灵活的机制也会导致编译器无法静态找到某些错误。通过UDT实现函数重载,可以很好地解决以上问题。UDT支持泛型、类继承、变长参数,为您提供灵活的函数定义方式。详情请参见函数重载实现示例

  • UDAF/UDTF支持动态参数

    MaxCompute UDAF和UDTF中的Annotation里,支持在输入参数部分使用*ANY,分别表示接受任意长度且任意类型、任意类型的参数。UDTF的返回值使用星号时,表示返回任意个STRING类型,而ANY不能用于返回值列表中。详情请参见UDAF/UDTF动态参数说明

  • 参数化视图

    MaxCompute传统的视图(VIEW)中,底层可以封装一段逻辑复杂的SQL脚本,调用者可以像读普通表一样调用视图,无需关心底层的实现。传统的视图实现了一定的封装与重用,因此被广泛地使用。但是传统的视图并不接受调用者传递的任何参数,导致代码重用能力低下。MaxCompute当前的SQL引擎支持带参数的视图,支持传入任意表或者其它变量,定制视图的行为。详情请参见参数化视图

  • UDF支持分区裁剪
    UDF已支持分区裁剪,支持的方式是将UDF语句先当做一个小作业执行,再将执行的结果替换到原来UDF出现的位置 。实现的方式有以下两种:
    • 在编写UDF的时候,UDF类上加入Annotation。
      @com.aliyun.odps.udf.annotation.UdfProperty(isDeterministic=true)
      说明 请把引用的odps-sdk-udf版本提高到0.30.x或以上。
    • 在SQL语句前设置Flag:set odps.sql.udf.ppr.deterministic = true;,此时SQL中所有的UDF均被视为deterministic。该操作执行的原理是做执行结果回填,但是结果回填存在限制,即最多回填1000个Partition。因此,如果UDF类加入annotation,则可能会导致出现超过1000个回填结果的报错。此时您如果需要忽视此错误,可以通过设置Flag:set odps.sql.udf.ppr.to.subquery = false;全局关闭此功能。详情请参见WHERE子句过滤
  • 支持show create table命令

    类似Hive中的show create table的语法,可以直接查看建表语句便于移植。详情请参见查看建表语句

2019年5月8日-预付费套餐发布

MaxCompute预付费套餐开始售卖,支持的套餐规格为:
  • 存储密集型160套餐(含计算资源160CU+存储资源150TB)
  • 存储密集型320套餐(含计算资源320CU+存储资源300TB)
  • 存储密集型600套餐(含计算资源600CU+存储资源500TB)
购买套餐后,存储超出套餐资源会按量收费,价格比标准版更优惠。具体的套餐说明请参见预付费套餐版

2019年3月26日-SQL语言功能升级

  • 支持Grouping Set多维聚合分析(Cube,Roll up),适配需要对a列做聚合,也要对b列做聚合,或者同时要按照a、b两列做聚合的场景。具体的使用方法请参见Grouping Sets
  • 支持INTERSECT/MINUS/EXCEPT,具体使用方法请参见交集、并集和补集
  • 通过外表读取OSS上的ORC和Parquet格式的文件时,支持对文件的列裁剪,有效减少IO量,节省计算资源和成本。
  • Java UDX类型系统增强:UDF支持Writable参数,具体使用方法请参见Java UDF
SQL性能优化
  • DynamicDAG:动态优化的必要机制,它可以将一个优化(可能是资源配置或算法选择)延迟到运行时,以便提高优化的精准度,降低产生较差计划的可能性。
  • ShuffleRemove Optimization:针对Shuflle的优化。 从本次版本升级开始,MaxCompute将支持对inner join时右表key相同的场景进行Shuffle Remove优化。

2019年3月19日-MaxCompute 支持开发者版

从2019年3月19日开始,MaxCompute按量后付费购买模式支持开发者版。您过去购买的MaxCompute按量付费模式为标准版

目前开发者版只支持 北京、上海、杭州、深圳4个Region。一个Region内您只能有一个项目可使用开发者版资源,且仅新创建的项目可选择开发者版资源。

开发者版的SQL计费标准为:
一次SQL计算费用=计算输入数据量*SQL价格
SQL价格为0.15元/GB。开发者版项目可以转换为标准版,标准版项目不能转换成开发者版。

2019年2月1日-MaxCompute Spark及MaxCompute Lightning开始收费

从2019年2月1日开始,MaxCompute Lightning(交互式分析)服务及MaxCompute Spark服务开始计费。

MaxCompute Lightning查询任务的计费公式为:

一次Lightning查询费用 = 查询输入量*单价

MaxCompute Spark采用的计费标准如下:

Spark任务当日计算费用 = 当日总计算时*0.66元(人民币)

详情请参见计量计费说明

2019年1月23日开始分批升级上海Region的时区定义

MaxCompute将于2019年1月23日开始分批将上海Region的时区定义从tzdata-2011g-1升级到tzdata-2015g-1.1。

升级影响:在升级过程中,如果您对1927年以前的中国时区时间进行操作,执行结果会有漂移,示例如下。
select to_date('0001-01-01', 'yyyy-mm-dd');

执行结果为0001-01-01 00:00:09

升级完成后,不会有此类影响。

操作建议:如果您在1月23日之后有针对1927年以前的中国时区时间的操作,请注意检查执行结果是否受到影响,并进行相应处理。

2019年1月15日16:00-20:00香港Region底层优化

为向您提供更好的产品性能和稳定性,MaxCompute将于北京时间2019年1月15日16:00 - 20:00对香港Region底层元数据仓库组件进行优化。在优化期间,香港Region用户的应用可能出现1分钟左右任务无法提交、运行中任务失败的情况。极端情况下,应用不可用时间将延长至30分钟。请您尽量避免在迁移窗口提交作业。其他Region不受影响。谢谢。如果您有任何问题,可随时通过企业钉钉群或工单反馈。

2018年11月9日-Hash Clustering功能发布

Hash Clustering通过允许在建表时设置表的Shuffle和Sort属性,使得MaxCompute可以根据数据已有的存储特性来优化执行计划,提高效率,节省资源消耗。如果在初始表数据生成时,按照Hash Shuffle和Sort的方式存储,则后续查询中将避免对数据的再次Shuffle和Sort。具体如何在建表时设置、查看、管理Shuffle和Sort属性请参考DDL语句
说明 目前Hash Clustering还存在限制:
  • 不支持insert into,只能通过insert overwrite来添加数据。
  • 不支持Tunnel直接Upload到Range Cluster表,因为Tunnel上传数据是无序的。

2018年11月3日-底层服务软件缺陷修复

2018年11月3日10:00到19:00将对MaxCompute底层服务进行软件缺陷修复。正常情况下,您不会感知到升级过程。极端情况下,可能会产生约20分钟的作业运行失败或作业提交失败。一旦出现作业失败,请您重新提交失败任务或提交工单反馈。

2018年10月31日-SQL外部表功能开启计费

从2018年10月31日开始,MaxCompute SQL外部表功能开始计费。采用的计费标准为一次SQL计算费用=计算输入数据量*SQL复杂度*SQL价格。SQL价格是0.03元/(GB*复杂度),复杂度系数为1。当天的所有计量信息在第二天做一次性汇总收费,并直接体现在您的账户账单中。

2018年10月16日-Python UDF全面开放

从2018年10月16日开始,MaxCompute公共云环境下的Python UDF使用权限将全面开放,新增的Project默认可用Python UDF,具体的Python UDF使用方式请参考文档Python UDF。更多PyODPS的内容介绍请参考相关文档

2018年10月15日-新增Project的setproject 2.0新类型默认为True

从2018年10月15日开始,MaxCompute创建的新Project,odps.sql.type.system.odps2属性默认为True,对setproject的详细说明请参见:其他操作

2018年9月29日-SQL语言升级

MaxCompute Sprint29中发布的新功能如下:

  • UDJ

    为了满足用户很多跨表操作的需求,MaxCompute S29版本在UDF框架中引进了新的扩展机制:UDJ(User Defined Join)。UDJ提供了让用户自定义Join实现逻辑的接口。如何定义和使用UDJ,详情请参见UDJ

  • UDT

    为了提升SQL语言编译过程的易用性与语言的表达能力,例如使用select transform可以不创建Function甚至不上传资源的情况下执行其他语言的脚本,MaxCompute2.0基于新一代的SQL引擎增加了UDT(User Defined Type)新功能。

    UDT功能允许用户在SQL中直接引用第三方语言的类或者对象,获取其数据内容或者调用其方法。例如在SQL中直接写Java的表达式,并可以引用JDK中的类。如何使用UDT,详情请参见UDT

    说明
    • 目前UDT只支持Java语言。
    • 所有的运算符都是MaxCompute SQL的语义,不是UDT的语义。
    • 目前UDT不能用作Shuffle Key:包括join、group by、distribute by、sort by、order by、cluster by等结构的Key。
    • DDL不支持UDT,也不能将UDT对象insert到表中。屏显的最终结果也不能是UDT类型。
  • 支持Outer Lateral View

    MaxCompute Sprint30扩展了Lateral View功能,支持Outer Lateral View,当Table Function不输出任何一行时,对应的输入行在Lateral View结果中依然保留,且所有Table Function输出列为Null。关于Lateral View介绍请参考文档DML语句的Lateral View部分。

  • 支持Scalar Subquery

    子查询支持Scalar Subquery,即当Subquery的输出结果为单行单列的时候,可以当做标量来使用。具体使用介绍请参见DML语句子查询中的Scalar Subquery部分。

2018年9月26日-元数据仓库组件优化

为了提升您的MaxCompute使用性能,系统即将对元数据仓库组件进行优化,届时您会提前收到以下信息:

尊敬的阿里云用户您好,大数据计算服务MaxCompute为向您提供更好的产品性能和稳定性,将于北京时间2018年9月26日16:00 - 20:00对底层元数据仓库组件进行优化,您的应用可能出现1分钟左右任务无法提交、运行中任务失败的情况。极端情况下,应用不可用时间将延长至30分钟。请您尽量避免在迁移窗口提交作业。感谢您的理解和支持!谢谢。有任何问题,可随时通过企业钉钉群或工单联系反馈。

2018年-MaxCompute例行优化

为了提升您的MaxCompute使用性能, 系统每个月将会对文件数占用较多的project进行小文件合并,届时您将会提前收到以下信息:

尊敬的客户,您好:为了提升您的MaxCompute使用性能, 我们计划于XX年XX月XX日对文件数占用较多的project(只会涉及到5天内未被访问分区)进行小文件合并,此操作是后台自动做,用户无需参与。Merge执行过程中,作业读取正在被Merge的表会有小概率失败,业务上重试即可成功,届时请关注相关业务,如有异常随时通过企业钉钉群进行反馈。
说明 如果您收到报错:ODPS-0010000:System internal error - PanguOpen4Read4R,说明作业在读取正在被Merge的表,请在业务上重试。

2018年9月17日支持setproject 2.0新类型和兼容hive模式

为了提升MaxCompute 2.0的使用体验,支持对project级别进行新类型和兼容hive模式打开,即对原来session级别的set odps.sql.type.system.odps2=true|falseset odps.sql.hive.compatible=true|false两个功能,升级为支持setproject级别。project的Owner可根据需要对project进行设置,命令为:

setproject odps.sql.type.system.odps2=false|true
setproject odps.sql.hive.compatible=false|true

对setproject的详细说明请参见:其他操作

说明 打开project级别的新类型的主要影响:
  • 某些隐式类型转换会被禁用,包括string -> bigint, string - > datetime, double->bigint, decimal -> double, decimal -> bigint都是有精度损失或者可能报错的。用户依旧可以用cast来做强制转换。
  • 常量类型会变化。单独一个 整形常量,如 123,在旧类型下是bigint类型,在新类型下是int类型。
  • udf resolve结果可能变化,比如udf包含bigint和int两个重载。旧类型下一定走bigint的重载,而新类型下可能会被解析到int的重载。
  • session级别会覆盖project级别设置。

2018年5月底-NewSQL开启计费

MaxCompute New SQL采用的计费标准为一次SQL计算费用=计算输入数据量*SQL复杂度*SQL价格。当天的所有计量信息在第二天做一次性汇总收费,并直接体现在您的账户账单中。

2018年1月16日流量切换公告

1月16日14~17点对MaxCompute前端、tunnel服务进行流量切换, 如果出现服务连接超时或访问失败,可提交工单进行咨询

2018年1月15日开放label、Package安全模型

2018年1月15日,MaxCompute的安全模型开发label和Package,即列级别访问控制跨项目空间的资源分享

2018年1月10日禁止Full scan功能开放

2018年1月10日 20点新创建的项目(project)默认禁止分区表全表扫描,即对该项目的分区表执行全表扫描语句时会返回失败,必须指定分区条件,若实在需要,可以在对分区表全表扫描的sql语句前加一个set语句set odps.sql.allow.fullscan=true;,执行的时候,set语句和SQL语句一起提交执行。

2017年11月28-29日内部维护升级公告

由于MaxCompute内部维护升级出现问题,2017-11-28 22:00到2017-11-29 18:40期间的计算计量和存储计量未及时出账,相应账单会延后推送,但不影响最终计费结果,由此给您造成的不便深感抱歉。

2017年11月1日-华北2(北京)Region开服

2017年11月1日,阿里云数加>MaxCompute 华北2(北京)数据中心将正式开服售卖。

售价与华东2、华南1一致,详情请参见计量计费文档

开通时,选择什么Region您需要考虑的最主要因素是MaxCompute与其他阿里云产品之间的关系。

不同区域数据是不能互通,仅针对MaxCompute而言,假如您既购买华东2又购买华北2的服务,那么MaxCompute之间的数据不互通。

如果您的云服务器ECS不在北京Region,若想访问连接北京的MaxCompute,需跨Region进行访问。跨Region访问的各种服务连接请参见访问域名和数据中心

2017年10月11日-预付费支持自动续费

2017年10月11日,MaxCompute的预付费实例开始支持自动续费,可在阿里云控制台的续费管理中心操作。

MaxCompute续费的操作介绍请参见续费管理,更多自动续费的介绍请参见自动续费功能

2017年9月19日-香港Region开服

2017年9月19日,阿里云数加>MaxCompute香港(香港)数据中心将正式开服售卖。

售价与华东2、华南1一致,详情请参见计量计费文档

开通时,选择什么Region您需要考虑的最主要因素是MaxCompute与其他阿里云产品之间的关系。

不同区域数据是不能互通,仅针对MaxCompute而言,假如您既购买华东2又购买香港的服务,那么MaxCompute之间的数据不互通。

如果您的云服务器ECS不在香港,若想访问连接香港的MaxCompute,需跨Region进行访问。跨Region访问的各种服务连接请参见访问域名和数据中心

2017年9月7日-华南1(深圳)Region开服

2017年9月7日,阿里云数加>MaxCompute华南1(深圳)数据中心将正式开服售卖,这是数加>MaxCompute在国内开服的第二个区域。

关于售价

华南1区域价格与华东2一致,主要分三部分进行收费:存储、计算和下载,其中计算(指SQL和MR计算任务)分预付费、按量后付费两种模式,存储和下载都是按量后付费。做预算的具体的售价信息请参见官网定价页计量计费文档

华南1区域价格与华东2一致,主要分三部分进行收费:存储、计算和下载,其中计算(指SQL和MR计算任务)分预付费、按量后付费两种模式,存储和下载都是按量后付费。做预算的具体的售价信息请参见计量计费文档

关于开通

请您确保云账号是实名认证的账号,在开通购买页面进行区域选择时,注意选择华南1。那么什么场景适合选择区域是华南1呢?

选择地域时,您需要考虑的最主要因素是MaxCompute与其他阿里云产品之间的关系,示例如下:
  • ECS在华南1区域。ECS访问、下载华南1的MaxCompute数据都可以通过内网,快速又避免跨Region走公网下载,从而产生费用。
  • 数据在华南1区域。如RDS、OSS、TableStore等在华南1区,那么在和华南1的MaxCompute进行数据传输时可以走内网,避免跨Region配置阿里云内网或VPC网络时不保证连通性的情况。

关于不同区域数据是否互通

仅针对MaxCompute而言,假如您既购买华东2又购买华南1的服务,那么MaxCompute之间的数据不互通。

如果您的云服务器ECS不在华南1,若想访问连接华南1的MaxCompute,需跨Region进行访问。跨Region访问的各种服务连接请参见访问域名和数据中心

关于数据跨Region迁移

若您原来已经开通购买华东2区域,目前想使用华南1区域,所以希望将华东2的所有数据迁移到华南1。建议您通过以下方式进行迁移:

通过配置数据集成任务进行数据同步,如在华南1区域创建好的项目中,配置数据集成任务,来读取华东2区域的表,写入到华南1区域的表中。如果遇到问题可以提工单进行咨询。
说明 如果您对新服购买有疑惑,可通过工单咨询或加入MaxCompute购买钉钉群(群号: 11782920)进行咨询。

2017年8月16日-MR开启计费

MaxCompute MapReduce任务开启按量计费。计费标准如下:
MR任务当日计算费用=当日总计算时 * 0.46元(人民币)

一个MR任务一次执行成功的计算时=任务运行时间(小时)*任务调用的core数量。

如一个MR任务一次执行成功是调用了100core并花费0.5小时,那么本次执行计算时为:0.5 小时 × 100core= 50个计算时。

详情请参见计量计费说明

2017年7月-开始分批升级MaxCompute2.0

说明 2017年9月底已经全面升级开放MaxCompute2.0,MaxCompute2.0 NewSQL及非结构化(外表)处理能力公测阶段,不收取费用,具体收费时间等待官方通知。

MaxCompute2.0已经正式开始,升级后的MaxCompute2.0完全拥抱开源生态,支持更多的语言功能,带来更快的运行速度,同时新版本会执行更严格的语法检测。升级的具体时间会在分批升级时另行通知。

升级后需要对部分SQL语法做出调整,详情请参见修改不兼容SQL实战进行修改。

本次MaxCompute2.0产品升级以下功能:

  • 全新的SQL引擎

    更快的SQL执行引擎:降低企业大数据分析成本,SQL执行效率更高。

  • 生态兼容

    MaxCompute显著提升了针对Hive等开源产品的兼容性,直接兼容Hive的UDF/UDAF/UDTF,为Hive开发的大部分UDF/UDAF/UDTF可不经修改,直接在MaxCompute中运行。

    详情请参见INSERT操作SELECT操作数据类型日期函数数学函数字符串函数、其他函数和JAVA UDF等相关文档。

  • 非结构化处理能力

    通过MaxCompute SQL直接处理OSS/TableStore(OTS)数据,从而处理音频、视频、图像、气象等非结构化数据以及K-V类型的数据。

    详情请参见前言访问OTS非结构化数据访问OSS非结构化数据

  • MaxCompute Studio

    MaxCompute编译器基于MaxCompute2.0全新自主研发的SQL引擎,尤其配合使用MaxCompute Studio,提供了丰富的错误提示、警告的功能及作业排队展示。详情请参见巧用MaxCompute编译器的错误和警告

2017年06月01日

尊敬的阿里云客户:

MaxCompute目前只针对SQL作业进行收费,MapReduce作业近期将开启收费。

MaxCompute近期将进行2.0版本升级,升级过程中会逐批进行,本次版本变更将带来一些新特性:
  • SQL执行引擎

    降低大数据分析成本,SQL执行效率更高。

  • 非结构化处理能力

    通过MaxCompute SQL直接处理OSS/TableStore(OTS)数据,从而处理音频、视频、图像、气象等非结构化数据以及K-V类型数据。

  • 生态兼容

    MaxCompute MapReduce SDK高度兼容了开源Hadoop MapReduce的使用场景。

  • 基于InteliJ的本地开发插件

    本地对MaxCompute作业进行开发,调试。

  • 实时数据上传

    新增DataHub模块,帮助企业数据实时上传。

  • 新型算法平台

    基于GPU的深度学习算法框架,在线预测服务等。

    如果您在系统升级过程中遇到问题,请及时提交工单联系我们。

2016年09月16日

尊敬的阿里云客户:

MaxCompute在11月1日进行了计费变更。本次变更升级存储及计算两个方面:

  • 升级后,修复部分SQL作业无法计费的问题。
  • 升级后,解决部分场景下MaxCompute存储费用存在的问题.升级后,存储将按照实际情况收费。

以上两处之前均不存在向您多收取费用的情况,对于历史作业不做费用补收。您可以通过计量计费说明中获取账单详情的相关指引,从阿里云官网获取每天详细的计量计费信息。

目前MaxCompute只有SQL作业收费(不包括UDF),UDF/MapReduce/Graph/PAI等作业仅是公测状态。具体收费计划请关注官网公告。

感谢您长期以来对MaxCompute产品的支持。