我需要在vertica数据库表中生成1亿个随机字母数字12个字符记录,或者以其他任何方式生成1亿个随机字母数字12个字符记录文件。然后,我可以将文件加载到数据库中。 下面是示例记录
例如:BAN1334HNAD1
GEN1235NDA12
答案 0 :(得分:1)
我没有要测试的Vertica实例,但这应该可以给您一个想法:
with t (l) as (
select 'A' union all select 'B' union all select 'C' union all
select '1' union all select '2' union all select '3'
)
select t1.l || t2.l || t3.l
from t t1, t t2, t t3
order by random()
limit 10
答案 1 :(得分:1)
这将满足您的需求:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int ii,jj;
char list[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
int len=strlen(list);
char retStr[14]={0};
for(ii=0; ii<100*1000*1000; ii++) {
memset(retStr,0,sizeof(retStr));
for(jj=0; jj<12; jj++) {
int sub=random()%len;
retStr[jj]=list[sub];
}
printf("%s\n", retStr);
}
}
我将此编译为rand12程序并创建了rand12表:
create table rand12 (a varchar2(12));
然后使用以下命令运行数据:
./rand12 |
~/opt/vertica/bin/vsql -c "copy rand12 (a) from local stdin
delimiter '|' abort on error commit;"
这可以很容易地用Java或Python实现。