簡體   English   中英

Teradata SQL:將隨機數據插入表中進行測試

[英]Teradata SQL : insert random data for testing into 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; 

我想要的是為每個列值的特定List或范圍的X迭代隨機插入值。 例如C1范圍在30到3000000之間C2是一個列表('已批准','待定','未知','有爭議','wip','已處理','已預處理','已拒絕')等等C3是01-01-1999到2015年3月12日之間的日期等等。然后說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

這會導致均勻分布的數據,如果您想要傾斜,您可以運行不同的插入/選擇或使用多個RANDOM:

RANDOM(1,50) + RANDOM(0,50)
(RANDOM(1, 50) * RANDOM(1,200) + RANDOM(0,100)) / 100.00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM