2017-02-15 2 views
1

Ich habe einen Mitarbeiter belohnt & Tracking-System für ein Unternehmen. Die Firma, für die ich ein System entwickle, liefert mir jeden Tag Verkaufsdaten mit FTP. (Sie stellen leider dafür keinen Webservice zur Verfügung.) Ich muss & verarbeiten alle neuen Umsatz- und Mitarbeiterdaten und ich muss berechnen, wie viele Punkte die Mitarbeiter durch den Verkauf gewonnen haben, wie viele Abzeichen sie haben ... (basierend auf Der Umsatz). Ich habe bereits ein System funktioniert richtig, aber ich überlege, diese Berechnungsprozesse in die Cloud zu verschieben und nur die Punktdaten nach Berechnungen zu übertragen. Mein System liest alle Verkaufsdaten und speichert sie in MySQL. Danach verarbeitet ein PHP-Skript die Rohdaten in Punktdaten. Meine Webseiten laden keine Rohdaten, sie brauchen nur grundlegende persönliche Informationen und das Guthaben der Mitarbeiter.Wie kann man ein stabiles System für die Bearbeitung von 90 Millionen Zeilen pro Tag erstellen?

In diesem Fall, welches Datenbanksystem könnte dafür besser sein? Welcher Service (AWS, Gcloud etc ..) passt zu unseren Bedürfnissen? Was könnte getan werden, um dieses System schneller arbeiten zu lassen?

Vielen Dank im Voraus.

+0

Was zum Teufel verfolgen Sie, wenn Sie 90M Datenpunkte/Tag auf Verkäufe erhalten? Mein Punkt ist, dass Sie "intelligenter arbeiten" und nicht "härter arbeiten" sollten. Ein Punktesystem sollte nicht länger als ein paar Minuten auf Ihrem Laptop benötigen, nicht eine riesige Cloud-Installation. –

Antwort

1

Zunächst einige Prozesse parallel und async durch Einführung einer Nachrichtenwarteschlange (Download, Dateiverarbeitung, Berechnungen etc ...). Für PHP/MySQL ist die einfachste Empfehlung Beanstalkd es hat eine nette admin panel.

Für größere Schritte würden Sie einen Cloud-Service wie Google BigQuery wählen, wo Sie jeden Monat 1 TB Abfragen frei haben, und die Kosten für den Speicher sind niedrig $ 10-20 für TB (Q1 2017). Dazu müssen Sie eine Kopie Ihrer Daten in BigQuery einfügen, entweder durch Streaming-Einfügung oder durch Laden von Jobs. Sobald die Daten vorliegen, können Sie SQL-Abfragen auch für große Datenmengen über längere Zeiträume schreiben. Wenn Sie einige Zeilen nach benutzerdefinierten Funktionen ändern müssen, können Sie dies auch in BigQuery tun.

Wenn Sie nach einem MySQL-Ersatz über 2000 QPS suchen, können Sie Cloud Spanner hier ist ein Quizlet's great article what is Spanner good for.

Verwandte Themen