2011-01-19 4 views
2

J'essaie de faire une comparaison entre une configuration système utilisant Hadoop et HBase et d'obtenir la même chose en utilisant Oracle DB comme backend. Je manque de connaissances sur le côté Oracle des choses alors venez à une comparaison équitable. A12) transactions sur deux tables avec une relation simple et plusieurs index (non textuels) dans un délai de 4 heures. Cela équivaut à 833 transactions par seconde (TPS), soutenue. Cela doit être fait toutes les 8 heures. B) Assurez-vous que toutes les écritures sont durables (donc une transaction en cours survit à une défaillance de la machine dans le cas d'une configuration en cluster) et ont un niveau de disponibilité décent? Avec un niveau de disponibilité décent, je veux dire que les défaillances régulières telles que le disque et une seule connexion de l'interface réseau/tcp ne devraient pas nécessiter d'intervention humaine. Les échecs rares, peuvent nécessiter une intervention, mais doivent être résolus simplement en mettant le feu à un standby qui peut prendre le relais rapidement. C) Ajouter en plus 300 TPS supplémentaires, mais ceux-ci se produisent presque continuellement 24/7 sur plusieurs tables (mais toutes par paires de deux avec la même relation simple et plusieurs index)?Configuration Oracle requise pour les charges lourdes

Un peu de contexte: cette charge de travail est 24/7 et le système doit contenir 10 années de données historiques disponibles pour l'interrogation en direct. Les performances de la requête peuvent être un peu moins bonnes que les secondes, mais elles doivent être suffisamment animées pour pouvoir être utilisées au jour le jour. Les travaux ETL sont configurés de telle manière qu'il y a peu de perte. Également dans une configuration relationnelle, cette charge de travail entraînerait peu de conflit de verrouillage. Je m'attendrais à ce que les mises à jour d'index soient la principale douleur. Pour faire une comparaison aussi juste que possible, je m'attendrais au niveau de cohérence le plus faible qu'Oracle offre.

Je n'ai pas l'intention de dénigrer Oracle. Je pense que c'est une excellente base de données pour de nombreuses utilisations. J'essaie de comprendre le compromis entre l'open source (et NoSQL) comme nous le faisons et l'utilisation d'une configuration éprouvée commercialement.

+0

Vous devriez poser cette question dans plus de sites spécifiques de DB comme http://dba.stackexchange.com/ ou http://forums.oracle.com/forums/category.jspa?categoryID=18 – softveda

+0

Juste point. Je viens de faire. – FvV

Répondre

3

Personne ne peut répondre à cette question de façon définitive. Lorsque vous achetez une voiture, vous pouvez raisonnablement vous attendre à ce que sa vitesse de pointe, son accélération et sa consommation de carburant ne dépassent pas quelques pour cent des valeurs obtenues lors d'essais indépendants. Il n'en va pas de même pour les logiciels en général ni pour les bases de données en particulier.

Même si vous aviez fourni des détails exacts sur le matériel, le système d'exploitation et les structures de données, ainsi que les détails complets de la quantité de données stockées et des transactions, les performances pourraient facilement varier d'utilisation (en raison du développement des points chauds de la mise en cache d'enregistrements, de la fragmentation du disque).

Cependant, après avoir dit qu'il ya quelques conseils que je peux donner:

1) toujours une base de données NoSQL va surperformer un SGBD classique - la raison d'être des bases de données NoSQL est la performance et parallélisation. Cela ne signifie pas que les SGBD conventionnels sont redondants - ils offrent une plus grande flexibilité pour interagir avec les données 2) pour les volumes de données de petite à moyenne portée, Oracle est relativement lent par rapport à d'autres bases de données relationnelles. Je ne suis pas trop impressionné par Oracle RAC en tant que solution évolutive non plus.

3) Je soupçonne que la charge de travail nécessiterait un serveur de milieu de gamme pour des résultats cohérents (quelque chose dans la région de 8k $ +) en cours d'exécution Oracle

4) Tout en ayant une attente chaude est un moyen rapide pour couvrir tous les sortes de pannes, dans de nombreux cas, le risque/coût/avantage favorise des approches telles que RAID, plusieurs cartes réseau, UPS plutôt que les problèmes de maintenance d'un cluster synchronisé.

5) Support - avez-vous déjà pris la peine de demander aux développeurs d'un progiciel open source s'ils fourniront un support payant? IME, les SLA/CLUF pour les logiciels commerciaux sont plus sur la protection du vendeur que le client.

Donc, si vous pensez que cela vaut la peine de considérer, et le coût n'est pas un gros problème, alors la meilleure réponse serait de l'essayer par vous-même.

+0

Je pense (1) est un peu exagéré. Il y a beaucoup de bases de données noSQL dans différentes niches. La plupart fonctionneront mieux pour le créneau cible. Une base de données de documents serait cependant très médiocre dans l'analyse des styles d'entrepôt. –

1

Pas d'infraction ici, mais si vous avez peu de connaissances Oracle, il n'y a vraiment aucun moyen de faire une comparaison équitable. J'ai travaillé avec des équipes d'administrateurs de bases de données Oracle et d'administrateurs système très expérimentés qui discuteraient des configurations pour les tests de comparaison (les variables de configuration matérielle/logicielle sont presque infinies). Habituellement, ces tests étaient des justifications de conclusions anticipées sur la direction de l'infrastructure (l'argent étant également un problème clé).

En outre, envisagez-vous d'engager une équipe d'experts Hadoop pour gérer l'infrastructure de données de votre entreprise? Oracle n'est pas bon marché, mais vous pouvez trouver des professionnels d'Oracle très expérimentés (des administrateurs de base de données aux développeurs en passant par les analystes), pas très sûr des admins/dbas ...

Juste matière à réflexion (et non, je ne sais pas travailler pour Oracle;)

Questions connexes