2016-10-31 5 views
0

Ich habe eine Tabelle in MySQL, die über 50 Millionen Datensätze (weiter wachsend) hat, und es geht um Abo-Verbrauch.Wie berechnet/behandelt man große Datenmengen?

Also, jeden Tag muss ich diese Datensätze auswählen und Berechnungen darauf vornehmen, um verschiedene Arten von Verbrauch/Clients, zum Beispiel, wenn ein Client aktiv/inaktiv ist, wie lange aktiv war, wenn es hatte Produkt geändert und so weiter.

Im Moment habe ich verschiedene Abfragen, um die verschiedenen Geschäftsfälle auszuwählen, und dann lade ich Daten in den Staging-Bereich und das Data Warehouse. Obwohl einige von diese Abfragen sehr niedrig sind und sie produktive Umgebung überladen.

Ich würde gerne wissen, ob es eine bekannte Lösung (en) oder Technologie für diese Art von täglichen Aufgaben gibt.

Ich bin offen, um mit MySQl weiterzumachen oder eine neue Big-Data-Technologie zu versuchen. Wählen Sie zum Beispiel jeden Tag die Millionen von Rohdatensätzen zu einem Staging-Bereich/ODS aus und arbeiten Sie dann mit einigen Technologien daran.

Kennt jemand gute Lösungen für diese Art von Aufgaben?

Vielen Dank.

Antwort

1

Eine Option könnte die Replikation sein - http://dev.mysql.com/doc/refman/8.0/en/replication.html

Auf diese Weise können Sie ohne die Live-DB auswirken, was Abfragen, die Sie wollen auf der replizierten DB laufen.

+0

Danke @Bryan, die DB ist schon ein Sklave. Ich habe einige Abfragen, die 15-20 Minuten dauern, und der gesamte ETL-Prozess dauert ungefähr 25-30 Minuten für einen Tag (was ein Problem ist, falls ich Backlog/historische Daten laden muss). Mein größtes Problem ist, dass ich für jeden Kunden den letzten und vorletzten Verbrauch berechnen muss, und die Gruppierung von Daten nach Kunden, um dann jeden Geschäftsfall zu berechnen, ist ein bisschen schwer. Ich denke darüber nach, Rohdaten zu einem Staging-Bereich/einer Datei zu transportieren und nach einer Technologie zu suchen, die diese Daten dann manipuliert. – livinha

Verwandte Themen