如何以最佳方式将列添加到 table 大尺寸?

How to optimally add columns to a table of large size?

我有一个包含数百万行数据的 table。现在对于一些新的传入数据,我必须存储更多的属性。在此阶段更改 table 以创建新列将消耗大量计算能力,因为 table 已经有数百万行数据。如果不时添加此类新属性,存储此新数据的最佳方式是什么?

编辑:根据用户的建议,我想添加我正在使用的平台:SnowFlake 云数据平台。

不要太担心添加列所需的计算能力 - 这主要是一个逻辑问题,而不是物理问题。

我用 840 万行做了这个测试 table:


create table clone1
clone my_big_table;

alter table clone1
add column justtest NUMBER(38,0);

-- adding a column was a quick operation, just metadata probably (210ms)

create table lone2
clone my_big_table;

alter table clone2
add column justtest NUMBER(38,0) default 7;

-- adding a column with a default value was a quick operation too, just metadata probably (256ms)

select justtest
from clone2
limit 10;

-- correct data returned

create table clone3
clone my_big_table;

alter table clone3
add column justtest NUMBER(38,0) default 7;

-- again, adding a column with a default value was quick

update clone3
set justtest=1;

-- this took a longer time - changing an existing value for a new one (1min 18s)

向 table 添加列应该不是问题 - 之前只需使用 table 克隆测试操作即可。