Teradata SQL : 将用于测试的随机数据插入 Table
Teradata SQL : insert random data for testing into Table
我正在尝试创建随机数据并将其插入 table。现在只是在想什么是完成这项工作的有效方法。
例如
Create volatile table mytb , no fallback, no journal
( C1 integer not null
C2 Varchar (50) Not null ,
C3 D1 Date Not null,
C4 D2 date not null
) with data primary index ( c1) on commit preserve rows;
我想要的是为特定列表或每个列值范围的 X 次迭代随机插入值。例如C1 范围在 30 到 3000000 之间 C2 是一个包含 ( 'approved','pending','unknown','disputed','wip','processed','pre-processed','denied' ) 等 C3 是 01-01-1999 到 12-31-2015 等之间的日期
然后对于说 100 万次迭代,我想为这些列插入随机值并为某些值创建一个 SKEW - 也就是说这些值应该比其他值丰富。
之前有人对此进行过挖掘。最好的方法是什么 - 递归 Q 逻辑?
我使用RANDOM
生成测试数据:
SELECT
RANDOM(30,3000000) AS c1,
CASE RANDOM(1,8)
WHEN 1 THEN 'approved'
WHEN 2 THEN 'pending'
WHEN 3 THEN 'unknown'
WHEN 4 THEN 'disputed'
WHEN 5 THEN 'wip'
WHEN 6 THEN 'processed'
WHEN 7 THEN 'pre-processed'
WHEN 8 THEN 'denied'
END,
DATE '1999-01-01' + RANDOM(0,6208) -- up to 2015-12-31
FROM sys_calendar.CALENDAR -- any table with a large number of rows
这会导致数据分布均匀,如果您想要偏斜,您可以 运行 不同 insert/selects 或使用多个 RANDOM:
RANDOM(1,50) + RANDOM(0,50)
(RANDOM(1, 50) * RANDOM(1,200) + RANDOM(0,100)) / 100.00
我正在尝试创建随机数据并将其插入 table。现在只是在想什么是完成这项工作的有效方法。 例如
Create volatile table mytb , no fallback, no journal
( C1 integer not null
C2 Varchar (50) Not null ,
C3 D1 Date Not null,
C4 D2 date not null
) with data primary index ( c1) on commit preserve rows;
我想要的是为特定列表或每个列值范围的 X 次迭代随机插入值。例如C1 范围在 30 到 3000000 之间 C2 是一个包含 ( 'approved','pending','unknown','disputed','wip','processed','pre-processed','denied' ) 等 C3 是 01-01-1999 到 12-31-2015 等之间的日期 然后对于说 100 万次迭代,我想为这些列插入随机值并为某些值创建一个 SKEW - 也就是说这些值应该比其他值丰富。 之前有人对此进行过挖掘。最好的方法是什么 - 递归 Q 逻辑?
我使用RANDOM
生成测试数据:
SELECT
RANDOM(30,3000000) AS c1,
CASE RANDOM(1,8)
WHEN 1 THEN 'approved'
WHEN 2 THEN 'pending'
WHEN 3 THEN 'unknown'
WHEN 4 THEN 'disputed'
WHEN 5 THEN 'wip'
WHEN 6 THEN 'processed'
WHEN 7 THEN 'pre-processed'
WHEN 8 THEN 'denied'
END,
DATE '1999-01-01' + RANDOM(0,6208) -- up to 2015-12-31
FROM sys_calendar.CALENDAR -- any table with a large number of rows
这会导致数据分布均匀,如果您想要偏斜,您可以 运行 不同 insert/selects 或使用多个 RANDOM:
RANDOM(1,50) + RANDOM(0,50)
(RANDOM(1, 50) * RANDOM(1,200) + RANDOM(0,100)) / 100.00