AWS在云计算数据仓库服务Amazon Redshift中,推出具体化查看表(Materialized View)功能,通过预运算、存储和优化资料访问,可大幅提升数据库查询的执行速度。
在关系型数据库管理系统中,查看图(View)是一种数据库查询的虚拟表格,通常在设计结构(Schema)时会用到,可呈现资料的子集、汇总资料,或是跨多个表格访问资料,在使用数据仓库时,查看图也可用来简化从多表访问工具聚合资料的过程。虽然查看图提供了易用性和灵活性,但是却无法加快资料访问的速度,因为当每次应用程序需要访问查看图时,数据库系统必需要重新执行底层资料查询。
因此在性能重要的应用中,资料工程师通常会使用CTAS(Create Table as Select)指令,创建一个人信息料表以保存查询的资料,应用程序可以像一般表格一样,使用CTAS创建的表格,但缺点是当基础资料更新时,CTAS表格中的资料不会跟着更新,由于CTAS定义并不存储在数据库中,因此数据库无从关注用来创建CTAS表格的资料,因此也就无法更新CTAS表格。
为此,AWS在Amazon Redshift加入了具体化查看表功能,具体化查看表就像是一般查看表的缓存,但不在查询执行时才创建资料集,具体化查看表需要须事先创建,进行预运算、存储和优化资料访问,把资料先准备好,让应用程序访问具体化查看表的方式,就像是一般的表格一样。
由于具体化查看表需要事先创建,且资料已经在数据库系统中准备好,因此具体化查看表可大幅提升查询的执行速度,AWS提到,具体化查看表对于那些可预测,或是需要一遍又一遍重复执行的查询特别好用,应用程序可以查询预先计算好的资料,而非重新对基础大型表格进行查询。
当基础资料表格有更新时,用户可以利用指令更新具体化查看表格,更新指令支持增量更新或是全部重新计算的完整更新。现在用户已经可以在所有AWS地区使用具体化查看表,这项功能不需要额外支付费用。