我有一张桌子,上面有大约1亿条记录,每天我们可以获得大约10万条记录,其中包含更新。
目前,我们正在时间戳上应用ROW_NUMBER
,并通过执行UNION ALL
来获取最新记录。
使用这种方法,我们面临着严重的性能问题。
从性能角度来看,您可以建议任何更好的方法吗?
INSERT OVERWRITE TABLE tgt_tbl
SELECT * FROM
(
SELECT row_number() over (partition by acct_num order by time_stamp)
FROM
(SELECT acct_num , time_stamp FROM tgt_tbl
UNION ALL
SELECT acct_num , time_stamp FROM Incremental table
)t1
) t2
WHERE rnum = 1