我想从中删除30天以前的快照 HBASE
使用shell脚本。我已经写了下面的函数,但该函数将删除所有快照。30天以前的逻辑也需要实施。
deleteSnapshot() {
echo -e "list_snapshots '${NAMESPACE}_${TABLE}'" | hbase shell -n | grep ''${NAMESPACE}'_'${TABLE}'' 2>/dev/null
local RET=$?
if [ ${RET} -eq 0 ]; then
echo "Deleting Snapshot ${NAMESPACE}_${TABLE}"
echo -e "delete_snapshot '${NAMESPACE}_${TABLE}'" | hbase shell -n 2>/dev/null
echo "Successfully deleted Snapshot ${NAMESPACE}_${TABLE}"
fi
}
我需要帮助。
2条答案
按热度按时间uplii1fm1#
一次删除多个快照的快速而肮脏的方法:
如果我们的快照名称是:table\u name\u snapshot\u 20190701
这会删除七月的任何内容。这个
.
中的名称用作快照名称其余部分的截止(我们已用通配符替换了该名称)*
)vaqhlq812#
您可以将时间戳附加到快照名称,并应用正则表达式以仅匹配早于30天的快照。
您可以参考以下文档:
https://www.cloudera.com/documentation/enterprise/5-2-x/topics/cm_bdr_managing_hbase_snapshots.html#concept_aqd_sry_bp