Как я могу создать 10 миллионов случайных буквенно-цифровых записей в Vertica SQL? - PullRequest
0 голосов
/ 19 сентября 2018

Мне нужно сгенерировать 100 миллионов случайных буквенно-цифровых записей из 12 символов в таблице базы данных vertica или любым другим способом создать 100-миллиметровый файл случайных буквенно-цифровых символов из 12 символов.Затем я могу загрузить файл в базу данных.ниже приведены примеры записей

Например: BAN1334HNAD1

 GEN1235NDA12   

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Это будет делать то, что вам нужно:

#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.

0 голосов
/ 20 сентября 2018

У меня нет экземпляра 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
...