开启湖流一体

更新时间:
复制为 MD 格式

本文将介绍如何开启湖流一体能力。

前提条件

开通服务

版本限制

  • 不支持DLF-Legacy使用。

权限要求

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

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

    • 在 Flink 中拥有 Editor 权限,用于创建和管理湖流一体作业。详情请参见开发控制台授权

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

开启湖流一体

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

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

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

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

    image

  4. 完成关联后,单击确认。开启成功后,可查看所关联的Flink项目空间中的同步任务。

    重要
    • 同步任务默认需要 0.5CU 来保证任务运行,请确保项目空间拥有足够的资源启动。

    • 启动后,若不关闭湖流一体,任务将会持续运行,产生相关费用,请知悉。

  5. (可选)若服务启动失败或出现预期之外的报错,可进入关联的Flink工作空间中,在运维中心 > 作业运维中,查看到tiering-fluss开头的JAR作业。

    • 若未找到该作业,说明服务未成功提交或权限不足。

    • 若作业存在但状态异常(如 FAILED、CANCELED),可进一步查看作业日志定位具体错误。

步骤二:表开启湖流一体

未建表

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'

已有表

  • SQL开启:通过ALTER TABLE语法开启。

    ALTER TABLE datalake_orders SET ('table.datalake.enabled' = 'false');
  • 控制台开启

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

    image

查询数据同步

数据表开启湖流一体后,系统会自动将表的元数据同步至 DLF。可在 DLF 中对应关联的 Catalog 下,找到一个与 Fluss 中同名的库。该库包含与源表完全一致的表结构和元数据,用于统一查询与管理。

同步前请确保 DLF 中不存在同名的表,否则可能导致同步失败或冲突。

image

湖流一体数据一致性说明

  • 湖流一体表启用后,Fluss 中的数据会通过 Flink 同步作业持续写入基于 Paimon 的数据湖,其表结构元数据由 DLF 统一管理,一经创建即长期保留。

  • 删除Fluss中的湖流一体表,并不会删除DLF中已经同步的湖表(Paimon表),需要在DLF中手动清理。

  • 对于主键表,采用 changelog 模式处理数据变更:

    • 当某条记录被删除时,系统不会物理移除历史数据,而是追加一条类型为DELETE的变更日志。

    • 在执行 Union Read 查询时,Flink 引擎会自动合并 Fluss 中的实时数据与 Paimon 中的历史数据,并根据主键和变更日志进行去重与状态合并。

    • 最终返回的结果中,已被逻辑删除的记录将不会出现,从而保证查询结果的正确性与一致性。

关闭湖流一体

数据表关闭湖流一体

  • 控制台:在Fluss控制台,左侧导航栏选择数据管理,将已经开启湖流一体的表逐一关闭。

  • SQL:通过ALTER TABLE语法关闭。

    ALTER TABLE datalake_orders SET ('table.datalake.enabled' = 'false');

集群关闭湖流一体

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

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

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