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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章