ByteHouse 支持以可视化方式管理异步物化视图,支持按照同步频次异步刷新数据,适合占用较多计算资源的复杂场景。本文介绍了如何创建、删除异步物化视图。
前提条件
使用前请务必检查视图定义是否符合异步视图使用的最佳场景:
- 视图定义 SQL 中使用的基表推荐离线天级更新表,不推荐实时表,否则会导致频繁触发刷新任务,增加刷新代价,给系统负载造成负担。
- 视图定义 SQL 要保证分区对齐:视图目的表分区是由基表中一张表分区数据计算得来,否则如果基表有变化就会触发全量刷新,代价很高。
- 多表 join 最合适的场景:事实表天级离线更新,维表基本不更新,对于事实表不能对齐分区或者维表频繁变动的,会频繁全量刷新,加重系统负载。
- 视图刷新没有重试机制,失败只能到下个调度周期调用,建议设置分钟级调度间隔,增加重试机会。
- 调度间隔并不是验证按照设置的时间间隔,跟任务执行时长也有关系,任务执行时长超过间隔会推迟到下个调度周期执行,不能强依赖调度间隔,期望准时调度。
- ByteHouse 云数仓版异步视图的参数设置较为复杂,涉及到各种计算组(VW)设置,否则会走到默认计算组,造成 server 负载加重,请在创建异步物化视图时配置专用计算组。
更多异步物化视图的介绍请参见SQL 管理异步物化视图。
使用限制
使用前,请确认您的引擎为 v2.3 及以上版本。您可以在 ByteHouse 控制台的租户管理 > 基本信息页面查看您当前的引擎版本。
创建异步物化视图
登录 ByteHouse 控制台,在数据库页签下单击目标数据库,单击 + 视图,单击创建物化视图。

在创建物化视图页面,输入查询 SQL后,单击下一步。

配置物化视图信息,并单击下一步。

参数 | 参数说明 |
|---|
物化视图类型 | 选择异步物化视图。 |
数据库 | 选择在哪个数据库中创建物化视图和目标表。 |
名称 | 自定义物化视图的名称。命名规则如下: - 名称只能包含字母,数字和下划线"_"。
- 最多 128 个字符。
|
排序键 | 系统会根据您已输入的 SQL 命令推荐合适的排序键,您可从下拉列表中选择确认。创建完成后暂不支持更改排序键。 |
分区键 | 系统会根据您已输入的 SQL 命令推荐合适的分区键,您可从下拉列表中选择确认。创建完成后暂不支持更改分区键。 |
计算组 | 选择物化视图依赖的计算组资源。 |
刷新频次 | 选择数据刷新频次。支持按天、小时、分钟、秒刷新。 |
执行时区 | 选择刷新数据依赖的时区。 |
执行周期 | 您可设置为全天,也可自定义执行周期。
选择自定义执行周期时,需配置具体执行日期、开始时间和结束时间。您可单击 + 按钮,定义多个执行时间。 |
参数配置 | 按需为物化视图配置安全优化参数。 注意 如需使用该功能,请联系 ByteHouse 团队开启该功能,并配置所需参数。您需要告知您所需配置的具体参数,系统将仅显示已为您配置的参数。 当前支持配置的全量自定义参数说明如下: - max_memory_usage:异步物化视图单次执行任务的最大内存使用限制(单位:字节),超出限制时任务将中断并报错,避免单任务占用过多内存资源。默认值为 68,719,476,736。
- max_memory_usage_for_user:该用户下所有异步物化视图执行任务的总内存使用上限(单位:字节),控制用户级资源占用,平衡多用户资源分配。默认值为 242,292,621,312。
- max_threads:异步物化视图执行时的最大并发线程数,用于控制 CPU 资源占用,线程数越多执行效率越高(需结合集群资源合理配置)。默认值为 4。
- max_execution_time:异步物化视图单次执行的最大超时时间(单位:秒),超出该时间后任务将自动终止,防止长时间占用集群资源。默认值为 3600。
- max_query_cpu_seconds:异步物化视图执行过程中的最大 CPU 占用时间(单位:秒),用于控制 CPU 资源消耗,避免任务过度占用计算资源。默认值为 3600。
- max_joined_block_size_rows:当物化视图包含 JOIN 操作时,关联过程中单个数据块的最大行数限制,优化关联查询性能,避免数据块过大导致内存压力。默认值为 65505。
- distributed_max_parallel_size:分布式集群环境下,异步物化视图执行的最大并行任务数,控制分布式任务的并发度,适配集群节点资源配置。默认值为 10。
- bsp_mode:是否使用 BSP(Bulk Synchronous Parallel)模式,该模式为 stage 运行方式,可以有效减少资源使用。支持设置为 0 或 1,默认值为 1。0 表示关闭,1 表示开启。更多说明请参见BSP(Bulk Synchronous Parallel)执行模式。
- enable_intermediate_result_cache:中间结果缓存开关,支持设置为 0 或 1,默认值为 0。0 表示关闭,1 表示开启。开启后缓存物化视图执行过程中的中间结果,加速后续增量更新或重计算流程。
|
预览系统自动生成的创建 SQL,确认是否符合您的需求。确认无误后,单击创建,系统将自动创建异步物化视图。如需修改信息,可单击上一步。

系统提示创建成功后,在物化视图页签中,单击物化视图名称,查看物化视图详细信息。
编辑异步物化视图
异步物化视图创建完成后支持编辑计算组、刷新频次和执行周期。
- 在 ByteHouse 控制台中,在数据库页签下单击目标数据库,单击物化视图页签,单击目标物化视图名称。

- 在物化视图页面,单击异步同步任务页签,单击编辑。

- 在编辑刷新配置界面,您可按需调整计算组,调整刷新频次、执行时区、执行周期、执行时间等信息。

- 调整配置后,单击保存。
系统提示“编辑物化视图成功”,您可在异步同步任务页签下查看调整后的计算组及刷新配置。 - (可选)如果您已联系 ByteHouse 团队开启了参数设置功能,您也可在异步同步任务页面中单击参数设置,调整参数值。

手动执行异步物化视图同步任务
异步物化视图创建完成后支持手动执行异步同步任务,您可按需手动执行。
- 在 ByteHouse 控制台中,在数据库页签下单击目标数据库,单击物化视图页签,单击目标物化视图名称。

- 在物化视图页面,单击异步同步任务页签,单击手动执行。

系统将提示“手动执行成功”,您可查看任务列表查看任务执行状态。
删除异步物化视图
- 在 ByteHouse 控制台中,在数据库页签下单击目标数据库,单击物化视图页签,单击目标物化视图名称。

- 单击物化视图界面右上角 ... 按钮,单击删除物化视图,并在在弹窗中,单击删除。
