Flink SQL 功能解密系列 —— 阿里云流计算/Blink支持的connectors

简介: Connector 是连接外部数据和blink计算框架的桥梁,也是流计算的入口和出口。目前,blink支持了集团内部绝大多数的上下游(如下图),详细的接入方法可以见官方文档,本文主要阐述connector设计和使用上需要注意的问题。

Blink Connectors

总览

Connector 是连接外部数据和blink计算框架的桥梁,也是流计算的入口和出口。目前,blink支持了集团内部绝大多数的上下游(如下图),详细的接入方法可以见官方文档,本文主要阐述connector设计和使用上需要注意的问题。
undefined

Source插件

1. source connector控制消费位点

blink读取上游数据时,会记录消费位点和控制消费速度。结合blink checkPoint机制,source connector会周期性的把当前消费位点存储到rocksDB中。在发生failover的时候,source connector会从上一次成功消费的位点开始重追数据,保证at least once或excatly once的计算语义(取决于任务配置)。这也要求上游插件能够支持从特定位点恢复读,否则将不能保证上游数据的完整性。
因此,blink来取metaq采用的也是pull模式,自己记录消费位点和控制消费,metaq控制台记录的消费进度和消息堆积也是不准确的,只需要关心blink source的delay指标和tps指标即可。
(blink source connector目前也支持notify,但由于notify不支持数据回溯的特性,在发生failover时不能保证数据的准确性,请尽量使用其它类型的上游存储插件。)

2. 上游分区变化时需要重启job

TT、metaQ、Sls、Datahub都存在分区的概念,blink在读取上游数据的时候,会记录每一个分区的消费进度。在上游分区发生变化时,blink会抛出异常,需要重新启动job(有时候还需要调整source的并发度)。

3. 字段解析

  • 普通字段解析
    Blink SQL用户目前在bayes平台只需要定义好读取的字段和数据类型,source connector便会自动地将源头数据转换成特定的数据类型,非常方便。并且,对于存在metaq中对象序列化的类型,可以定义为binary类型,blink支持通过自定义的source方式来解析。
  • 属性字段获取
    metaq等一些上游消息中,除了消息体外,还会存在特殊的标记信息,比如sls中带入的tag消息,metaq带入的messageId字段。不同于galaxy需要使用propety_get函数获取,在blink中,可以像普通字段一样定义property字段,只需要在后面加上header关键字即可。比如 __ip__ varchar header 即可拿到sls属性中对应的字段。

sink插件

1. 日志型和KV型下游

根据sink插件的性质,可以分为两类: 一类是像TT,SlS,Metaq这种没有key,不会更新已写入数据的日志型存储;另一类是像hbase、rds等,需要根据key进行插入和更新的KV型存储。

2. 基于主键去重和批量写

对于KV型存储,为了减少对下游系统的输出压力。blink默认会缓存一段时间或一定数量的数据后根据primary key字段进行去重(跟minibatch的思想也比较类似),然后再批量写入到下游系统。

比如定义了一张hbase表

create table hbase_output(
  rk  varchar,
  rk1 varchar,
  rk2 varchar,
  f bigint,
  PRIMARY KEY(rk)
) with (
  type='alihbase',
  zkQuorum='hbasetestmaster1.et2sqaxxxxxxx',
  zkNodeParent='/hbase-et2sqa-perf',
  columnFamily='cf',
  tableName='blink_hbase_test',
  bufferSize='1000',  -- 定义来多少条数据时触发一次写入
  batchSize='100',      -- 每次写入时batch的大小
  batchWriteTimeoutMs='2000' -- 定义过多久时间触发一次写入
);

当有一组数据到达同一个worker时,如
1,2,3,3
1,2,4,3
1,1,3,3
1,3,5,4
2,4,5,6
sink插件会把根据primary key和先后到达的顺序把数据聚合成两条
1,3,5,4
2,4,5,6


相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
12月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
1711 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
简介:本文整理自阿里云高级技术专家李麟在Flink Forward Asia 2025新加坡站的分享,介绍了Flink 2.1 SQL在实时数据处理与AI融合方面的关键进展,包括AI函数集成、Join优化及未来发展方向,助力构建高效实时AI管道。
1462 43
|
存储 运维 分布式计算
零售数据湖的进化之路:滔搏从Lambda架构到阿里云Flink+Paimon统一架构的实战实践
在数字化浪潮席卷全球的今天,传统零售企业面临着前所未有的技术挑战和转型压力。本文整理自 Flink Forward Asia 2025 城市巡回上海站,滔搏技术负责人分享了滔搏从传统 Lambda 架构向阿里云实时计算 Flink 版+Paimon 统一架构转型的完整实战历程。这不仅是一次技术架构的重大升级,更是中国零售企业拥抱实时数据湖仓一体化的典型案例。
803 0
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
本文整理自阿里云的高级技术专家、Apache Flink PMC 成员李麟老师在 Flink Forward Asia 2025 新加坡[1]站 —— 实时 AI 专场中的分享。将带来关于 Flink 2.1 版本中 SQL 在实时数据处理和 AI 方面进展的话题。
752 0
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
|
SQL 消息中间件 Kafka
Flink SQL 详解:流批一体处理的强大工具
Flink SQL 是 Apache Flink 提供的 SQL 引擎,支持流批一体处理,统一操作流数据与批数据,具备高性能、低延迟、丰富数据源支持及标准 SQL 兼容性,适用于实时与离线数据分析。
1407 1
|
消息中间件 关系型数据库 Kafka
阿里云基于 Flink CDC 的现代数据栈云上实践
阿里云基于 Flink CDC 的现代数据栈云上实践
468 1
|
运维 数据处理 数据安全/隐私保护
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
|
存储 分布式计算 数据处理
「48小时极速反馈」阿里云实时计算Flink广招天下英雄
阿里云实时计算Flink团队,全球领先的流计算引擎缔造者,支撑双11万亿级数据处理,推动Apache Flink技术发展。现招募Flink执行引擎、存储引擎、数据通道、平台管控及产品经理人才,地点覆盖北京、杭州、上海。技术深度参与开源核心,打造企业级实时计算解决方案,助力全球企业实现毫秒洞察。
1140 0
「48小时极速反馈」阿里云实时计算Flink广招天下英雄
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
4921 74
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎

相关产品

  • 实时计算 Flink版