我想问一下, ADB 物化视图 MATERIALIZED VIEW, 假如我执行视图更新需要1分钟?[阿里云云原生数据仓库]

我想问一下, ADB 物化视图 MATERIALIZED VIEW, 假如我执行视图更新需要1分钟, 在执行更新操作的时候, 其他用户在查询这个表数据, 查询到的是旧的数据,还是更新中的数据?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 在 ADB 中,物化视图 MATERIALIZED VIEW 的更新过程是异步的,也就是说,更新操作不会阻塞其他用户的查询操作,其他用户在查询该表时,会先查询到旧的数据。等到视图更新程序完成操作并在内部提交时,查询操作才会看到最新的数据。

    ADB 中的 MATERIALIZED VIEW 视图执行更新操作有两种方式:手动和自动。手动更新通过使用 REFRESH MATERIALIZED VIEW 命令手动刷新视图来更新视图。自动更新由视图定义中的 AXIOM 或事件驱动器执行,根据视图定义中的条件来更新视图。

    无论是手动更新还是自动更新,MATERIALIZED VIEW 的更新都是在后台异步执行的。因此在这个视图更新的过程中,其他用户所看到的数据将是上一次数据状态的快照,而不是新的更新状态的数据。

    因此,在更新稍微耗费时间的物化视图的过程中,其他用户一般建议尽可能地避免执行可能对该视图的更新产生干扰的操作,直到视图的更新操作已经完成。

  2. 在执行 MATERIALIZED VIEW 的更新操作时,其他用户在查询这个表数据时,会查询到旧的数据,直到更新操作完成。这是因为 MATERIALIZED VIEW 是一种物化视图,它会在物理上存储视图的结果集,而不是像普通视图一样只是一个查询的定义。因此,在更新操作执行期间,其他用户访问这个物化视图时,会查询到存储在磁盘上的旧的结果集,而不是正在更新的结果集。更新操作完成后,其他用户再次访问该物化视图时,会查询到最新的结果集。

  3. 查询到的是旧数据。,此回答整理自钉群“云数据仓库ADB-开发者群”