HBase按照行鍵範圍刪除資料

2022-05-08 11:42:15 字數 1482 閱讀 1149

#!/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 ...