このページには,CSVファイル形式のランダムデータの生成プログラムと実行手順を載せています.
さらに、CSV ファイルから,SQLite 3 のデータベースを作成します.
次のコマンドを実行.
sudo apt -y update sudo apt -y install curl
◆ 生成するデータファイル
◆ ソースコードのダウンロードとコンパイル手順
cd /tmp rm -f populate.c curl -O https://www.kkaneko.jp/tools/bigdata/populate.c gcc -o a.out populate.c
◆ 実行手順と実行結果の例
./a.out 10
#include<stdio.h> #include<time.h> #include<sys/time.h> #include<stdlib.h> int main(int argc, char** argv) { struct timeval tv; struct tm *pnow = NULL; int i; srand((unsigned)time(NULL)); /* header */ printf( "seq, name, a1, a2, created_at, updated_at \n" ); for( i = 1; i < atoi(argv[1]); i++ ) { gettimeofday(&tv, NULL); pnow = localtime(&tv.tv_sec); int yy = pnow->tm_year+1899; int mm = (12.0 * ((int)rand())/RAND_MAX)+1; int dd = (30.0 * ((int)rand())/RAND_MAX)+1; int h = pnow->tm_hour; int m = pnow->tm_min; int s = pnow->tm_sec; int msec = tv.tv_usec; /* seq, NAME */ printf( "%12.12d, A001, ", i ); /* A1, A2 */ printf( "%f, %f, ", 100.0 * ((double)rand())/RAND_MAX, 100.0 * ((double)rand())/RAND_MAX ); /* created_at */ printf( "%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d.%6.6d, ", yy, mm, dd, h, m, s, msec ); /* updated_at */ printf( "%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d.%6.6d\n", yy, mm, dd, h, m, s, msec ); } return 0; }
このページでは,SQLite 3 データベースの生成を行う. 生成するSQLite 3 データベースのデータベース名を決めておくこと.
生成するSQLite3 データベース名: /tmp/random.db
データベース名は,自由に決めてよいが,半角文字(つまり英字と英記号)を使い,スペースを含まないこと,
テーブル定義
rs(seq, name, a1, a2, created_at, updated_at)
sudo apt -y install csvkit nkf
cd /tmp rm -f populate.c curl -O https://www.kkaneko.jp/tools/bigdata/populate.c gcc -o a.out populate.c ./a.out 100000 > /tmp/random.csv head /tmp/random.csv
rm -f /tmp/random.db csvsql --db sqlite:////tmp/random.db --insert /tmp/random.csv echo "vacuum;" | sqlite3 /tmp/random.db echo "select * from random limit 20;" | sqlite3 /tmp/random.db