AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Realdaten konsistent verwürfeln?

Ein Thema von stahli · begonnen am 26. Aug 2016 · letzter Beitrag vom 29. Aug 2016
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: Realdaten konsistent verwürfeln?

  Alt 29. Aug 2016, 16:32
Die Zusammenfassung ist korrekt aber ich denke eine Lösung ohne Hashwerte an.

aus
Peter Müller, KundenID = 4711, Kontonummer = 4812 bei der Postbank
wird
Hansi Meier, KundenID = 1234, Kontonummer = 9876 bei der Targo-Bank


Ich werde dafür ein Dictionary benutzen.

Beim ersten mal wird für den ersten Kundendatensatz:
"Kunde: Peter Müller" = "Hansi Meier"
"KundenId: 4711" = "9876"
"Bank: Postbank" = "Targo-Bank"
angelegt.

Die Zielwerte werden pro neuem Eintrag für jedes Feld aus einem zufälligen Record aus dem realen Datenbestand geholt (und auf Wunsch verstümmelt) oder auf Wunsch neu generiert.

Wenn künftig "Kunde: Peter Müller" verwendet wird, wird der immer in "Hansi Meier" übersetzt.
Wenn eine Rechnung an "KundenId: 4711" geht, wird die ID in 9876 geändert.

Dazu muss das Tool sozusagen global für alle csv erfahren, welche Zuordnungen die einzelnen Felder tatsächlich haben und wie diese anzupassen sind.


Vielleicht muss ich noch etwas präzisieren: Ich möchte einen Stapel von z.B. 100*6 csv-Dateien auf einen Rutsch verändern, so dass 600 neue csv-Dateien entstehen, die in sich weiterhin konsistent sind aber möglichst wenig Rückschlüsse auf die Originaldateien zulassen.
Es geht also nicht um einen Import in das Hauptprojekt sondern um eine Anonymisierung vorliegender externer Importdaten zu Testzwecken.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#22

AW: Realdaten konsistent verwürfeln?

  Alt 29. Aug 2016, 16:46
Also ich versuchs nochmal:

Du möchtest reproduzierbar aus den Daten A die Daten B bekommen.

Dies soll für Dich nachvollziehbar sein.
Anhand der "Übersetzung" von A nach B ist auch der umgekehrte Weg (theoretisch) möglich.

Die Nutzer der Testdaten haben jedoch keinen Zugriff darauf und können daher keine Rückschlüsse ziehen.

Wenn dies für Dich ausreichend "sicher" ist, so scheint für mich der von Dir gewählte Weg ausreichend.

Über Nachschlagtabellen kann für jedes A jederzeit nachgesehen werden, wie das zugehörige B auszusehen hat.

Die Datenmenge sollte für die von Dir anvisierte Vorgehensweise irrelvant sein. Sie funktioniert für 1 bis n Datensätze in einer beliebigen Menge von Dateien.

Geändert von nahpets (29. Aug 2016 um 16:49 Uhr) Grund: Bisserl was ergänzt.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: Realdaten konsistent verwürfeln?

  Alt 29. Aug 2016, 17:04
Genau so ist es zutreffend.
Rückwandlung von B nach A ist nicht notwendig.

Für mich werde ich ein entsprechendes Tool bauen.

Die Frage ist, ob es generell Nachfrage dafür geben kann, wenn man das etwas allgemeiner hält.
Ggf. könnte man so ein Tool auch auf eine rel. Datenbank anwenden, wobei das dann sicherlich etwas komplexer wird - zumindest wenn mach die Schlüssel und Fremdschlüssel ändern will.

Braucht man keine Schlüsseländerung (was sicherlich meist der Fall ist), wäre dann ein Tool dafür sinnvoll und flexibel genug?
Man könnte natürlich einzelne Tabellen auch als csv exportieren, umwandeln und die neuen csv wieder in eine neue Datenbank importieren.

Also die Frage: Wäre so ein allgemeines, flexibles Tool wohl interessant?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#24

AW: Realdaten konsistent verwürfeln?

  Alt 29. Aug 2016, 17:12
Du möchtest reproduzierbar aus den Daten A die Daten B bekommen.
Wozu reproduzierbar, er speichert das Ergebnis eh in einer Tabelle.

Blöd wird es mit Daten, die vielleicht allein schon identifizierend sind: IBANs, Telefonnummern, ...
Gerade Telefonnummern will man aber auch nicht unbedingt genieren, da hier die Struktur bei realen (eingegebenen) Daten doch ziemlich variieren kann.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#25

AW: Realdaten konsistent verwürfeln?

  Alt 29. Aug 2016, 17:31
Testdaten werden immer und überall gebraucht und ich weiß nicht wieviele Leute ich schon kennengelernt habe, die vor genau Deinem Problem standen:

Wie bekomme ich reproduzierbare Testdaten hin?

Oder zu Deiner Frage konkret:
Zitat von stahli:
Also die Frage: Wäre so ein allgemeines, flexibles Tool wohl interessant?
Meiner Meinung nach eindeutig: Ja

Die Fragen dazu sind nur:
  • Gibt jemand dafür Geld aus?
  • Und wenn ja, wieviel?

Für Deine Aufgabenstellung wäre eigentlich (wenn man's datenbankgestützt sieht), eine dreispaltige Tabelle erforderlich.

Spaltenname|Originalwert|Testwert
Name|Peter Maier|Hansi Müller
KundenID|4711|1234
Bank|Postbank|Targo-Bank

@BUG

Reproduzierbar deshalb, weil stahli immer wieder Datenergänzungen per CSV-Dateien bekommt, die er sowohl den Originaldaten als auch den Testdaten zuordnen muss. Und zwar nicht irgendwie, sondern konsistent.

Es muss also immer aus Peter Meier Hansi Müller werden, es muss immer aus der KundenID 4711 die KundenID 1234 werden.

Und wenn stahli diese Informationen in einer Tabelle ablegt, dann ist die erstmalig per Zufall erstellte Zuordnung anschließend über eben diese Tabelle reproduzierbar.

Und wenn er die Testdaten vollständig löscht und anschließend neu erstellt, dann müssen sie mit den ursprünglichen Testdaten zu 100% übereinstimmen.
Und damit müssen sie reproduzierbar ein.

Oder sollte ich die Aufgabenstellung immer noch nicht verstanden haben?
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#26

AW: Realdaten konsistent verwürfeln?

  Alt 29. Aug 2016, 17:49
@nahpets

Vollkommen korrekt, aber etwas einfacher.
Normalerweise sollte für uns jetzt eine einmalige Konvertierung von 600 Testdateien reichen um ein neues Projekt aufzubauen und den Import zu testen.

Für andere Projekte könnte es ggf. interessant sein, dass man nach und nach immer weitere Dateien umwandelt. Das wäre dem Tool dann aber letztlich egal. Man müsste nur die Übersatzungstabelle aufheben.

Ich bastle mal was. Kann aber etwas dauern...

@BUG

Für IBANS, Telefonnummern und eMailadressen könnte man zum normalen verwürfeln noch eine Verstümmelung von 0..100% einstellen.
Max Mustermann würde dann die eMail "Weltherrscher@dp.com" zugeordnet und da diese in sich ja noch real ist könnten z.B. 80% der Zeichen noch verändert bzw. gelöscht werden.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#27

AW: Realdaten konsistent verwürfeln?

  Alt 29. Aug 2016, 17:55
Für IBANS, Telefonnummern und eMailadressen könnte man zum normalen verwürfeln noch eine Verstümmelung von 0..100% einstellen.
Max Mustermann würde dann die eMail "Weltherrscher@dp.com" zugeordnet und da diese in sich ja noch real ist könnten z.B. 80% der Zeichen noch verändert bzw. gelöscht werden.
Bei IBANs sollte das gut gehen, eventuell muss man die Prüfsumme noch neu errechnen. Bei Telefonnummern wird es schwerer, die so zu verstümmeln, das die Struktur erhalten bleibt: Vorwahlen, nicht numerische Zeichen, usw. Wenn so etwas in den realen Daten ist, wäre es nett, wenn das in den Testdaten auch mit dabei ist.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#28

AW: Realdaten konsistent verwürfeln?

  Alt 29. Aug 2016, 18:38
@nahpets

Vollkommen korrekt, aber etwas einfacher.
Normalerweise sollte für uns jetzt eine einmalige Konvertierung von 600 Testdateien reichen um ein neues Projekt aufzubauen und den Import zu testen.
Und meiner Meinung nach braucht man dazu reproduzierbare Testdaten.
Wenn der Importtest (aus welchen Gründen auch immer) scheitert, "dumme Sachen macht", also nicht perfekt funktioniert, so muss mit den Originaldaten wieder ein Testdatenbestand erstellt werden und der Import erneut getestet werden.
Klar, man kann auch alle "Testdatenzwischenstufen" für immer und wiederholte Nutzung aufheben. Und man muss da dann auch (hoffentlich) den Durchblick behalten.

Klar, die Übersetzungstabelle "muss" erhalten bleiben. Ist sie nicht mehr vorhanden, so kann man neue Daten "würfeln".

Und nach der erstmaligen Befüllung des Projektes mit Testdaten kommt ganz bestimmt sehr bald irgend jemand, der sagt: "Du, stahli, Testdaten kaputt, kannst Du bitte mal eben neu machen?"
Und wenn jemand sagt: "Das brauchen wir garantiert nur einmalig!" Jede Wette, der kommt bald wieder und sagt: "Nochmalhabenwollen"

Für andere Projekte könnte es ggf. interessant sein, dass man nach und nach immer weitere Dateien umwandelt. Das wäre dem Tool dann aber letztlich egal. Man müsste nur die Übersatzungstabelle aufheben.
Sowas würd' ich immer einplanen, wenn ich mir sowieso schon viel Arbeit machen muss, dann ist das sicherlich einfacher sofort integriert, als später (in vier Wochen oder 'nem Jahr) noch nachträglich einzubauen.

Kann aber etwas dauern ...
Wenn das morgen fertig wäre, dann aber Hut ab

@BUG

Für IBANS, Telefonnummern und eMailadressen könnte man zum normalen verwürfeln noch eine Verstümmelung von 0..100% einstellen.
Max Mustermann würde dann die eMail "Weltherrscher@dp.com" zugeordnet und da diese in sich ja noch real ist könnten z.B. 80% der Zeichen noch verändert bzw. gelöscht werden.
Für die Mails würd' ich mir 'ne Domaine aussuchen, die es nicht gibt und (höchstwahrscheinlich) nie geben wird.
Vor die Domaine kommen Vorname.Nachname.KundenID und fertig ist die Laube. Email-Dubletten sind damit dann (hoffentlich) auch ausgeschlossen. Z. B.: Peter.Meier.4711@Projektname.Testdaten.test
Sollte es mehrere Peter Meier geben, was bei 'nem größeren Datenbestand wahrscheinlich ist, so unterscheiden sich die Emailadressen auf jeden fall, ohne dass man mehr oder weniger komplizierte Algorithmen über die Originalemailadressen jagen muss.

Telefonnummern und IBAN würd' ich aus der KundenID (oder sowas) erstellen, indem ich die solange mit sich selbst repliziere, bis die Länge passt. Bei der IBANs könnte man noch die Prüfziffer der Kontonummer berechnen, falls die nachfolgende Software da irgendeine Prüfung drinne hat, die sonst über ungültige IBANs stolpert.
Z.B.: DE47114711471147114711 = DE + KundenID sooft aneinandergehängt, bis mehr als 20 Zeichen entstanden sind und davon dann die ersten 20 Zeichen nehmen.

Bei mir sieht 'ne Test-ISBN so aus: 978-699-2-00000-6.
Wirkt echt, ist sie aber nicht, weil 699 nicht vergeben.

Telefonnummern werden (laut Norm) von rechts nach links zweistellig durch Leerzeichen getrennt. Wir nehmen dann halt die Vorwahl des Ortes + KundenID, ergibt für Peter Meier aus Köln dann "02 21 / 47 11". Naja, wenn wir 'ne Handynummer haben, dann behalten wir die Vorwahl und hängen die Kundennummer dran. Also z. B. "0160 / 47 11". Man könnte auch noch die Auslandsvorwahl davorschreiben, wenn erforderlich ...

Daten so repräsentativ wie nötig mit so wenig Aufwand wie möglich.

Ist eine Abbildung von fehlerhaften Daten (insbesondere in Bezug auf IBAN, Telefonnummern ...) nötig, dann geht's halt nicht so einfach, aber hier würd' ich dann erstmal abklären, ob der "allgemeine Datenerfassungshumbug in den Quelldaten" auch in den Testdaten erforderlich ist.

Also: Muss mit 'nem Peter Meier aus Köln mit der Kundennummer 4711 auch dann noch korrekt umgegangen werden, wenn er auf einmal als Petr Maier aus Cölln mit der Kundennummer 4711 daher kommt. Sind "Besonderheiten" in der Telefonnummer wie z. B. +491604711, +49 0160/4711, 01604711, 00491604711 ... auch "originalgetreu" abzubilden?

Fragen über Fragen ... garantiert etwas mehr Arbeit
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz