hbase java创建表时设置TTL
ColumnFamilies 可以以秒为单位来设置 TTL(Time To Live)长度,一旦达到到期时间,HBase 将自动删除行。
设置 hbase.store.delete.expired.storefile 为 false 将禁用此功能。将最小版本数设置为 0 以外的值也会禁用此功能。
- java创建表时设置TTL
hcd.setTimeToLive(345600); // 设置TTL过期时间4天 4 * 24 * 60 * 60
public Table hbaseTableGetOrCreate(String tableName) throws Exception{
Admin admin = HbaseConn.getAdmin();
if (!admin.tableExists(TableName.valueOf(tableName))){
HTableDescriptor hTableDescriptor = new HTableDescriptor(TableName.valueOf(tableName));
HColumnDescriptor hcd = new HColumnDescriptor("m");
hcd.setTimeToLive(345600); // 设置TTL过期时间4天 4 * 24 * 60 * 60
byte[][] splitKeys = new byte[][] { Bytes.toBytes("33"), Bytes.toBytes("66")}; // 预分区
hTableDescriptor.addFamily(hcd);
admin.createTable(hTableDescriptor, splitKeys);
}
return HbaseConn.getTable(TableName.valueOf(tableName));
}
- shell创建表时候指定TTL
create ‘migu_datalog’,{NAME => ‘m’, TTL=>‘345600’}