Слияние кода завершено, страница обновится автоматически
Введение
Java-обёртка для работы с HBase.
Реализует ORM-отображение между сущностями и таблицами HBase с помощью аннотаций. Используются аннотации HBaseTable, HBaseColumn и Rowkey.
Использование
@Data
@HBaseTable
public class User {
@Rowkey
private String id;
@HBaseColumn
private String name;
@HBaseColumn
private String address;
@HBaseColumn
private Integer age;
@HBaseColumn
private Date birthday;
}
public class HBaseUtilTest {
private HBaseUtil hbaseUtil;
@Before
public void init() {
HBaseConnectionFactory factory = new HBaseConnectionFactory();
factory.setProperties();
hbaseUtil = new HBaseUtil();
}
// Создание таблицы
@Test
public void createTable() {
Set<String> familyColumn = new HashSet<>(1);
familyColumn.add("info");
hbaseUtil.createTable("soul", familyColumn);
}
// Удаление таблицы
@Test
public void dropTable() {
System.out.println(hbaseUtil.dropTable("user"));
}
// Сохранение данных с проверкой существования таблицы и созданием при необходимости
@Test
public void saveCheck() {
List<User> userList = new ArrayList<>(10);
Random r = new Random();
for (int i = 0; i < 10; i++) {
User user = new User();
user.setId(StringUtil.ratedLength((i + 1) + "", 6, "0", 0));
user.setName("张" + user.getId());
user.setAddress("北京");
user.setAge(r.nextInt(58));
user.setBirthday(new Date());
userList.add(user);
}
hbaseUtil.saveCheck(userList);
}
// Сохранение данных
@Test
public void save() {
List<User> userList = new ArrayList<>(10);
Random r = new Random();
for (int i = 10; i < 20; i++) {
User user = new User();
user.setId(StringUtil.ratedLength((i + 1) + "", 6, "0", 0));
user.setName("张" + user.getId());
user.setAddress("北京");
user.setAge(r.nextInt(58));
user.setBirthday(new Date());
userList.add(user);
}
hbaseUtil.save(userList);
get();
}
// Удаление данных по rowkey
@Test
public void delete() {
System.out.println(hbaseUtil.delete("user", "000012", "000013", "000014", "000015", "000016", "000017", "000018", "000019", "000020"));
}
// Получение данных по rowkey
@Test
public void get() {
List<User> userList = hbaseUtil.get("user", User.class, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
System.out.println(userList);
}
// Сложный запрос
@Test
public void scan() throws IOException {
Scan scan = new Scan();
// Начало строки. Если не вызвать, то начинается с начала таблицы
scan.setStartRow(Bytes.toBytes("000006"));
// Конец строки (не включая эту строку)
//scan.setStopRow(Bytes.toBytes("000011"));
// Максимальное количество возвращаемых ячеек. Предотвращает ошибки OutofMemory из-за слишком большого количества данных в одной строке
scan.setBatch(4);
// Диапазон временных меток. Только ячейки в этом диапазоне могут быть получены
scan.setTimeRange(1598000011298L, 1598000693504L);
// Временная метка
//scan.setTimeStamp(1598000011299L);
// Фильтр для фильтрации ненужных данных
//PageFilter pageFilter = new PageFilter(5);
//scan.setFilter(pageFilter);
List<User> userList = hbaseUtil.scan("user", User.class, scan);
System.out.println(userList);
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )