Est-ce que quelqu'un sait comment je peux stocker de grandes valeurs binaires dans Riak?

StackOverflow https://stackoverflow.com/questions/2212770

  •  19-09-2019
  •  | 
  •  

Question

Quelqu'un sait comment je peux stocker de grandes valeurs binaires dans Riak?

Était-ce utile?

La solution

Pour l'instant, ils ne recommandent pas le stockage des fichiers de plus de 50 Mo en taille sans les séparer. Voir: FAQ - Riak Wiki

Si vos fichiers sont plus petits que 50 Mo, que de procéder comme vous le feriez avec le stockage des données non binaires Riak.

  

Une autre raison pour laquelle on peut choisir Riak est la flexibilité dans la modélisation de vos données. Riak enregistre les données que vous lui dites d'une manière agnostique contenu - il ne l'applique pas des tables, des colonnes ou l'intégrité référentielle. Ce moyen vous pouvez stocker des fichiers binaires juste à côté d'autres formats de programmeur-transparent comme JSON ou XML . En utilisant Riak comme une sorte de « base de données de documents » (semi-structuré, la plupart des données anonymisées normalisé) et « stockage de fixation » a des besoins différents que le système clé de style valeur / - à savoir, la nécessité d'une ligne-requêtes efficaces, les conflits la résolution, l'augmentation de la sémantique interne et expressions robustes de relations. schéma design Riak - Présentation

Autres conseils

@ Brian La réponse de Mansell est sur la bonne voie - vous ne voulez pas vraiment stocker de grandes valeurs binaires (plus de 50 Mo) comme un seul objet, dans Riak (le cluster devient unusably lent, après un certain temps)

Vous avez 2 options, au lieu:

1) Si un objet binaire est assez petit, stocker directement. S'il est un certain seuil (50 Mo est une valeur arbitraire décent pour commencer, mais vraiment, faire quelques tests de performance pour voir ce que la taille moyenne de l'objet est, pour votre cluster, après quoi il commence à ramper) - briser la fichier en plusieurs morceaux, et stocker les morceaux séparément. (En fait, la plupart des gens que je l'ai vu aller dans cette voie, utiliser des morceaux de 1 Mo). Cela signifie, bien sûr, que vous devez garder une trace du « manifeste » - qui morceaux ont été stockées où et dans quel ordre. Et puis, pour récupérer le fichier, vous d'abord chercher l'objet le suivi des morceaux, puis récupérer les morceaux de fichiers individuels et les remonter de nouveau dans le fichier d'origine. Jetez un oeil à un projet comme https://github.com/podados/python-riakfs voir comment ils l'ont fait.

2) Sinon, vous pouvez simplement utiliser Riak CS (Riak Cloud Storage), de faire tout de ce qui précède, mais le code est écrit pour vous. C'est exactement comment fonctionne RiakCS - il casse un fichier entrant en morceaux, les magasins et les pistes individuellement dans Riak plaine, et les recompose quand il vient le temps de le chercher en arrière. Et fournit une API Amazon S3 pour le stockage de fichiers, pour votre commodité. Je vous recommande vivement cet itinéraire (pour ne pas réinventer la roue - et Chunking fichiers de suivi est assez dur). Oui, CS est un produit payé, mais il faut vérifier la libre Trial Developer, si vous re curieux.

Comme toutes les autres valeurs. Pourquoi serait-il différent?

utiliser l'interface Erlang ( http: // hg .basho.com / Riak / src / 461421125af9 / doc / client.txt-base ) ou l'interface HTTP "brut" ( http://hg.basho.com/riak/src/tip/doc/raw-http-howto.txt ). Il faut "travailler juste".

En outre, vous trouverez généralement une meilleure réponse aux utilisateurs de Riak-mailing liste que vous voulez ici. http://lists.basho.com/mailman/listinfo/riak- users_lists.basho.com (Sans vouloir offenser Z8000, qui semble avoir également des réponses).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top