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’}