#!/bin/bash
#兩種時間輸入,一種是輸入起始日期,另一種是直接輸入hbase裡面資料的起始時間戳
if [ $# != 5 ];then
echo 'usage:sh bytimestamprange.sh table "d:pri_key" d "2018-01-22 17:11:52" "2018-01-22 17:14:53"'
echo 'usage:sh bytimestamprange.sh table "d:pri_key" t "1532599799357" "1532599799357"'
exit
fitable=$1
column=$2
ttype=$3
stime=$4
etime=$5
#get starttimestamp,endtimestamp, hbase裡面單元格の時間戳為毫秒
# 命令data -d "@去除後3位的時間戳" 可以檢視hbase裡面單元格的時間對應的日期形式
#輸入為起始日期,先轉化為字串形式的時間戳,到秒,然後開始時間戳補上000,結束時間戳補上999,因為hbase裡面時間戳是到毫秒級的
if [ $ttype == "d" ];then
startsec=`date -d "$stime" +%s`
endsec=`date -d "$etime" +%s`
stimestamp=$startsec"000"
etimestamp=$endsec"999"
#stimestamp=$((startsec*1000+`date "+%n"`/1000000))
#etimestamp=$((endsec*1000+`date "+%n"`/1000000))
#直接使用輸入的時間戳
elif [ $ttype == "t" ];then
stimestamp=$stime
etimestamp=$etime
else
echo "timetype:d or t"
exit
fi#echo $table
#echo $column
#echo $ttype
#echo $stimestamp
#echo $etimestamp
currenttime=`date +%s`
echo "scan,get rowkeys,scan: '$table',"
#notice:[stimestamp,etimestamp)!!!
echo "scan '$table'," | hbase shell > ./scanresult-$currenttime.txt
#刪除scan結果檔案前面沒用的6行
sed -i '1,6d' scanresult-$currenttime.txt
#刪除最後乙個空行
sed -i '$d' scanresult-$currenttime.txt
#刪除scan統計條數的行,現在位置在最後
sed -i '$d' scanresult-$currenttime.txt
#判斷下是否查詢結果,沒有則直接退出
tmpcount=$(wc -l ./scanresult-$currenttime.txt | awk '')
if [ "$tmpcount" -eq 0 ];then
echo "0 rows deleted"
rm -rf ./scanresult-$currenttime.txt
exit
fi#生成hbase 刪除語句
cat scanresult-$currenttime.txt|awk '' | while read rowkey
doecho -e "deleteall '$','$'" >> ./delete-$currenttime.txt
done
totalcount=$(wc -l ./delete-$currenttime.txt | awk '')
echo "exit" >> ./delete-$currenttime.txt
#執行hbase刪除
hbase shell ./delete-$currenttime.txt
echo "$totalcount records deleted"
rm -rf ./scanresult-$currenttime.txt
rm -rf ./delete-$currenttime.txt
HBase按照行鍵範圍刪除資料
bin bash tool path cd dirname 0 pwd tool path tmp cd dirname 0 pwd if 3 then echo usage sh byrowkeyrange.sh table startrowkey endrowkey exit fitable 1...
Oracle中date與timestamp的異同
在oracle中儲存date和時間資訊的話,實際上你有兩種字段資料型別的選擇 9i date資料型別 可以儲存月,年,日,世紀,時,分和秒。度量粒度是秒 以使用to char函式把date資料進行傳統地包裝,達到表示成多種格式的目的 select to char sysdate,mm dd yyyy...
oracle中date和timestamp的區別
如果你想在oracle中儲存date和時間資訊的話,實際上你由兩種字段資料型別的選擇的話,就讓我們看看這兩種資料型別的差別和它們提供了些什麼。date資料型別 這個資料型別我們實在是太熟悉了,當我們需要表示日期和時間的話都會想到date型別。它可以儲存月,年,日,世紀,時,分和秒。它典型地用來表示什...