Frage

Wer weiß, wie ich große binäre Werte in Riak speichern kann?

War es hilfreich?

Lösung

Vorerst sie nicht empfehlen, Dateien, die größer als 50 MB in der Größe zu speichern, ohne sie zu spalten. Siehe: FAQ - Riak Wiki

Wenn Sie Ihre Dateien sind kleiner als 50 MB, als vorgehen wie bei nicht Binärdaten in Riak zu speichern.

  

Ein weiterer Grund, ein Riak holen könnte, ist für Flexibilität bei der Datenmodellierung. Riak werden alle Daten speichern Sie es sagen, in einem inhaltsunabhängige Art und Weise - es erzwingt nicht die Tabellen, Spalten oder Integrität referentielle. Diese Mittel können Sie binäre Dateien speichern rechts neben mehr Programmierer transparent Formate wie JSON oder XML . Mit Riak als eine Art „Dokumentendatenbank“ (semi-strukturierte, meist de-normalisierten Daten) und „attachment Speicher“ hat andere Bedürfnisse als der Schlüssel / Wert-Stil Schema - nämlich die Notwendigkeit einer effizienten Online-Abfragen, Konflikt Auflösung, interne Semantik erhöht und robust Ausdrücke von Beziehungen. Schema Design in Riak - Einführung

Andere Tipps

@ Brian Mansell Antwort auf dem richtigen Weg ist - Sie wollen nicht wirklich große binäre Werte speichern (über 50 MB) als ein einzelnes Objekt, in Riak (der Cluster wird unusably langsam, nach einer Weile)

Sie haben 2 Möglichkeiten, statt:

1) Wenn ein binäres Objekt klein genug ist, sollte sie direkt. Wenn es über einen bestimmten Schwellenwert ist (50 MB sind ein anständiger beliebiger Wert zu beginnen, aber wirklich, einige Performance-Tests durchführen, um zu sehen, was die durchschnittliche Objektgröße ist, für den Cluster, nach dem es zu krabbeln beginnt) - bricht die Datei in mehrere Stücke, und speichern Sie die separat Brocken. (Tatsächlich sind die meisten Menschen, die ich je gesehen habe diesen Weg gehen, verwenden Sie Stücke von 1 MB groß). Dies bedeutet natürlich, dass Sie den Überblick über das „manifest“ zu halten haben - die Stücke gespeichert wurden, wo und in welcher Reihenfolge. Und dann, um die Datei abzurufen, würden Sie zuerst das Objekt holen müssen, um die Stücke Tracking, dann die einzelnen Dateibrocken holen und wieder zusammenbauen, sie wieder in die Originaldatei. Schauen Sie sich auf ein Projekt wie https://github.com/podados/python-riakfs sehen, wie sie es getan hat.

2) Alternativ können Sie nur verwenden, Riak CS (Riak Cloud Storage), alles zu tun, von oben, aber der Code für Sie geschrieben. Das ist genau das, wie RiakCS funktioniert - es eine eingehende Datei in Stücke, speichert bricht und verfolgt sie einzeln in Klar Riak, und setzt sie, wenn es Zeit kommt es wieder zu holen. Und bietet eine Amazon S3 API für Dateispeicher, für Ihre Bequemlichkeit. Ich empfehle diesen Weg hoch (um nicht das Rad neu zu erfinden - Chunking und Dateien Tracking ist hart genug). Ja, CS ist ein bezahltes Produkt, aber überprüfen Sie die kostenlose Entwickler Test aus, wenn Sie‘ re neugierig.

Wie jeder andere Wert. Warum sollte es anders sein?

Verwenden Sie entweder die Erlang-Schnittstelle ( http: // hg .basho.com / Riak / src / 461421125af9 / doc / basic-client.txt ) oder die "raw" HTTP-Schnittstelle ( http://hg.basho.com/riak/src/tip/doc/raw-http-howto.txt ). Es sollte "einfach funktionieren."

Auch werden Sie in der Regel eine bessere Antwort auf die Riak-Benutzer finden Mailing-Liste, als Sie hier. http://lists.basho.com/mailman/listinfo/riak- users_lists.basho.com (Nichts für ungut, Z8000, der auch scheint Antworten zu haben.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top