全托管湖流一体服务

更新时间:
复制 MD 格式

本文介绍 Fluss 全托管湖流一体服务的功能说明、核心优势及操作指南。

功能概述

Fluss 湖流一体将实时流存储(Fluss)中的数据自动同步至数据湖(Paimon),实现一份数据、两种视图——兼顾毫秒级实时访问与高吞吐历史分析。

湖流一体的数据同步作业已全面升级为全托管模式。系统自动完成同步作业的创建、运行和运维,无需关注底层作业状态。

与旧版方案对比

对比项

旧版方案

全托管方案(新版)

项目空间

需手动选择已有的 Flink 项目空间

系统自动管理,无需选择

同步状态感知

仅可查看同步作业是否正常运行,无法感知具体表的同步情况

提供表级别的同步延时、同步位点等指标,支持告警通知

同步性能

基于标准 Flink 算子

采用自研 Native 算子,同步性能提升 30% 以上

运维方式

需手动关注和管理同步作业的运行状态

全托管,系统自动管理,无需人工介入

核心能力

表级同步监控

全托管模式提供表粒度的同步状态可观测能力:

  • 同步延时:展示每张表从 Fluss 流层同步到 Paimon 湖层的延迟时间,用于评估数据新鲜度。

  • 同步位点:展示每张表当前的同步进度,反映数据同步的实时状况。

  • 告警通知:支持对同步延时等关键指标配置告警规则,指标异常时自动发送通知。

自研 Native 同步算子

全托管同步作业采用自研 Native 算子替代标准 Flink 算子,在数据同步链路上进行深度优化,同步性能较旧版提升 30% 以上。

全托管运维

  • 同步作业由系统自动创建和管理,无需手动配置或维护。

  • 作业异常时系统自动恢复,保障数据同步的连续性。

  • 采用断点续传机制,从最后一次成功提交的位点继续同步,保障精确一次(Exactly-Once)语义。

存量用户切换说明

对于已使用旧版同步方案的存量用户,系统将统一执行切换:

  • 切换后,系统自动使用全托管同步作业为已开启湖流一体的表进行同步。

  • 原有的非托管同步作业将被自动停止并删除。

  • 切换过程对业务无感知,数据同步不中断。切换完成后,不再支持非托管同步方式。

  • 按量资源上限默认为 1000 CU,可手动调整上限大小。

说明

切换过程中,系统确保同步位点的衔接,不会产生数据丢失或重复。

计费说明

全托管同步运行期间会消耗计算资源,相关费用说明如下:

  • 按量付费:同步作业使用的资源按实际用量计费。公测期间免费,正式商业化后开始计费。

  • 固定资源:可提前购买固定资源,或通过扩容、缩容操作调整固定资源大小。按量账单出账前,系统优先使用已购买的固定资源进行抵扣,仅超出部分产生按量付费账单。

说明

可根据开启湖流一体的表数量和数据量,合理评估资源用量,选择适当的固定资源规格以降低成本。

前提条件

开通服务

  • 已开通DLF服务并新建Catalog,需与Fluss位于同一地域,且将Flink所在VPCFluss所在VPC均添加到DLF的授信VPC列表中。详情请参见授权并开通DLF可信VPC配置

版本限制

  • 不支持DLF-Legacy使用。

权限要求

  • 仅集群拥有者可开启湖流一体服务。

  • 开启者所使用的账户必须具备以下权限:

    在 DLF 中拥有 AliyunDLFFullAccess 权限,确保可创建数据库、创建表,并对表执行读写操作。详情请参见用户授权

开启湖流一体

步骤一:集群开启湖流一体

  1. 登录实时计算管理控制台

  2. 选择流存储Fluss页签,单击操作列控制台,进入Fluss集群。

  3. 集群概览页的右下角,选择image开启后,完成服务关联。

步骤二:表开启湖流一体

新建表

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.*

任何以 paimon. 为前缀的配置项都会作为 Fluss 底层 Paimon 湖表的配置。

Fluss 湖流一体会使用 Paimon 的默认参数创建底层的 Paimon 湖表,如果你要对 Paimon 湖表有其他参数配置的需求,比如设置 Paimon 湖表为 ORC 格式,可以设置'paimon.file.format' = 'orc'

更多参数配置详情请参见Paimon Configuration

重要

暂不支持创建开启了 deletion vector 的 Paimon 表,请不要传入参数 'paimon.deletion-vectors.enabled' = 'true'

已有表

  • 控制台开启

    Fluss控制台中,在左侧导航栏选择数据管理,单击对应的数据库,在右侧展示的数据表中,可选择image开启湖流一体。

  • 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');

集群关闭湖流一体

集群概览页中的右下角,将image关闭,即可关闭湖流一体服务。

说明
  • 若存在未关闭湖流一体服务的表,将无法关闭集群层面的湖流一体服务。

  • 关闭湖流一体服务时,全托管同步作业也会停止运行。