HBase按照TimeStamp刪除資料

2021-10-12 16:39:39 字數 2254 閱讀 9731

#!/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型別。它可以儲存月,年,日,世紀,時,分和秒。它典型地用來表示什...