Amazon SimpleDB
Hat jemand betrachtet, mit etwas entlang der Linien von der Amazon SimpleDB-Daten zu speichern, wie Ihre back-End-Datenbank?
SQL-Server-hosting (zumindest in Großbritannien) ist teuer, so könnte 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 in Erwägung ziehen, es. In der Tat ist jemand tatsächlich nutzen es jetzt für Reale Produktions-software, wie ich lieben würde, um Ihre Kommentare zu Lesen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine gute Analyse der Amazon services von Wagen.
S3 behandelt, was habe ich in der Regel gehört beschrieben als "blob-storage". Eine typische Web-Anwendung hat in der Regel Medien-Dateien und andere Ressourcen (Bilder, CSS-stylesheets, Skripte, video-Dateien, etc), dass wird einfach zugegriffen, indem dem Namen/Pfad. Jedoch sind viele dieser Mittel haben auch Metadaten (z.B. eine video-Datei auf YouTube-Metadaten über die Bewertung, die Upload, Anzahl der Ansichten usw.) aufbewahrt werden müssen, sowie. Diese müssen für queryable, schematisierte Speicher ist, wo SimpleDB kommt. EC2 stellt virtuelle server, die verwendet werden können für die Berechnung abgeschlossen mit einer lokalen Datei-system-Instanz, die nicht persistent, wenn der virtuelle server heruntergefahren, aus irgendeinem Grund. Mit SimpleDB und S3 haben Sie die Bausteine zum Aufbau einer großen Klasse von "Web 2.0" - Stil-Anwendungen, wenn Sie werfen in der computational Funktionen von EC2.
Aber weder S3 noch SimpleDB bietet eine Lösung für einen Entwickler, der will einfach die typische LAMPE oder WISC-Entwickler Erfahrung im Aufbau einer Datenbank gefahrene Web-Anwendung oder Anwendungen, die benutzerdefinierte Speicheranforderungen, die nicht ordentlich passen in den Eimer-blob-Speicher oder schematisierte Speicher. Ohne Zugriff auf ein persistentes Dateisystem-Entwickler, die auf Amazons cloud-computing-Plattform haben musste, um mit ausgereiften Lösungen mit backing-Daten manuell von EC2 S3, um die gewünschte Erfahrung.
Ich gerade fertig mit schreiben, eine Bibliothek zu machen, die Portierung von einer app zur simpledb in Perl einfach, Net::Amazon::SimpleDB::Simple, da fand ich die Amazon-client-Bibliotheken schmerzhaft. Die Bibliothek ist nicht auf CPAN noch nicht, aber es ist bei http://rjurneyopen.s3.amazonaws.com/SimpleDB/Simple.pm Die Idee war, um es trivial zu Stopfen-hashes in die und aus der SimpleDB.
Ich nur portiert eine app, es zu benutzen. Insgesamt bin ich beeindruckt von SimpleDB... auch ineffiziente Abfragen dauert nur 2-3 Sekunden, um zurückzukehren. SimpleDB nicht scheinen zu kümmern, die Größe der Tabelle, die aufgrund Ihrer Erlang/parallel-Natur. Tablescans sind für Sie einfach.
Der Schmerz kommt von der Tatsache, dass Sie nicht zählen können, Summe oder Gruppe durch. Wenn Sie Vorhaben, alle diese Dinge... dann SimpleDB ist wahrscheinlich nicht für Sie. In dem moment, in Bezug auf Funktionalität, es existiert irgendwo zwischen memcached und MySQL. Sie können WÄHLEN, UM DURCH die GRENZE, das ist schön. Es ist auch schön, dass Sie nicht haben, um es zu skalieren sich selbst, und seine schöne, dass es egal ist, wie viel Sie etwas hinein. Aber mehr erweiterte Funktionen wie analytics sind schmerzhaft am besten. Sie haben zu tun, Ihre eigenen Berechnungen server-Seite. Es ist auch ein großes plus, dass auf jedem Rechner, den ich verwenden können, die simpledb CLI http://code.google.com/p/amazon-simpledb-cli/ zur Abfrage meiner Daten.
Gibt es einige verwirrende 'fallen.' Zum Beispiel, Attribute können mehr als einen Wert haben, und Sie müssen ausdrücklich festlegen, 'ersetzen', wenn die Speicherung von Positionen. Auch die Speicherung undefiniert oder null-Zeichenfolge zurück, die Ergebnisse in einer Bibliothek Fehler, statt Sie zu löschen, Attribut name/Wert-paar oder eine Einstellung von null oder leeren string.
Lernen zu denken, in Bezug auf einen weitgehend un-normalisierten Art und Weise ist ein wenig seltsam zu, deshalb würde ich den zweiten Vorschlag oben, die sagt, es ist am besten für neue Anwendungen. Portierung von SQL-app SimpleDB würde schmerzhaft sein, weil Ihre Anwendung der Logik ändern müsste. Die Art und Weise Sie tun die Dinge ein bisschen anders. Die amazon-Doku ist ziemlich gut im erklären dieser.
All dies ist extrahierbare in einer Bibliothek sitzt auf SimpleDB, so dass für die Nutzung von SimpleDB werden Sie wollen, um eine gute Bibliothek... Sie wollen wahrscheinlich nicht zu umgehen, direkt mit Ihr. Es gibt einige arbeiten, die auf der PHP-Seite machen die Dinge einfach, und es ist meine Bibliothek. Es ist eine RAILS-activesource, aber es scheint nicht zu viel zu tun für Sie.
Alles in allem ist es noch früh im Spiel, aber im Vergleich zu anderen APIs (twitter in den Sinn kommt), muss ich sagen, dass die SimpleDB-REST-API ist Recht einfach (vor allem 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 Wirtschaftlichkeit der Nutzung von it. Wenn Sie schauen, um schnell skalieren ein Dienst, der nicht legte eine große Last auf der DB und nicht die Mühe machen möchten mit einer skalierbaren MySQL/memcache combo... dann SimpleDB bietet eine 'einfache' Lösung für Sie.
Ich erwarte, dass seine Funktionen wird weiter wachsen und es wird eine gute Wahl für mehr und mehr Anwendungen, die noch mehr komplexe und interessante Dinge. Aber jetzt ist es gerichtet an und geeignet für typische Web-2.0-Dienst.
Sind wir mit SimpleDB fast ausschließlich für unsere neuen Projekte. Die null Wartungsaufwand, hohe Verfügbarkeit, kein installieren Aspekte sind einfach zu gut. Und für Ihre Ruby-Entwickler, check-out SimpleRecord, ein ActiveRecord-wie Schnittstelle für SimpleDB macht es super einfach zu bedienen.
Aber brauchen Sie wirklich-SQL-Server? Kannst du nicht live mit PostgreSQL oder MySQL? Beide haben bewiesen, dass Sie ok für die meisten Aufgaben.
Nun, wenn Sie müssen die SQL Server-features, dann sind Sie aus Glück heraus.
Weitere option ist, um einen server mieten. Wie teuer ist teuer?
(Ich habe Amazon S3 zum speichern von Bildern für eine Anwendung, ist es ok und funktioniert einwandfrei, zumindest für die)
Habe ich nicht verwendet, SimpleDB, wurden aber mit Kombination S3, EC2 und MySQL für unsere Anwendung.
Solange Sie bereit sind, für die Nutzung von SimpleDB, dann könnten Sie prüfen, wie gut mit MySQL (das ist sehr skalierbar und nicht so teuer).
Auf dem S3 und EC2 Seite, es ist toll, in der Praxis als gut.
SimpleDB funktioniert gut für viele Anwendungen.... wenn Ihr Projekt erfordert eine Menge von analytischen reporting, fügen, etc., können Sie prüfen, MySQL-oder ein hybrid-Modell.
Wenn Sie gehen, SimpleDB, die wir entwickelt haben Radquery.com für unseren internen Gebrauch und öffnete es für die öffentlichkeit.