我正在尝试创建一个具有以下结构的hbase表。
**rowkey** |**CF1**
(customerid,txtimestamp)|customerid,amount
Long customerid = Long.valueOf(new StringBuilder(customerid).reverse()。toString());
byte [] rowKey = Bytes.add(Bytes.toBytes(customerid),Bytes.toBytes(txtimestamp.getTime()));
答案 0 :(得分:1)
您不需要撤销customer_id,这没有任何意义
如果要将所有数据拆分为4个区域,则可以为所有键添加0-3值前缀,例如:
int partition = customer_id % 4;
byte[] rowKey = Bytes.add(
Bytes.toBytes(String.valueOf(partition)),
Bytes.toBytes(String.valueOf(customer_id)),
Bytes.toBytes(txTimestamp.getTime())
);
在这种情况下,您需要使用此HBaseAdmin方法
创建包含拆分键的表public void createTable(final HTableDescriptor desc, byte [][] splitKeys)
拆分键将是:
byte[][] splitKeys = new byte[3][];
splitKeys[0] = "1".getBytes();
splitKeys[1] = "2".getBytes();
splitKeys[2] = "3".getBytes();
因此所有以0开头的键都会转到第一个区域,以1开头的键会转到第二个区域,依此类推