shell造数插入表中

随机造数,往表中插入数据
生成随机数
生成随机中文

#!/bin/bash

source ~/TDH-Client/init.sh

about="非洲酋长 欧皇 颜值控 宅男 技术宅 追求完美 中二晚期 高富帅 逗比 猫星人 手工 为了联盟 夜猫子 软妹子 腹黑"
{
for i in {4..1000}
do
  create_sql="CREATE TABLE employee_"$i" (
    eid STRING,
    name STRING,
    age TINYINT,
    height DOUBLE,
    about STRING
  )
  STORED AS ES;"
  echo "------------------$i------------------"
  beeline -u jdbc:hive2://ct-11:10000/es_test -e "${create_sql}"
  #判断是否执行成功
  if [ "$?" -ne "0" ];then
    echo "beeline -u jdbc:hive2://ct-11:10000/es_test -e \"${create_sql}\" ERROR"|tee /tmp/create_sql_sh.log
  fi

{
  for n in {1..1000}
  do  
    insert_sql="insert into employee_"$i"(eid,name,age,height,about) values(\"`head -200 /dev/urandom|cksum|cut -d " " -f 1`\",\"`date +%s%N|md5sum|head -c 10`\",$(($RANDOM%15+20)),$(($RANDOM%40+150)),\"`echo $about|cut -d " " -f $(($RANDOM%14+1))`\");"
    #最后一个字段生成随机中文
    #生成要执行的insert语句
    echo ${insert_sql} >> /tmp/employee_"$i".sql
  done
  
  beeline -u jdbc:hive2://ct-11:10000/es_test -f /tmp/employee_"$i".sql
  if [ "$?" -ne "0" ];then
    echo "beeline -u jdbc:hive2://ct-11:10000/es_test -f /tmp/employee_\"$i\".sql ERROR" >> /tmp/insert_sql_sh.log
  else
    rm -rf /tmp/employee_"$i".sql
  fi 
} &

done
}&
wait
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章