Мы разработали схему Hbase, которая является своего рода стилем RDBMS, но требования к бизнесу заставляют нас это делать.Схема схемы HBase
Допустит, у нас есть студент сущность и субъекты сущности есть один ко многим отображения между учеником и подчиняет
Студенты сущности имеет ниже атрибуты
Имя, школы, Адрес, страны
Субъекты имеют следующие атрибуты
Предметное имя, YearStudied, Описание предмета, прошло/Failed, Оценка
Первый проект, в который мы вложили предметы внутри студенческого объекта, где информация для студентов повторялась для каждого предмета.
что-то вроде гк subjectid, CF: Студент (со студенческими столбцов), CF: Субъект (Subject столбцы
при таком подходе любые обновления студенческих атрибутов были проблемой, так как они должны были быть применены через все строки идентификации их будет проблемой.
поэтому мы создали две отдельные таблицы студентов и предметы, и один из колонны у студентов будет держать все строки ключи предметного стола для этого студента.
Я хочу знать, каковы показатели с такой конструкцией.
Может ли кто-нибудь предложить лучшие варианты дизайна - нам придется делать и читать, и записывать как студентам, так и субъектам, и им нужно использовать HBase!
Цените свою помощь заранее.
У нас есть эта часть ключа строки таблицы ключевых предметов, с префиксом ученика , Помимо дизайна, вопрос заключается в том, может ли Hbase обрабатывать такой дизайн - каковы последствия для производительности. – Prahalad
Что касается вопроса Может ли HBase обрабатывать такую конструкцию ДА, она может. В принципе, он может обрабатывать любой дизайн столбцов RowKey, поскольку они являются массивами байтов, внутренне хранящимися как пара ключевых значений. Теперь для производительности зависит от того, будете ли вы делать сканирование на своем столе? Если да, то до тех пор, пока вы не будете использовать проверку CoProcessors, вы будете медленными. Если нет, то независимо от того, какой у вас дизайн, независимо от того, сколько данных у вас есть в таблице. Методы Get и Put будут давать постоянную производительность. –
Можете ли вы объяснить, как CoProcessors можно использовать для предотвращения сканирования? – Prahalad