由於hive中有很多表都是每日全量的,資料量比較大,有些是可以將過去歷史分割槽的資料進行刪除的,所以需要乙個定時執行的指令碼,定時刪除前七天的過期資料。
注:此指令碼只針對分割槽欄位為日期型別
#/bin/bash
today=
$(date +%y-%m-%d)
today_timestamp=
$(date -d "$today" +%s)
echo
"獲取今天日期:$today,今日日期的時間戳:$today_timestamp"
detele_day=
$(date -d "7 days ago" +%y-%m-%d)
detele_day_timestamp=
$(date -d "$detele_day" +%s)
echo
"獲取60天前日期:$detele_day,60天前日期的時間戳:$detele_day_timestamp"
hdfs_directorys=()
for hdfs_directory in$;
doecho
"當前要刪除的hdfs路徑為:$"
for hdfs_directory_p_day in
$(sudo -u hdfs hdfs dfs -ls $
|awk
'begin');
do p_day=
$(echo $hdfs_directory_p_day |
awk'begin'
) p_day_timestamp=
$(date -d "$p_day" +%s)
echo
"當前資料夾分割槽日期為:$p_day, 當前資料夾分割槽日期時間戳為:$p_day_timestamp"if[
$p_day_timestamp -lt $detele_day_timestamp];
then
echo
"該hdfs的目錄即將被刪除,路徑為:$hdfs_directory_p_day"
sudo -u hdfs hadoop dfs -rm -r -skiptrash $hdfs_directory_p_day
else
echo
"該hdfs的目錄處於正常週期內不會被刪除,路徑為:$hdfs_directory_p_day"
fidone
done
echo
"程式執行完成"
python定期清理過期資料
功能 定期清理資料夾中的過期資料 usr bin python3 coding utf 8 import os import time import datetime import shutil import socket import logging import sys 獲取主機名 hostna...
mongodb刪除過期資料
通常,你往某乙個mongo庫中插資料,然後按日輪詢,最終這個資料會越來越多,對於不用的資料需要進行清理。這篇文章主要將如何清理過期資料。舉個例子 你只需要最近2個月的資料,比如今天是20170829,那麼60天之前的資料都可以清理掉。你可以寫乙個crontab任務,然後匯入指令碼,每天執行一次,將6...
Redis過期資料和刪除策略
因為記憶體有限,有些資料不需要一直在記憶體中,可以設定一些規則,將一些資料設定過期,在記憶體中刪除,當然也不是隨便刪除,也要考慮到cpu的繁忙與空閒,以免出現redis各種命令執行很多,但是正好出現大量過期資料,已造成伺服器宕機 是在記憶體占用與cpu占用之間尋找一種平衡,顧此失彼都會造成redis...