2012-02-22 1 views
2

J'ai récemment commencé à me familiariser avec NoSQL (HBase). Je suis définitivement un noob. J'examinais à propos des ORM et des clients de haut niveau qui peuvent être utilisés sur HBase et sont tombés sur quelques-uns.Java ORMs sur NoSQL DB comme HBase

Certaines bibliothèques ORM comme Kundera fournissent des fonctionnalités de requête de données SQL. Je trouve cela un peu contre-intuitif. Est-ce que quelqu'un peut m'aider à comprendre pourquoi nous aurions encore besoin de SQL comme interroger si l'objectif était de s'en éloigner?

Quelqu'un peut-il aussi commenter vos expériences avec ORMs for HBase? J'ai regardé quelques-uns d'entre eux de http://wiki.apache.org/hadoop/SupportingProjects et j'ai commencé à regarder Kundera.

Une autre question connexe - Est-ce que la requête de données avec la carte d'exécution Kundera réduit les travaux en interne?

Répondre

4

données ou kundériens printemps pourraient fournir facile à utiliser la couche ORM sur des bases de données NoSQL, mais le modèle de l'entité sous-jacente doit encore être NoSQL amical. Cela signifie que les utilisateurs NoSQL ne doivent pas suivre aveuglément les stratégies de modélisation RDBMS, mais concevoir des entités ORM de telle sorte que toutes les fonctionnalités NoSQL puissent être utilisées. En règle générale, les entités ORM de Kundera doivent être conçues en utilisant la stratégie de requête d'abord où les requêtes doivent d'abord être définies de manière à créer des clés primaires et à s'assurer que le modèle de relation est aussi minimal que possible. L'interrogation sur des colonnes aléatoires et des analyses complètes doit être évitée. Les données doivent donc être répliquées sur plusieurs entités pour réduire les recherches d'entités multiples. En outre, la gestion des transactions doit être planifiée. FYI, kundera ne supporte pas les transactions (au-delà d'une ligne TX supportée par Hbase/Cassandra).

3

Raison de l'utilisation Kundera:

1) Si vous cherchez SQL comme le support sur HBase. Comme il est construit au-dessus de l'API native de HBase, il transforme simplement ces requêtes SQL en appels de méthode GET ou PUT correspondants. 2) Actuellement, il supporte HBase-0.20.6 seulement. Kundera-2.0.6 activera la prise en charge des versions HBase 0-90.x. 3) Kundera ne fait pas quelque chose hors de la boîte pour fournir une réduction de la carte sur SQL comme des requêtes. Cependant, le support pour une telle chose sera fourni dans Kundera-2.0.6 en n'activant que le support pour les requêtes natives Hive!

Il est totalement compatible JPA, donc pas besoin d'apprendre quelque chose de nouveau. Il cache simplement la complexité au niveau du développeur avec un minimum d'effort.

L'interrogation de type SQL est pour la facilité de développement, le développement rapide, moins propice aux erreurs et réutilisable bien sûr!

-Vivek

+0

Merci pour la réponse. Quand allez-vous sortir 2.0.6? Nous utilisons HBase 0.9. –

+0

Nous avons publié 2.0.6 et il est disponible en téléchargement: https: //github.com/impetus-opensource/Kundera –