本文为您介绍实时计算公告内容,包括版本更新、功能更新、产品活动等。

2020年4月28日21:00-2020年4月29日02:00-升级公告

2020年4月28日21:00-2020年4月29日02:00,对上海独享模式管控平台进行升级,升级期间现有运行作业不受影响,但集群扩缩容功能不可用,请知悉。

2020年4月20日-2020年4月22日-升级公告

2020年4月20日-2020年4月22日,对上海和深圳共享集群的存储服务进行版本升级,旨在为您提供更加稳定的实时计算服务。正常情况下,此次升级不会对用户的业务造成影响;特殊情况下,Blink3.2和Blink3.3版本的作业会Failover一次后恢复正常。

2019年12月24日-共享模式正式下线

实时计算共享模式已于2019年12月24日正式下线,将不再支持共享模式新项目的购买,仅支持原有项目的扩缩容、续费操作。如果您有新购需求,推荐使用实时计算独享模式或Flink云原生模式。

2019年8月27日-新增资源配置页签

开发页面右侧,新增资源配置页签。原控制台基本属性页签下的资源配置跳转链接已下线。

2019年8月21日-华东2(上海)共享集群扩容通知

2019年8月23日,华东2(上海)共享集群将新增11.53.0.0/16,11.50.0.0/16网段。如果您使用的上下游存储涉及到例如RDS、HBase等需要添加白名单的组件,请提前将11.53.0.0/16,11.50.0.0/16网段添加至现有的白名单中,防止发生连接异常。

2019年5月30日-实时计算3.0.0以上版本新功能

  • 运行信息

    新增Vertex相关信息查询功能,详情请参见运行信息

  • 数据曲线

    新增AutoScaling相关曲线,详情请参见数据曲线

  • Timeline

    新增Timeline功能,详情请参见Timeline

  • 属性参数

    新增AutoScale迭代的历史详情查询功能,详情请参见属性参数

2019年5月29日-北京、上海地区实时计算共享模式停止售卖

2019年3月14日-共享模式默认版本升级为2.2.7

自3月14日起,实时计算共享模式默认版本升级为2.2.7,此次升级仅影响新增作业,不影响原有运行作业。

2019年1月24日-blink-2.2.7版本发布

Blink-2.2.7 Blink-2.x系列中最新稳定版本,在Blink-1.x版本(最新稳定版本为Blink-1.6.4)进行了全面的升级,采用了自主研发的新一代存储Niagara作为Statebackend的底层存储,优化了SQL的性能,增加了一系列新功能:
  • 主要特性
    • SQL
      • 新增Window Emit机制,可以控制window结果的输出策略,例如:1小时窗口,每1分钟输出一次。
      • 双流Join在功能上支持了miniBatch,针对不同场景优化了Retraction处理和State存储结构,提高了性能。
      • AGG支持Filter语法,可以只聚合满足条件的行。
      • 对Local-global AGG进行优化。
      • 重构了SQL的Optimize阶段,解决了SQL编译时间过长的若干问题。
      • 增加了对SortedMapView中KEY的多种数据类型的支持:BOOLEAN、BYTE、SHORT、INT、LONG、FLOAT、DOUBLE、BIGDECIMAL、BIGINT、BYTE[]和STRING。
      • 优化了MIN、MAX、FIRST和LAST函数存在Retraction场景的性能。
      • 新增若干标量函数,例如时区相关的解析、格式化、转换函数: TO_TIMESTAMP_TZ、DATE_FORMAT_TZ和CONVERT_TZ。
      • 对SQL、Connector模块的错误信息进行了归类,并对每种类型设计了相应的ERROR_CODE。
    • Connector
      • 支持用户自定义的TableFactory注册源表和结果表的Connector。
      • 支持用户通过UDTF方式直接解析数据源类型。
      • 支持读取和写入Kafka。
      • 支持写入到ElasticSearch。
    • Runtime
      • 通过Blink Session机制,统一了用户提交Job、获取执行结果等行为。
      • 开放了调度插件机制,允许计算模型根据需求自定义调度逻辑。
      • 在有限流的情况下,通过避免不必要的全图重启,提高了JobManager和Task FailOver的处理效率。
    • StateBackend
      • 使用NiagaraStateBackend替换RocksDBStateBackend,具备更好的读写性能。
      • (Experimental) NiagaraStateBackend支持计算存储分离,支持failover过程中state秒级恢复
  • Blink1.6.4不兼容的语法
    功能项 影响 解决办法
    TableFunction接口修改 所有使用自定义TableFunction的用户。 更新代码,实现新的getResultType接口。
    ScalarFunction接口修改 所有使用自定义ScalarFunction的用户。 实现新的getResultType接口。
    AggregateFunction接口修改 所有使用自定义AggregateFunction的用户。 实现新的getAccumulatorType和getResultType接口。例如,accumulator类型为Row(String, Long),Agg result的类型为String,则需要实现如下代码。
    public DataType getAccumulatorType\(\) { return
                  DataTypes.createRowType\(DataTypes.String, DataTypes.LONG\); } public DataType
                  getResultType\(\) { return DataTypes.String; }
    MapView构造函数修改 MapView构造函数形参类型由之前的TypeInformation变更为DataType。所以在自定义UDAF中声明了MapView的Job都会受影响。 更新代码,按DataType去构造MapView。例如MapView map = new MapView<>(Types.STRING, Types.INT);需要更新为MapView map = new MapView<>(DataTypes.STRING, DataTypes.INT);
    当参数是Long、Int时,除法和AVG返回类型改为Double 以前的除法和AVG函数返回的是入参的字段类型,现在是Double,会导致类型不匹配的错误。例如:除法/AVG的结果直接写入结果表,可能会报结果表与query的字段类型不匹配的错误。 在除法/AVG的结果上强制加上CAST 。
    在比较big decimal 和decimal数据类型的数据时,会考虑精度 用到Decimal的Job,可能会报BigDecimal类型不匹配的错误。 用到Decimal类型的Job,全局替换成带精度的声明方式,Decimal(38, 18)
    NULL与字符串的比较语义 1.x版本NULL与字符串比较返回True,在2.x版本后遵循了SQL语法语义改为返回False。 所有NULL与字符串比较的地方,例如:WHERE SPLIT_INDEX(shop_list, ':', 1) <> shop_id,如果SPLIT_INDEX(shop_list, ':', 1)返回了NULL,在1.x版本上WHERE条件会返回True,在2.x上会返回False,将数据过滤。
  • 如何升级到Blink-2.x
    使用Blink-1.x版本的Job升级到Blink-2.x,需要进行数据回溯升级,数据回溯是指用户根据业务需要,在启动Job时,指定启动位点,具体操作如下:
    1. 停止待升级Job(清除state)。
    2. 开发界面单击右下角的Flink版本下拉箭头,修改Job的Blink版本为Blink-2.2.7,上线Job。
    3. 启动修改后的Job并指定启动位点。
      如果步骤3执行不成功,需要人工介入查明原因后,进行如下操作:
      • 快速修复SQL,重复步骤1、2、3。
      • 如果无法修复SQL,回退到原有Blink版本。
      • 如果无法生成Json Plan,可以尝试设置如下参数:
        • blink.job.option.jmMemMB=4096
        • blink.job.submit.timeoutInSeconds=600
    Blink-2.0.1的UDX第三方插件安装包详情,请参见UDX概述。类似如下的异常,是因为UDX包的版本太低或者包冲突导致的。
    code:[30016], brief info:[get app plan failed], context info:[detail:[java.lang.NoClassDefFoundError: org/apache/flink/table/functions/aggfunctions/DoubleSumWithRetractAggFunction
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:788)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)