实时计算Flink版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于Apache Flink构建的企业级高性能的实时大数据处理系统。Hologres与Flink深度连通,支持实时写入Flink的数据,可以实时查询写入的数据,帮助您快速搭建实时数仓。

阿里云实时计算Flink版不进行业务存储,所有的数据均来自于外部存储系统持有的数据。阿里云实时计算Flink版支持的数据存储类型如下:
  • 源表

    源表指输入至Flink的数据输入源。Flink的源表指定为Hologres时,使用的是批量导入而非流式导入,Hologres会将全表的数据统一扫描一次后再输出至下游,扫描完成后本次作业结束。

  • 维表

    维表一般适用于点查询场景(Lookup by Key),因此在Hologres中,维表建议使用行存储,并且JOIN的字段必须是完整的主键字段。

  • 结果表

    结果表用于接收并存放经过Flink计算的结果数据,为下游数据继续消费提供各类读写接口。

阿里云实时计算Flink版还支持很多企业级高级能力,通过与Hologres深度集成,提供以下创新能力:
  • Hologres Binlog消费

    使用消息队列的模式消费Hologres表的Change Log。

  • Flink Catalog

    Flink支持导入Hologres元数据为Catalog,在Flink全托管控制台直接读取Hologres元数据,不用再手动注册Hologres表,可以提高开发效率且能保证表结构的正确性。

  • Schema Evolution

    Flink全托管支持Schema Evolution,在Flink读取JSON数据时,可以自动解析类型,自动创建对应表的列,支持数据模型的动态演化。

Hologres支持的Flink产品形态及功能如下表所示。
产品形态数据存储类型企业级高级能力描述
源表结果表维表Hologres Binlog消费Flink CatalogSchema Evolution
Flink全托管支持行存储及列存储,Binlog源表建议使用行存储或行列共存。支持行存储及列存储建议使用行存储或行列共存支持支持支持使用VVP开发平台。
Flink半托管支持行存储及列存储,Binlog源表建议使用行存储或行列共存。支持行存储及列存储建议使用行存储或行列共存支持支持支持使用EMR Studio开发平台。
Blink独享(已停售)支持行存储及列存储,Binlog源表建议使用行存储或行列共存。支持行存储及列存储建议使用行存储或行列共存Hologres V0.8版本只支持行存储,V0.9及以上版本支持行存储及列存储。建议使用行存储。不支持不支持

使用Bayes开发平台。

推荐使用阿里云Flink全托管。

开源Flink1.10不支持支持行存储及列存储不支持不支持不支持不支持-
开源Flink1.11及以上版本不支持支持行存储及列存储建议使用行存储不支持不支持不支持从开源Flink1.11版本开始,Hologres代码已开源。详细内容请参见GitHub
开源Flink1.13及以上版本支持批量源表支持行存储及列存储建议使用行存储不支持不支持不支持从开源Flink1.11版本开始,Hologres代码已开源。详细内容请参见GitHub

Hologres Connector Release Note

Flink版本阿里云实时计算VVR版本Hologres版本更新信息相关文档
1.156.0.31.3.x源表:
  • 新增JDBC模式消费Hologres Binlog,此模式支持更多的数据类型,且支持自定义账号。
  • 批量源表以及全增量源表的全量阶段,支持Filter下推。
结果表:

支持以Fixed Copy的模式写入,Fixed Copy是Hologres1.3版本新增的能力,相比通过JDBC模式进行写入,Fixed Copy方式可以实现更高的吞吐(因为是流模式)、更低的数据延时和更低的客户端内存消耗(因为不攒批)。

Hologres Catalog:

支持创建Catalog时进行默认的表属性设置。

sdkMode参数:

Hologres不同类型的表都有多种模式可以选择,此版本开始统一整理为sdkMode参数,详情请参见Flink全托管

1.13以及1.154.0.15以及6.0.21.1及以上版本源表:
  • 从该版本开始,批量源表默认大小写敏感。
  • 支持配置批量源表Scan操作所在事务的超时时间。
  • 修复批量源表解析复杂字符串可能失败的问题。
  • 全增量源表新增Upsert模式。
维表:

Hologres维表支持异步请求的超时时间(asyncTimeoutMs)设置。

结果表:
  • 支持PARTITION BY语法,CTAS创建Hologres结果表时可以通过PARTITION BY定义分区表。
  • Metrcis支持currentSendTime指标。
1.134.0.131.1及以上版本
  • 源表支持全增量一体源表消费。
  • 支持Datastream API。
1.1.34.0.121.1及以上版本
  • 支持JSON格式动态写入Hologres。
  • 支持写入RoaringBitmap类型。
Flink全托管
1.134.0.110.10及以上版本支持CTAS、CDAS。
1.134.0.80.10及以上版本结果表、源表、维表支持Hologres Catalog。管理Hologres Catalog
1.133.0.00.9及以上版本支持实时消费Hologres。Flink全托管
1.132.0.00.7及以上版本支持Hologres Connector。Flink全托管