[英]HBase Column data types
我正在研究hbase java客户端,我能够从hbase数据存储中获取元数据,如所有表名,列族和列,但我无法获取我在谷歌搜索的hbase列的数据类型并且知道不可能获得数据类型
借助hbase java客户端HTableDescriptor
, HColumnDescriptor
另一个问题是我正在以这种方式获取元数据我认为这不是任何人可以优化此代码的方式真的会帮助我
public List<ColumnFamily> getMetaDataOfTable(String tableName) {
HTable table = null;
try {
HTableDescriptor tableDescriptor = admin.getTableDescriptor(Bytes
.toBytes(tableName));
HColumnDescriptor[] columnDescriptor = tableDescriptor
.getColumnFamilies();
for (HColumnDescriptor temp : columnDescriptor) {
ColumnFamily columnFamily = new ColumnFamily();
columnFamily.setName(temp.getNameAsString());
columnFamilies.add(columnFamily);
}
table = new HTable(conf, tableName);
Scan scan = new Scan();
for (ColumnFamily columnFamily : columnFamilies) {
scan.addFamily(Bytes.toBytes(columnFamily.getName()));
ResultScanner scanner = table.getScanner(scan);
for (Result result = scanner.next(); result != null; result = scanner
.next()) {
Map<byte[], byte[]> map = result.getFamilyMap(Bytes
.toBytes(columnFamily.getName()));
columnFamily.setColumnsList(getColumns(map));
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
table.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return columnFamilies;
}
如果你能谢谢,请帮助我
如果要使用HBase指定列类型,可以使用Apache Phoenix(一个SQL层/驱动器到HBase):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.