1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/SoulBGM-hbase_helper

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

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 )

Вы можете оставить комментарий после Вход в систему

Введение

Упаковка операций Java с HBase. ORM-отображение между сущностным классом и HBase с использованием аннотаций. Аннотации включают: HBaseTable, HBaseColumn, Rowkey. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/SoulBGM-hbase_helper.git
git@api.gitlife.ru:oschina-mirror/SoulBGM-hbase_helper.git
oschina-mirror
SoulBGM-hbase_helper
SoulBGM-hbase_helper
master