我有一个相当大的红移表,大约有2亿条记录。我想使用用户定义的python函数更新其中一列中的值。如果我在EC2实例中运行该函数,则会导致对表进行数百万次更新,而且速度非常慢。我有更好的流程加快这些更新吗?
答案 0 :(得分:0)
与基于行的系统(理想的事务处理)不同,基于列的系统(Redshift)是数据仓库和分析的理想选择,其中查询通常涉及在大型数据集上执行的聚合。由于只处理查询中涉及的列,并且列数据按顺序存储在存储介质上,因此基于列的系统需要的I / O要少得多,从而大大提高了查询性能。
在您的示例中,您可以执行单个update
update .. set.. from ... where ....
命令