Ich wurde gebeten, eine Tabelle zu erstellen, um bezahlte Stunden Daten von mehreren Anwesenheitssystemen aus mehreren Regionen von mehreren Untergesellschaften zu speichern. Diese Tabelle würde für die Berichterstattung auf hoher Ebene verwendet werden, so dass im Grunde genommen die Schritte zum Erstellen von Tabellen für jedes System (die möglicherweise existieren) übersprungen wird und direkt zum endgültigen Produkt übergegangen wird.Erstellen einer Tabelle mit festen Spalten im Vergleich zu Schlüsselwerten von Metadatenpaaren?
Die Anforderung war eine Dimension für jede Art von Stunden zu haben, oder wie diese:
date | employee_id | type | hours | amount
2016-04-22 abc123 regular 80 3500
2016-04-22 abc123 overtime 6 200
2016-04-22 abc123 adjustment 1 13
2016-04-22 abc123 paid time off 24 100
2016-04-22 abc123 commission 600
2016-04-22 abc123 gross total 4413
Es gibt mehrere Zeilen pro Mitarbeiter, aber das obwohl Prozess ist, dass diese uns neue Dimensionen erfassen lassen, wenn sie sind hinzugefügt.
Die Daten stammen aus verschiedenen Quellen, und mir wurde gesagt, dass ich mir keine Gedanken über die ETL machen sollte, sondern einfach die ultimative Tabelle entwerfen und sie für jedes System funktionieren lassen sollte. Wir können dieses Format zu anderen Menschen zur Verfügung stellen für sie füllen
Ich habe nur die Rohdaten von einem System und es so gesehen.
date | employee_id | gross_total_amount | regular_hours | regular_amount | OT_hours | OT_amount | classification | amount | hours
es ziemlich chaotisch ist. Mehrere Zeilen für Mitarbeiter und Werte wie Brutto_gesamt wiederholen jede Zeile. Es gibt eine Klassifizierungsspalte, die Elemente wie PTO (bezahlte Auszeit), Anpassungen, Leerwerte, Provision usw. enthält. Aufgrund wiederholter Werte ist es unmöglich, die Daten einfach einfach zu summieren, um sie gleich der Bruttototalmenge zu machen.
Wie auch immer, ich würde irgendwie lieber einen spaltenbasierten Ansatz machen, wo jede Zeile die bezahlten Stunden für einen Cutoff beschreibt. Ein Problem ist, dass ich nicht alle möglichen Arten von Stunden wissen, die möglich sind, so kann ich nicht unbedingt einen Tisch machen wie:
date | employee_id | gross_total_amount | commission_amount | regular_hours | regular_amount | overtime_hours | overtime_amount | paid_time_off_hours | paid_time_off_amount | holiday_hours | holiday_amount
Ich bin mehr an Daten formatiert, die Art und Weise though. Das Problem besteht darin, dass Sie möglicherweise nicht alle erforderlichen Spalten erfassen oder etwas Neues hinzugefügt wird. (Zum Beispiel weiß ich, dass es Mutterschaftsurlaub, Vaterschaftsurlaub, Trauerurlaub, in anderen Regionen gibt es Arbeitsgesetze über die Arbeit in der Nacht, etc.)
Haben Sie eine Beratung? Ist der Tisch, der mir von meinem Vorgesetzten vorgeschlagen wurde, eine praktikable Lösung?
Hallo, danke für alle Details.Ich würde sicherlich eine Tabelle mit den Rohdaten (bereinigte Version) für jedes System speichern. Mein Vorgesetzter kümmert sich nur um den ultimativen Tisch. Mein Ansatz bestand darin, zuerst eine Probe jedes Berichts zu betrachten und mit einigen Experten in der Finanzabteilung zu sprechen (schließlich werden die Rohdaten für die Gehaltsabrechnung verwendet, also muss es jemanden mit dem vollen Verständnis geben), um die verschiedenen Dimensionen und Definitionen herauszufinden Berechnungen. Dein Vorschlag ist also, Spalten hinzuzufügen, und wenn wir später etwas hinzufügen müssen, können wir das tun. – trench
Gibt es auch einen Begriff für die zeilenbasierte Struktur, die mein Vorgesetzter vorgeschlagen hat? Es scheint, als wäre es schwierig, damit zu arbeiten. Ich weiß, dass eine Struktur wie diese in den meisten Fällen nicht empfohlen wird. Ich versuchte, mein Data-Warehouse-Buch zu überfliegen, konnte aber nicht das Beispiel finden, nach dem ich suchte. – trench
Wenn Sie die Originaldaten trotzdem behalten, würde ich nur in die konsolidierte Datenbank aufnehmen, was gerade benötigt wird. Dies ist eine Anwendung des Yagni-Prinzips (du wirst es nicht brauchen). In Anbetracht Ihrer zweiten Frage bin ich mir nicht ganz sicher, welche der gegebenen Strukturen von Ihrem Vorgesetzten vorgeschlagen wurde. Grundsätzlich gelten die Gesetze der Datenmodellierung auch für ein Data Warehouse. Was ist der Kern dessen, wo sich Ihre Lösung und die Ihres Vorgesetzten in Konflikt befinden? – TAM