Java ORM на базе данных NoSQL, например, HBase - PullRequest
2 голосов
/ 22 февраля 2012

Я недавно начал знакомиться с NoSQL (HBase). Я определенно нуб.

Я исследовал ORM и клиентов высокого уровня, которые можно использовать на HBase, и наткнулся на несколько.

Некоторые библиотеки ORM, такие как Kundera, предоставляют SQL-подобную функциональность запроса данных. Я нахожу это немного противоречивым.

Может ли кто-нибудь помочь мне понять, почему нам снова понадобится SQL, например, запросы, если вся цель состоит в том, чтобы отойти от него?

Также кто-нибудь может прокомментировать ваш опыт использования ORM для HBase? Я посмотрел на некоторые из них из http://wiki.apache.org/hadoop/SupportingProjects и начал смотреть на Кундеру.

Еще один связанный с этим вопрос. Сокращает ли запрос данных с помощью Kundera run map внутренние задания?

Ответы [ 2 ]

4 голосов
/ 22 февраля 2012
Данные

kundera или Spring могут обеспечить удобный уровень ORM над базами данных NoSQL, но базовая модель сущностей по-прежнему должна быть дружественной к NoSQL. Это означает, что пользователи NoSQL не должны слепо следовать стратегиям моделирования RDBMS, а должны проектировать объекты ORM таким образом, чтобы можно было использовать все возможности NoSQL. Как правило, сущности ORM kundera должны разрабатываться с использованием стратегии «сначала запрос», где сначала необходимо определить запросы, чтобы создать первичные ключи, а также обеспечить минимальное использование модели отношений. Следует избегать запросов к случайным столбцам и полному сканированию, поэтому, возможно, придется реплицировать данные между объектами, чтобы уменьшить количество обращений к нескольким объектам. Кроме того, управление транзакциями должно быть запланировано. К вашему сведению, Кундера не поддерживает транзакции (кроме TX с одной строкой, поддерживаемой Hbase / Cassandra).

3 голосов
/ 22 февраля 2012

Причина использования Kundera:

1) Если вы ищете поддержку SQL как HBase.Поскольку он построен на основе собственного API HBase, он просто преобразует эти запросы SQL в соответствующие вызовы методов GET или PUT.2) В настоящее время поддерживается только HBase-0.20.6.Kundera-2.0.6 включит поддержку версий HBase 0-90.x.3) Kundera не делает ничего из коробки, чтобы обеспечить сокращение по сравнению с SQL-подобными запросами.Однако поддержка этого будет предоставлена ​​в Kundera-2.0.6, если будет включена поддержка только собственных запросов Hive!

Он полностью совместим с JPA, поэтому не нужно изучать что-то новое.Он просто скрывает сложность на уровне разработчика с минимальными усилиями.

Запросы типа SQL предназначены для упрощения разработки, быстрой разработки, уменьшения вероятности ошибок и возможности повторного использования курса!

-Vivek

...