我正在尝试使用预拆分创建HBase表。我将行键作为存储区编号,架构和pkid的组合。我可以将表格范围预先划分为{'00000000000000000', '10000000000000000', '20000000000000000',.....'f0000000000000000'}
。有没有一种方法可以使用自动拆分策略自动执行此操作。这将有助于我包括模式名称也分裂像'0MD5(schema1)000000000...', '1MD5(schema1)000000000...', ...,'fMD5(schema1)000000000...', '0MD5(schema2)000000000...',.....
以上拆分将帮助我定义一个更好的设计。在这里,我们无法定义模式的数量,现在我们将为10个模式创建表,并在将来为更多模式创建表。我们需要将数据插入该表。所以我正在寻找一种更好的分裂政策设计。
我也一直在寻找KeyPrefixRegionSplitPolicy
,看来这会有所帮助,但我对此不太确定。
谁可以帮我这个事。
KeyPrefixRegionSplitPolicy可以满足您的需求,
这里的一些代码示例可能会有所帮助
HBaseAdmin admin = new HBaseAdmin(conf);
HTable hTable = new HTable(conf, "test");
HTableDescriptor htd = hTable.getTableDescriptor();
HTableDescriptor newHtd = new HTableDescriptor(htd);
newHtd.setValue(HTableDescriptor.SPLIT_POLICY, KeyPrefixRegionSplitPolicy.class.getName());
newHtd.setValue("prefix_split_key_policy.prefix_length", "1");
admin.disableTable("test");
admin.modifyTable(Bytes.toBytes("test"), newHtd);
admin.enableTable("test");
现在表“ test”将自动按行键前缀1分割分区
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句