2010-05-09 6 views
26

Existe-t-il des bases de données, dans les mondes SQL ou NoSQL, prenant en charge protocol buffers? (Le support pourrait signifier diverses choses, mais j'espère pouvoir inclure l'indexation des champs dans les tampons de protocole.)Y a-t-il des bases de données qui prennent en charge les tampons de protocole?

+0

15 minutes passé googler ne se sont pas des résultats positifs. Hadoop HBase utilise des tampons de protocole dans le cadre des communications de service et possède une API de client Thrift, mais rien dans la couche de stockage de données. Hadoop Avro est dans le même espace que PB, peut-être verrons-nous l'intégration avec HBase à l'avenir? – mdma

+0

Pourquoi ne pas simplement utiliser une base de données relationnelle (mettre chaque valeur dans sa propre colonne plutôt que toutes les valeurs dans une colonne)? –

+0

@Brendan: Bien sûr, c'est une façon de faire. La plupart du temps, j'ai été surpris qu'aucune des bases de données noSQL n'ait une solution prête à l'emploi, étant donné que certains, comme MongoDB, stockent des blobs binaires similaires. –

Répondre

3

Je n'en connais aucune (pas qu'elles n'existent pas, je ne les connais pas) , mais peut-être vaut-il la peine de discuter d'une autre stratégie et des avantages et des inconvénients.

Généralement, vous voudriez stocker une version sérialisée de votre tampon de protocole, indexée par une clé particulière (un identifiant unique, peut-être). Vous pouvez ensuite créer des index secondaires pour d'autres champs intéressants qui pointent vers cet identifiant unique. L'idée est que vous voudriez que les index explicites comme celui-ci dépassent ce qu'un système fournissant des index arbitraires. Cela ouvre évidemment un monde de nouveaux problèmes (tels que des index arbitraires périmés).

+1

Pourquoi est-ce que quelqu'un voudrait que les clés et autres entités soient stockées dans protobuf? Au lieu de cela, n'importe quelle langue peut fonctionner avec des types primitifs pour l'indexation de base de données, mais cela ne veut pas dire qu'il doit être utilisé partout. n'importe quel sens, – mamu

+0

Si vous voulez utiliser votre base de données sur plusieurs machines, vous aurez probablement besoin de gérer vous-même les index secondaires au lieu de vous fier à un logiciel de base de données pour le faire. – allenporter

Questions connexes