由于法律问题,我需要从 HBase 中删除旧数据。
我找到了一种使用我的标准分割区域并将旧数据移动到新区域的方法,但是有没有办法删除该区域?
任何其他想法如何实现目标?
尝试
delete '.META.', 'ROW_FROM_META_WITH_YOUR_TABLE'
如果您不确定要删除的行,请在“.META”上运行扫描。或将其值转储到文件中:
echo "scan '.META.'"| hbase shell &> dump.txt
然后找到您的行并将其删除。
由于这会给您的区域留下一个“漏洞”,因此请确保您运行hbase hbck PlatformData -repair
以修复这些问题。
这是一个小的 java 代码片段,它可以做到这一点,并从底层 HDFS 中删除文件。
在较新的版本(例如 0.96)中,命令是:
deleteall 'hbase:meta', 'YOUR_ROW'
可以通过删除表中存在的所有列族来删除 Hbase 行键。如果在 hbase 中没有针对 rowkey 的数据,则从 hbase 中删除该键。这可以使用 Hbase shell 中的 Alter 命令来完成。
尽管这些行键未显示在表中,但已删除行键的区域存在于 .META 中。没有数据。