Wir haben kürzlich einen neuen „Data Lake“ auf der Azure-Plattform bereitgestellt. Der Entscheidungsprozess war chaotisch und ich werde das Gefühl nicht los, dass wir eine teure, unhandliche Datenbank gekauft haben, während wir viel bessere und billigere Optionen hatten.
Unsere Anforderungen sind ziemlich einfach: Wir haben etwa 7 GB Daten, die meisten davon stammen aus einem täglichen Datenbank-Dump (CSV).
Die Daten werden für die Berichterstellung (derzeit werden Abfrageergebnisse nach Excel exportiert, in Zukunft wird so etwas wie PowerBi verwendet) und Analysen verwendet. Bei der Datenmenge, die wir derzeit haben, ist eine vollständige Big-Data-Lösung wie Cloudera oder MapR unnötig, denke ich (aber vielleicht irre ich mich).
In unserer aktuellen Lösung werden der ETL-Prozess, der den CSV-Dump einliest, und die Datenbank von einem Drittanbieter verwaltet. Mit MSSQL Management Studio oder SquirrelSQL können wir Abfragen ausführen und die Ergebnisse exportieren. Wir haben Schreibzugriff auf einen Teil der Datenbank und ich muss in der Lage sein, ETL-Prozesse zu entwerfen, um die bereits vorhandenen Daten zu ergänzen.
Dies ist der erste Fehler: Ich war nicht in der Lage, eine flache Datei automatisch/programmgesteuert in die DB einzulesen. Außerdem ist die DB nicht besonders schnell und wir haben Probleme bei der Implementierung von Logging/Audit Trail.
Meiner Erfahrung nach ist Postgres auf CentOS schnell und protokolliert den DB-Zugriff ziemlich sofort. Auch der automatisierte Import von Flatfiles ist kein Problem.
Was sind bessere Lösungen als unser aktuelles Azure-Setup?
Wenn Ihre flache Datei CSV ist, hat mysql ein eingebautes Import-Tool, da ich sicher bin, dass andere Produkte eine ähnliche Funktion haben.
Die Protokollierung kann natürlich eingerichtet werden.
Mit diesem kleinen Datensatz haben Sie jetzt viele Optionen, wenn Sie auf lokale Hardware setzen.
Da Sie die Cloud verwenden, könnten Sie durch die Geschwindigkeit Ihres Internets einen Engpass bekommen.
Auch eine richtig gestaltete Datenbank wirkt sich auf die Geschwindigkeit aus. Wissen, wann und wie Indizes erstellt werden, um den Datenzugriff zu beschleunigen. Viele Dinge können getan werden, um Abfragen von jemandem zu optimieren, der in SQL geschult ist.
Izzy