Frage

Hat jemand betrachtet, mit etwas entlang der Linien von der Amazon SimpleDB-Daten speichern als Ihre backend-Datenbank?

SQL Server-hosting (zumindest in Großbritannien) ist teuer, so könnte so etwas wie diese, zusammen mit cloud-file-storage (S3) verwendet werden, zum erstellen von apps, die wachsen konnte, die mit Ihrer Anwendung.

In der Theorie großartig, aber würde jemand prüfen, unter Verwendung es.In der Tat ist jemand tatsächlich verwenden Sie es jetzt für real-Produktions-software-wie ich würde gerne Ihre Kommentare zu Lesen.

War es hilfreich?

Lösung

Dies ist eine gute Analyse der Amazon-Dienste von Wagen.

S3 verwaltete das, was ich normalerweise als „Blob-Speicher“ bezeichnet habe.Eine typische Webanwendung verfügt normalerweise über Mediendateien und andere Ressourcen (Bilder, CSS-Stylesheets, Skripte, Videodateien usw.), auf die einfach über Name/Pfad zugegriffen werden kann.Viele dieser Ressourcen verfügen jedoch auch über Metadaten (z. B.Eine Videodatei auf YouTube enthält Metadaten über ihre Bewertung, wer sie hochgeladen hat, Anzahl der Aufrufe usw., die ebenfalls gespeichert werden müssen.Bei diesem Bedarf an abfragbarem, schematisiertem Speicher kommt SimpleDB ins Spiel.EC2 stellt einen virtuellen Server bereit, der für Berechnungen verwendet werden kann, einschließlich einer lokalen Dateisysteminstanz, die nicht dauerhaft ist, wenn der virtuelle Server aus irgendeinem Grund ausfällt.Mit SimpleDB und S3 verfügen Sie über die Bausteine, um eine große Klasse von Anwendungen im „Web 2.0“-Stil zu erstellen, wenn Sie die von EC2 bereitgestellten Rechenfunktionen hinzufügen.Allerdings bieten weder S3 noch SimpleDB eine Lösung für einen Entwickler, der lediglich die typische LAMP- oder WISC-Entwicklererfahrung beim Erstellen einer datenbankgesteuerten Webanwendung haben möchte, oder für Anwendungen, die möglicherweise benutzerdefinierte Speicheranforderungen haben, die nicht genau in die Buckets des Blob-Speichers passen Schematisierter Speicher.Ohne Zugriff auf ein persistentes Dateisystem mussten Entwickler auf der Cloud-Computing-Plattform von Amazon ausgefeilte Lösungen entwickeln, bei denen Daten manuell von EC2 auf S3 gesichert wurden, um das gewünschte Erlebnis zu erzielen.

Andere Tipps

Ich habe gerade eine Bibliothek zu schreiben, eine App zu machen Portierung in Perl SimpleDB einfach, Net :: Amazon SimpleDB :: :: Einfach, weil ich die Amazon-Client-Bibliotheken schmerzhaft gefunden. Die Bibliothek ist nicht auf CPAN noch, aber es ist unter http: //rjurneyopen.s3 .amazonaws.com / SimpleDB / Simple.pm Die Idee, es trivial zu stopfen Hashes in und aus SimpleDB zu machen war.

ich portierte nur eine App, es zu benutzen. Insgesamt bin ich mit SimpleDB beeindruckt ... auch ineffiziente Abfragen dauert nur 2-3 Sekunden zurück. SimpleDB scheint nicht über die Größe Ihrer Tabelle zu kümmern, die aufgrund ihres Erlang / parallel Natur. Tablescans ist es einfach.

Der Schmerz kommt aus der Tatsache, dass Sie nicht durch, sum oder Gruppe zählen können. Wenn du tust, alle diese Dinge zu planen ... dann wahrscheinlich SimpleDB ist nicht für Sie. Im Moment in Bezug auf Funktionalität existiert es irgendwo zwischen Memcached und MySQL. Sie können ORDER BY LIMIT SELECT, das ist schön. Es ist auch schön, dass Sie müssen es selbst nicht maßstäblich, und es ist schön, dass es nicht, wie viel Sie es stopfen in schert. Aber mehr erweiterte Funktionen wie Analytik sind bestenfalls schmerzhaft. Sie werden Ihre eigenen Berechnungen Server-Seite zu tun haben. Es ist auch ein großes Plus, dass auf jedem Computer, den ich die SimpleDB verwenden können CLI http: // code.google.com/p/amazon-simpledb-cli/ meine Daten abzufragen.

Es gibt einige verwirrend 'gotchas.' Zum Beispiel können Attribute mehr als einen Wert haben, und Sie müssen explizit festgelegt ‚ersetzen‘, wenn Elemente zu speichern. Auch speichert undef oder Nullstring Ergebnisse in einer Bibliothek Fehler, statt dessen Attribut Name / Wert-Paar zu löschen oder sie null / empty Zeichenfolge Einstellung.

in Form einer weitgehend nicht-normalisierten Art und Weise zu denken, zu lernen, ist ein wenig zu seltsam, weshalb würde ich zweiter der Vorschlag darüber sagt, dass es für neue Anwendungen am besten ist. Portieren von einem SQL-App zu SimpleDB wäre schmerzhaft, weil die Anwendungslogik ändern würde. Die Art und Weise Sie die Dinge tun, ist ein bisschen anders. Die amazon docs sind ziemlich gut darin zu erklären.

All dies ist herausziehbaren in einer Bibliothek, die oben auf SimpleDB sitzt, so dass für die Nutzung von SimpleDB wollen Sie eine gute Bibliothek holen ... Sie wollen wahrscheinlich nicht direkt mit ihm beschäftigen. Es gibt einige Arbeiten an der PHP-Seite, um die Dinge einfach zu machen, und es ist meine Bibliothek. Es gibt eine RAILS activesource, aber es scheint nicht, für Sie viel zu tun.

Alles in allem seiner frühen immer noch im Spiel, aber im Vergleich zu anderen APIs (twitter in dem Sinne kommt), muß ich sagen, dass der SimpleDB REST API ist ziemlich einfach (besonders wenn man bedenkt, dass es XML ist) und höflich, mit zu arbeiten . Ich würde es empfehlen ... je nach den Anforderungen Ihrer Anwendung und die Wirtschaftlichkeit Ihres Gebrauch davon. Wenn Sie schauen, schnell einen Dienst skalieren, die nicht eine große Belastung auf der DB wird gesetzt und will nicht mit einer skalierbaren MySQL / memcache Combo ... dann SimpleDB bietet eine ‚einfache‘ Lösung für Sie stören.

Ich gehe davon aus, dass seine Funktionen werden weiter wachsen, und es wird eine gute Wahl für immer mehr Anwendungen, die immer komplexe und interessante Dinge zu tun. Aber jetzt ist es gezielt an und geeignet für typischen Web 2.0-Dienst.

Wir verwenden SimpleDB fast ausschließlich für unsere neue Projekte. Die Wartungsfreiheit, hohe Verfügbarkeit, keine Installation Aspekte einfach zu gut sind. Und für Ihre Ruby-Entwickler Besuche SimpleRecord , ein Active wie Schnittstelle für SimpleDB, die es super einfach macht zu verwenden.

Aber brauchen Sie wirklich SQL Server? Sie können nicht mit PostgreSQL oder MySQL leben? Beide haben sich für die meisten Aufgaben in Ordnung zu sein.

Nun, wenn Sie SQL Server-Funktionen benötigen, dann sind Sie kein Glück.

Eine andere Möglichkeit ist es, einen Server zu mieten. Wie teuer ist teuer?

(I Amazon S3 verwendet habe, eine Anwendung zum Speichern von Bildern für, es ist in Ordnung und funktioniert gut, zumindest für die)

Ich habe SimpleDB nicht verwendet, sondern wurde von S3, EC2 und MySQL für unsere Anwendung mit Kombination.

Solange Sie bereit sind, SimpleDB zu verwenden, dann könnten Sie auch erwägen den Einsatz von MySQL (die sehr skalierbar ist, und nicht so teuer).

Auf der S3 und EC2 Seite, es ist großartig, wie auch in der Praxis.

SimpleDB funktioniert gut für viele Anwendungen .... wenn Ihr Projekt viele analytische Berichterstattung erfordern, Fügen, usw., können Sie prüfen, MySQL oder ein Hybrid-Modell.

Wenn Sie SimpleDB gehen, haben wir Radquery.com für unsere internen Gebrauch entwickelt und öffnete sie für die Öffentlichkeit.

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