跳到主要内容

动态表

Introduced or updated: v1.2.945

动态表将查询结果存储在 Fuse 中。定义查询可以关联多个源表并聚合数据。创建动态表时会写入初始结果。之后,只有显式执行全量刷新,源表的变更才会反映到动态表中。

备注

动态表支持手动全量刷新。源数据变更后,执行 REFRESH DYNAMIC TABLE 即可更新存储结果。如需定期刷新,可以由应用程序或外部调度器执行此命令。两次刷新之间,查询返回上次存储的结果。

命令​

命令描述
CREATE DYNAMIC TABLE定义动态表并写入初始查询结果。
REFRESH DYNAMIC TABLE从源表重新计算完整结果。
SHOW CREATE TABLE显示可重新执行的 CREATE DYNAMIC TABLE 语句。
DESCRIBE显示输出列。
DROP TABLE删除动态表。

使用 SELECT 按名称查询动态表。使用 SHOW TABLES 列出表。在 system.tables 中,动态表的 table_type 为 DYNAMIC TABLE。

选择派生对象​

对象查询返回的数据维护方式
视图基于源数据执行存储的查询。不存储查询结果,无需刷新。
物化视图读取时修正尚未刷新的源表变更,返回当前结果。对单个源表的仅追加变更支持增量刷新。
动态表返回创建或上次成功刷新时存储的结果,即使源表已发生变更。需要显式全量刷新。支持关联多个源表。

优化器不会将针对源表的查询替换为读取动态表。请在查询中直接引用动态表。

完整示例请参阅动态表。

欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验