2016-08-09 3 views
0

Ich entwerfe ein System, das 500 Indizes hat, von denen jeder eine Berechnung basierend auf Tabellen mit Millionen von Zeilen ist, und ich bin zwischen den Tabellen und alle Arten von ziemlich komplexen Logik tun, so oft eine einzelne Abfrage dauert 10 Minuten oder so. Ich mache das derzeit in MySQL und ich mache nichts parallel. Also 10 Minuten für die erste Indexberechnung, dann 10 Minuten für die nächste, und 10 Minuten für die 3., ... 10 Minuten für die 500. ... es dauert lange!500 Suchmaschinenindizes, die jeweils berechnet werden müssen. Wie skalieren?

Wie erstellen Menschen normalerweise viele Indizes, die auf komplexen Berechnungen vieler Tabellen und Zeilen basieren? machen sie sie nur parallel? Werfen sie mehr Hardware darauf? Gibt es Best Practices, denen ich folgen könnte?

+0

Bitte geben Sie uns weitere Hinweise, was Sie tun. –

+0

Ich habe Hunderte von Millionen von Objekten und jedes hat viele Attribute. Ich mache eine Reihe von Berechnungen an Menschen, abhängig von den Werten der einzelnen Attribute. Manchmal diktiert ein Attribut den Algorithmus, manchmal ist es eine Kombination von Attributen, die den Algorithmus bestimmen. In jedem Fall wird derzeit alles seriell ausgeführt, und es dauert sehr lange. Seit ich dies gepostet habe, habe ich versucht, einige Dinge parallel zu machen, und mit 16 Threads auf Orakel konnte ich die Zeit reduzieren, aber es ist immer noch sehr langsam. Wie beschleunigen Menschen diese Art von Berechnungen? – user4504267

+0

Welche nimmt sich die Zeit? Das Holen der Daten oder die Berechnung? –

Antwort

0

Dies ist die Art von Problem, die von Google Big Query gelöst werden sollte.

+0

Vielleicht hätte ich sagen sollen, dass alles im Haus sein muss. Ich bin nicht berechtigt, diese Daten an Systeme außerhalb meines Netzwerks zu verteilen. – user4504267

0

Shard-Query ist Code, um MySQL-Abfragen parallel durchzuführen.

+0

Ist es möglich, Shard-Abfrage zu nehmen und sie in einen Cluster von MySQL Servern zu setzen? Derzeit dauert es mit Orakel und 16 Threads immer noch über 24 Stunden. Ich hätte gerne weniger als eine Stunde. Wie erreichen Menschen diese Datenberechnungszeit? – user4504267

Verwandte Themen