gpt4 book ai didi

sql - 更新 Interval Partitioned 表中 5 亿行的列值

转载 作者:太空狗 更新时间:2023-10-30 01:47:45 25 4
gpt4 key购买 nike

我们有一个包含 100 亿行的表。该表是日期间隔分区。在子分区中,我们需要将符合条件的 5 亿行的日期更新为新值。这肯定会影响新分区或其他东西的创建,因为表是在同一日期分区的。任何人都可以指导我遵循最佳方法吗?

提前致谢!

最佳答案

如果您要更新分区键并且源行位于单个(子)分区中,那么合理的方法是:

  1. 为更新的行创建一个临时表。如果可能,即时执行更新

    CREATE TABLE updated_rows
    AS
    SELECT add_months(partition_key, 1), other_columns...
    FROM original_table PARITION (xxx)
    WHERE ...;
  2. 删除原始(子)分区

    ALTER TABLE original_table DROP PARTITION xxx;
  3. 重新插入更新的行

    INSERT /*+append*/ INTO original_table
    SELECT * FROM updated_rows;

如果您对 500M 行的 CTAS 或 INSERT INTO SELECT 有问题,请考虑对临时表进行分区并批量移动数据。

关于sql - 更新 Interval Partitioned 表中 5 亿行的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26413794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com