public void createTable(String tableName, String[] families) {
HBaseAdmin admin = null;
try {
admin = new HBaseAdmin(config);
if (admin.tableExists(tableName)) {
System.out.println("The table is existed.");
} else {
HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf(tableName));
for (String family : families) {
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(family);
hColumnDescriptor.setMaxVersions(5); //设定列的最大版本数目。默认是1,如果不指定,读取的时候只能取到一个值。
tableDescriptor.addFamily(hColumnDescriptor);
}
admin.createTable(tableDescriptor);
System.out.println("Create table is success.");
}
} catch (IOException e) {
logger.error("Create table {} is error.", tableName);
} finally {
if (admin != null) {
try {
admin.close();
} catch (IOException e) {
logger.error("Table {} close error.", tableName);
}
}
}
}如果不加有注释的那条语句,则创建表后默认的版本数是1,插入和读取时都只有一个版本的值。如果需要多版本,则需要注意以下。

本文详细介绍了如何使用HBase API创建表,并通过设置列的最大版本数来实现多版本控制的功能。在不指定的情况下,默认版本数为1,这限制了插入和读取时的数据版本选择。通过调整配置,开发者可以实现更灵活的数据版本管理。
5510

被折叠的 条评论
为什么被折叠?



