本文介绍 Fluss 全托管湖流一体服务的功能说明、核心优势及操作指南。
功能概述
Fluss 湖流一体将实时流存储(Fluss)中的数据自动同步至数据湖(Paimon),实现一份数据、两种视图——兼顾毫秒级实时访问与高吞吐历史分析。
湖流一体的数据同步作业已全面升级为全托管模式。系统自动完成同步作业的创建、运行和运维,无需关注底层作业状态。
与旧版方案对比
|
对比项 |
旧版方案 |
全托管方案(新版) |
|
项目空间 |
需手动选择已有的 Flink 项目空间 |
系统自动管理,无需选择 |
|
同步状态感知 |
仅可查看同步作业是否正常运行,无法感知具体表的同步情况 |
提供表级别的同步延时、同步位点等指标,支持告警通知 |
|
同步性能 |
基于标准 Flink 算子 |
采用自研 Native 算子,同步性能提升 30% 以上 |
|
运维方式 |
需手动关注和管理同步作业的运行状态 |
全托管,系统自动管理,无需人工介入 |
核心能力
表级同步监控
全托管模式提供表粒度的同步状态可观测能力:
-
同步延时:展示每张表从 Fluss 流层同步到 Paimon 湖层的延迟时间,用于评估数据新鲜度。
-
同步位点:展示每张表当前的同步进度,反映数据同步的实时状况。
-
告警通知:支持对同步延时等关键指标配置告警规则,指标异常时自动发送通知。
自研 Native 同步算子
全托管同步作业采用自研 Native 算子替代标准 Flink 算子,在数据同步链路上进行深度优化,同步性能较旧版提升 30% 以上。
全托管运维
-
同步作业由系统自动创建和管理,无需手动配置或维护。
-
作业异常时系统自动恢复,保障数据同步的连续性。
-
采用断点续传机制,从最后一次成功提交的位点继续同步,保障精确一次(Exactly-Once)语义。
存量用户切换说明
对于已使用旧版同步方案的存量用户,系统将统一执行切换:
-
切换后,系统自动使用全托管同步作业为已开启湖流一体的表进行同步。
-
原有的非托管同步作业将被自动停止并删除。
-
切换过程对业务无感知,数据同步不中断。切换完成后,不再支持非托管同步方式。
-
按量资源上限默认为 1000 CU,可手动调整上限大小。
切换过程中,系统确保同步位点的衔接,不会产生数据丢失或重复。
计费说明
全托管同步运行期间会消耗计算资源,相关费用说明如下:
-
按量付费:同步作业使用的资源按实际用量计费。公测期间免费,正式商业化后开始计费。
-
固定资源:可提前购买固定资源,或通过扩容、缩容操作调整固定资源大小。按量账单出账前,系统优先使用已购买的固定资源进行抵扣,仅超出部分产生按量付费账单。
可根据开启湖流一体的表数量和数据量,合理评估资源用量,选择适当的固定资源规格以降低成本。
前提条件
开通服务
版本限制
-
不支持DLF-Legacy使用。
权限要求
-
仅集群拥有者可开启湖流一体服务。
-
开启者所使用的账户必须具备以下权限:
在 DLF 中拥有 AliyunDLFFullAccess 权限,确保可创建数据库、创建表,并对表执行读写操作。详情请参见用户授权。
开启湖流一体
步骤一:集群开启湖流一体
-
登录实时计算管理控制台。
-
选择流存储Fluss页签,单击操作列控制台,进入Fluss集群。
-
在集群概览页的右下角,选择
开启后,完成服务关联。
步骤二:表开启湖流一体
新建表
在Flink工作空间注册 Fluss Catalog,然后在中创建表。
CREATE TABLE `my-catalog`.`fluss`.`datalake_orders` (
shop_id BIGINT,
user_id BIGINT,
num_orders INT,
total_amount INT,
PRIMARY KEY (shop_id, user_id) NOT ENFORCED
) WITH (
'bucket.num' = '4',
'table.datalake.enabled' = 'true',
'table.datalake.freshness' = '30min'
);
湖流一体额外参数说明
|
参数 |
说明 |
默认值 |
备注 |
|
table.datalake.enabled |
是否开启湖流一体。 |
false |
未添加该配置时,可以在控制台手动开启。 |
|
table.datalake.freshness |
定义 Paimon 表数据相对于 Fluss 原表的最大允许延迟(即数据新鲜度)。 |
3min |
Fluss 服务将依据此配置自动执行数据同步。调小该值可提升湖仓侧的数据实时性;若业务对延迟不敏感,可适当调大该值以降低资源消耗。 重要
此参数后续不能修改。 |
|
paimon.* |
任何以 |
无 |
Fluss 湖流一体会使用 Paimon 的默认参数创建底层的 Paimon 湖表,如果你要对 Paimon 湖表有其他参数配置的需求,比如设置 Paimon 湖表为 ORC 格式,可以设置 更多参数配置详情请参见Paimon Configuration。 |
暂不支持创建开启了 deletion vector 的 Paimon 表,请不要传入参数 'paimon.deletion-vectors.enabled' = 'true'。
已有表
-
控制台开启
在Fluss控制台中,在左侧导航栏选择数据管理,单击对应的数据库,在右侧展示的数据表中,可选择
开启湖流一体。 -
SQL开启:通过
ALTER TABLE语法开启。ALTER TABLE datalake_orders SET ('table.datalake.enabled' = 'true');
查询数据同步
数据表开启湖流一体后,系统会自动将表的元数据同步至 DLF。可在 DLF 中对应关联的 Catalog 下,找到一个与 Fluss 中同名的库。该库包含与源表完全一致的表结构和元数据,用于统一查询与管理。
同步前请确保 DLF 中不存在同名的表,否则可能导致同步失败或冲突。
湖流一体数据一致性说明
-
湖流一体表启用后,Fluss 中的数据会通过 Flink 同步作业持续写入基于 Paimon 的数据湖,其表结构元数据由 DLF 统一管理,一经创建即长期保留。
-
删除Fluss中的湖流一体表,并不会删除DLF中已经同步的湖表(Paimon表),需要在DLF中手动清理。
-
对于主键表,采用 changelog 模式处理数据变更:
-
当某条记录被删除时,系统会在下一轮 Tiering 完成后从 Paimon 表中物理移除该历史数据,同时在 Changelog 中追加一条类型为 DELETE 的变更日志。
-
在执行 Union Read 查询时,Flink 引擎会自动合并 Fluss 中的实时数据与 Paimon 中的历史数据,并根据主键和变更日志进行去重与状态合并。
-
最终返回的结果中,已被逻辑删除的记录将不会出现,从而保证查询结果的正确性与一致性。
-
关闭湖流一体
数据表关闭湖流一体
-
控制台:在Fluss控制台,左侧导航栏选择数据管理,将已经开启湖流一体的表逐一关闭。
-
SQL:通过
ALTER TABLE语法关闭。ALTER TABLE datalake_orders SET ('table.datalake.enabled' = 'false');
集群关闭湖流一体
在集群概览页中的右下角,将
关闭,即可关闭湖流一体服务。
-
若存在未关闭湖流一体服务的表,将无法关闭集群层面的湖流一体服务。
-
关闭湖流一体服务时,全托管同步作业也会停止运行。