#!/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=$1srowkey=$2erowkey=$3echo $table
echo $srowkey
echo $erowkey
currenttime=`date +%s`
echo "scan,get rowkeys,scan: '$table', "#notice:[srowkey,erowkey)!!!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
keyonlyfilter:只會返回每行的行鍵+列簇+列,而不返回值
firstkeyonlyfilter:找每一行的第一列資料,找到之後,就會停止掃瞄,會返回列值
參考:
HBase按照TimeStamp刪除資料
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 5...
hbase中刪除表中的行鍵 HBase 開始執行
執行hbase 保證hdfs第一次執行,你需要通過在hadoop home目錄中執行bin start hdfs.sh來啟動和停止hadoop hdfs守護程序。你確保它正確啟動的方法是通過在 hadoop 檔案系統中測試檔案的put和get。hbase通常不使用mapreduce或yarn守護程序...
外來鍵關聯而無法刪除資料
經常我們在刪除db記錄時,會為外來鍵關聯而無法刪除資料感到苦惱。這裡個人經常用到的乙個方法就是,先讓關聯主鍵失效,然後再刪除資料,資料刪除完成後,再讓其主 鍵生效,這樣很好的解決了刪除級聯資料難的問題。第一步 讓主鍵失效 alter table table name disable primary ...