我有一个到etl的映射,一个大表有大约30亿条记录。
该表在RECORDDATE列上有分区,我昨天才将数据加载到分段表,在分段表加载完成后,我使用exchange_partition将数据加载到主表。
这可以很好地工作。但是我们需要将分区放到不同的列( OTHERDATECOLUMN),但我仍然希望获取RECORDDATE列上的数据。所以我不能使用exchange_partition,我需要先删除记录,然后直接插入到主表中。这很慢。
我该如何解决这个问题呢?
提前感谢
发布于 2020-05-10 05:11:53
在查看了所有评论之后,我没有看到任何快速而聪明的解决方案。要么使用简单的delete -尽管需要很长时间,或者...
尝试按顺序加载数据,只需几个步骤-如下所示:
OTHERDATECOLUMN数据集有多少个不同的RECORDDATE日期OTHERDATECOLUMN中的每个日期:OTHERDATECOLUMN获取到
(*)从TARGET_TABLE加载不在TEMP_TABLE中的数据的查询
INSERT INTO TEMP_TABLE
SELECT * FROM TARGET_TABLE
WHERE NOT EXISTS
(SELECT * FROM TEMP_TABLE WHERE TARGET_TABLE.ID = TEMP_TABLE.ID)我希望我说得够清楚了:)
https://stackoverflow.com/questions/61654344
复制相似问题