使用shell和javaapi为hbase中的列族设置ttl

57hvy0tb  于 2021-06-09  发布在  Hbase
关注(0)|答案(2)|浏览(917)

我是hbase的新手,我已经搜索过了,但是我找不到在hbase的列族中设置ttl属性的简单而直接的方法。请指定使用shell和使用javaapi的两种方式。

ktecyv1j

ktecyv1j1#

使用java api:

HColumnDescriptor cfDescriptor = new HColumnDescriptor(Bytes.toBytes("cfName"));
cfDescriptor.setTimeToLive(20); // in seconds

tableDesc.addFamily(cfDescriptor);
admin.createTable(tableDesc);

使用shell:

alter ‘tableName′, NAME => ‘cfname′, TTL => 20
e5njpo68

e5njpo682#

使用java api修改现有表以添加ttl:

HConnection connection = HBaseConnection.createConnection("localhost", "2181");
            HBaseAdmin hBaseAdmin = new HBaseAdmin(connection);
            HTableDescriptor hTableDescriptor = new HTableDescriptor("TTLDemo".getBytes());
            HColumnDescriptor hColumnDescriptor = new HColumnDescriptor("C".getBytes());
            hColumnDescriptor.setTimeToLive(2);
            hTableDescriptor.addFamily(hColumnDescriptor);
            hBaseAdmin.modifyTable("TTLDemo", hTableDescriptor);

相关问题