使用此脚本,您可以创建一个包含 2000(或任意数量)列的表,并为每个列指定一个默认随机值:
CREATE or replace PROCEDURE create_wide_table()
RETURNS VARCHAR
LANGUAGE javascript
AS
$$
ss = 'create or replace table wide2000 (id int';
for (const x of Array(2000).keys()) {
ss += ', a' +x + ' int default uniform(1, 10000, random())';
}
ss += ');'
//return ss;
var rs = snowflake.execute( { sqlText: ss } );
return 'Done.';
$$;
这将生成并执行如下所示的 SQL 查询:
create or replace table wide2000
(id int
, a0 int default uniform(1, 10000, random())
, a1 int default uniform(1, 10000, random())
, ...
);
您可以修改脚本以生成更类似于您的数据类型和稀疏性的数据。
该表的优点在于它的大多数列都有默认的随机数。因此,向其中添加一百万行变得非常容易。
首先创建表:
call create_wide_table();
生成一百万行:
insert into wide2000 (id)
select seq8()
from table(generator(rowcount => 1000000))
运行你的实验:
select *
from wide2000
limit 10
对于更复杂的数据生成需求,请检查https://github.com/RobertFehrmann/fehrminator.